mirror of
https://github.com/tribufu/ServerManagers
synced 2026-06-01 09:42:39 +00:00
Broadcast Message Changes
1. Added config option for auto processes to use broadcast keyword 2. Added config to global settings
This commit is contained in:
parent
220b3d9c77
commit
fc658b04dd
22 changed files with 196 additions and 55 deletions
|
|
@ -882,6 +882,9 @@
|
||||||
<setting name="SectionServerDetailsIsExpanded" serializeAs="String">
|
<setting name="SectionServerDetailsIsExpanded" serializeAs="String">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="RCON_MessageCommand" serializeAs="String">
|
||||||
|
<value>Broadcast</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
||||||
14
src/ARKServerManager/Config.Designer.cs
generated
14
src/ARKServerManager/Config.Designer.cs
generated
|
|
@ -12,7 +12,7 @@ namespace ServerManagerTool {
|
||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
|
||||||
public sealed partial class Config : global::System.Configuration.ApplicationSettingsBase {
|
public sealed partial class Config : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
|
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
|
||||||
|
|
@ -3126,5 +3126,17 @@ namespace ServerManagerTool {
|
||||||
this["SectionServerDetailsIsExpanded"] = value;
|
this["SectionServerDetailsIsExpanded"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("Broadcast")]
|
||||||
|
public string RCON_MessageCommand {
|
||||||
|
get {
|
||||||
|
return ((string)(this["RCON_MessageCommand"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["RCON_MessageCommand"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -860,5 +860,8 @@
|
||||||
<Setting Name="SectionServerDetailsIsExpanded" Type="System.Boolean" Scope="User">
|
<Setting Name="SectionServerDetailsIsExpanded" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="RCON_MessageCommand" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)">Broadcast</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -2655,7 +2655,7 @@ namespace ServerManagerTool.Lib
|
||||||
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
|
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var sent = await SendCommandAsync($"{ServerRCON.RCON_COMMAND_BROADCAST} {message}", false);
|
var sent = await SendCommandAsync($"{Config.Default.RCON_MessageCommand.ToLower()} {message}", false);
|
||||||
|
|
||||||
if (sent)
|
if (sent)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -323,7 +323,8 @@ namespace ServerManagerTool.Lib
|
||||||
command.suppressOutput = false;
|
command.suppressOutput = false;
|
||||||
command.lines = HandleListPlayersCommand(command.lines);
|
command.lines = HandleListPlayersCommand(command.lines);
|
||||||
}
|
}
|
||||||
else if (command.command.Equals(RCON_COMMAND_GETCHAT, StringComparison.OrdinalIgnoreCase))
|
|
||||||
|
if (command.command.Equals(RCON_COMMAND_GETCHAT, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
// TODO: Extract the player name from the chat
|
// TODO: Extract the player name from the chat
|
||||||
var lines = command.lines.Where(l => !string.IsNullOrEmpty(l) && l != NoResponseOutput);
|
var lines = command.lines.Where(l => !string.IsNullOrEmpty(l) && l != NoResponseOutput);
|
||||||
|
|
@ -342,12 +343,14 @@ namespace ServerManagerTool.Lib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command.command.Equals(RCON_COMMAND_BROADCAST, StringComparison.OrdinalIgnoreCase))
|
|
||||||
|
if (command.command.Equals(RCON_COMMAND_BROADCAST, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
LogEvent(LogEventType.Chat, command.rawCommand);
|
LogEvent(LogEventType.Chat, command.rawCommand);
|
||||||
command.suppressOutput = true;
|
command.suppressOutput = true;
|
||||||
}
|
}
|
||||||
else if (command.command.Equals(RCON_COMMAND_SERVERCHAT, StringComparison.OrdinalIgnoreCase))
|
|
||||||
|
if (command.command.Equals(RCON_COMMAND_SERVERCHAT, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
LogEvent(LogEventType.Chat, command.rawCommand);
|
LogEvent(LogEventType.Chat, command.rawCommand);
|
||||||
command.suppressOutput = true;
|
command.suppressOutput = true;
|
||||||
|
|
|
||||||
|
|
@ -1166,7 +1166,7 @@ namespace ServerManagerTool.Lib
|
||||||
if (string.IsNullOrWhiteSpace(message))
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var sent = await SendCommandAsync($"{ServerRCON.RCON_COMMAND_BROADCAST} {message}", false);
|
var sent = await SendCommandAsync($"{Config.Default.RCON_MessageCommand.ToLower()} {message}", false);
|
||||||
|
|
||||||
if (sent)
|
if (sent)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,29 @@
|
||||||
<link href="http://arkservermanager.freeforums.net/" />
|
<link href="http://arkservermanager.freeforums.net/" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-22T00:00:00Z</updated>
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<id>urn:uuid:95C9671F-4AEC-4433-AD68-CF91854FEC1B</id>
|
||||||
|
<title>1.1.422 (1.1.422.1)</title>
|
||||||
|
<summary>1.1.422.1</summary>
|
||||||
|
<link href="" />
|
||||||
|
<updated>2022-03-22T00:00:00Z</updated>
|
||||||
|
<content type="xhtml">
|
||||||
|
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
||||||
|
<p>
|
||||||
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
|
<br/>
|
||||||
|
<ul>
|
||||||
|
<li>Changed the auto process message broadcast to use a config setting, not a hardcoded value.</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</content>
|
||||||
|
<author>
|
||||||
|
<name>bletch</name>
|
||||||
|
<email>bletch1971@hotmail.com</email>
|
||||||
|
</author>
|
||||||
|
</entry>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>urn:uuid:B6B3F1F1-610F-4294-9891-43DD245A5E0A</id>
|
<id>urn:uuid:B6B3F1F1-610F-4294-9891-43DD245A5E0A</id>
|
||||||
<title>1.1.421 (1.1.421.1)</title>
|
<title>1.1.421 (1.1.421.1)</title>
|
||||||
|
|
|
||||||
|
|
@ -5,21 +5,21 @@
|
||||||
<title>Ark Server Manager Version Feed</title>
|
<title>Ark Server Manager Version Feed</title>
|
||||||
<subtitle>This is the Ark Server Manager beta version feed.</subtitle>
|
<subtitle>This is the Ark Server Manager beta version feed.</subtitle>
|
||||||
<link href="http://arkservermanager.freeforums.net/" />
|
<link href="http://arkservermanager.freeforums.net/" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-23T00:00:00Z</updated>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>urn:uuid:B6B3F1F1-610F-4294-9891-43DD245A5E0A</id>
|
<id>urn:uuid:95C9671F-4AEC-4433-AD68-CF91854FEC1B</id>
|
||||||
<title>1.1.421 (1.1.421.1)</title>
|
<title>1.1.422 (1.1.422.1)</title>
|
||||||
<summary>1.1.421.1</summary>
|
<summary>1.1.422.1</summary>
|
||||||
<link href="" />
|
<link href="" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-23T00:00:00Z</updated>
|
||||||
<content type="xhtml">
|
<content type="xhtml">
|
||||||
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
||||||
<p>
|
<p>
|
||||||
<u style="font-size: .9em;">BUGFIX</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed a bug that would prevent auto processes from sending through broadcast messages to the clients.</li>
|
<li>Changed the auto process message broadcast to use a config setting, not a hardcoded value.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -441,7 +441,7 @@ namespace ServerManagerTool
|
||||||
execute: (_) =>
|
execute: (_) =>
|
||||||
{
|
{
|
||||||
var message = _globalizer.GetResourceString("RCON_SaveWorldLabel");
|
var message = _globalizer.GetResourceString("RCON_SaveWorldLabel");
|
||||||
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_BROADCAST} {message}");
|
this.ServerRCON.IssueCommand($"{Config.Default.RCON_MessageCommand.ToLower()} {message}");
|
||||||
|
|
||||||
this.ServerRCON.IssueCommand(Config.Default.ServerSaveCommand);
|
this.ServerRCON.IssueCommand(Config.Default.ServerSaveCommand);
|
||||||
},
|
},
|
||||||
|
|
@ -458,7 +458,7 @@ namespace ServerManagerTool
|
||||||
execute: (_) =>
|
execute: (_) =>
|
||||||
{
|
{
|
||||||
var message = _globalizer.GetResourceString("RCON_DestroyWildDinosLabel");
|
var message = _globalizer.GetResourceString("RCON_DestroyWildDinosLabel");
|
||||||
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_BROADCAST} {message}");
|
this.ServerRCON.IssueCommand($"{Config.Default.RCON_MessageCommand.ToLower()} {message}");
|
||||||
|
|
||||||
this.ServerRCON.IssueCommand(ServerRCON.RCON_COMMAND_WILDDINOWIPE);
|
this.ServerRCON.IssueCommand(ServerRCON.RCON_COMMAND_WILDDINOWIPE);
|
||||||
},
|
},
|
||||||
|
|
@ -801,6 +801,10 @@ namespace ServerManagerTool
|
||||||
|
|
||||||
switch (effectiveMode)
|
switch (effectiveMode)
|
||||||
{
|
{
|
||||||
|
case InputMode.Command:
|
||||||
|
this.ServerRCON.IssueCommand(commandText);
|
||||||
|
break;
|
||||||
|
|
||||||
case InputMode.Broadcast:
|
case InputMode.Broadcast:
|
||||||
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_BROADCAST} {commandText}");
|
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_BROADCAST} {commandText}");
|
||||||
break;
|
break;
|
||||||
|
|
@ -815,16 +819,6 @@ namespace ServerManagerTool
|
||||||
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_SERVERCHAT} {commandText}");
|
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_SERVERCHAT} {commandText}");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case InputMode.Command:
|
|
||||||
this.ServerRCON.IssueCommand(commandText);
|
|
||||||
break;
|
|
||||||
|
|
||||||
#if false
|
|
||||||
case InputMode.Chat:
|
|
||||||
this.ServerRCON.IssueCommand(textBox.Text);
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -657,6 +657,9 @@
|
||||||
<setting name="SectionServerDetailsIsExpanded" serializeAs="String">
|
<setting name="SectionServerDetailsIsExpanded" serializeAs="String">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="RCON_MessageCommand" serializeAs="String">
|
||||||
|
<value>Broadcast</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
14
src/ConanServerManager/Config.Designer.cs
generated
14
src/ConanServerManager/Config.Designer.cs
generated
|
|
@ -12,7 +12,7 @@ namespace ServerManagerTool {
|
||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
|
||||||
public sealed partial class Config : global::System.Configuration.ApplicationSettingsBase {
|
public sealed partial class Config : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
|
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
|
||||||
|
|
@ -2309,5 +2309,17 @@ namespace ServerManagerTool {
|
||||||
this["SectionServerDetailsIsExpanded"] = value;
|
this["SectionServerDetailsIsExpanded"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("Broadcast")]
|
||||||
|
public string RCON_MessageCommand {
|
||||||
|
get {
|
||||||
|
return ((string)(this["RCON_MessageCommand"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["RCON_MessageCommand"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -635,5 +635,8 @@
|
||||||
<Setting Name="SectionServerDetailsIsExpanded" Type="System.Boolean" Scope="User">
|
<Setting Name="SectionServerDetailsIsExpanded" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="RCON_MessageCommand" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)">Broadcast</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -523,6 +523,8 @@
|
||||||
<sys:String x:Key="InputMode_Command">Command</sys:String>
|
<sys:String x:Key="InputMode_Command">Command</sys:String>
|
||||||
<sys:String x:Key="InputMode_Global">Global</sys:String>
|
<sys:String x:Key="InputMode_Global">Global</sys:String>
|
||||||
<sys:String x:Key="InputMode_Broadcast">Broadcast</sys:String>
|
<sys:String x:Key="InputMode_Broadcast">Broadcast</sys:String>
|
||||||
|
<sys:String x:Key="InputMode_Alert">Alert (requires Pippi mod)</sys:String>
|
||||||
|
<sys:String x:Key="InputMode_Server">Server (requires Pippi mod)</sys:String>
|
||||||
|
|
||||||
<sys:String x:Key="ConsoleStatus_Disconnected">Disconnected</sys:String>
|
<sys:String x:Key="ConsoleStatus_Disconnected">Disconnected</sys:String>
|
||||||
<sys:String x:Key="ConsoleStatus_Connected">Connected</sys:String>
|
<sys:String x:Key="ConsoleStatus_Connected">Connected</sys:String>
|
||||||
|
|
@ -922,6 +924,9 @@
|
||||||
<sys:String x:Key="GlobalSettings_Alerts_ModUpdateDetectedTooltip">This message will be displayed when the server manager detects one or more mods are out of date.</sys:String>
|
<sys:String x:Key="GlobalSettings_Alerts_ModUpdateDetectedTooltip">This message will be displayed when the server manager detects one or more mods are out of date.</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_Alerts_ForceRespawnDinosLabel">Force Respawn Creatures Warning:</sys:String>
|
<sys:String x:Key="GlobalSettings_Alerts_ForceRespawnDinosLabel">Force Respawn Creatures Warning:</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_Alerts_ForceRespawnDinosTooltip">This message will be displayed when the server is being started and a wild creature wipe is scheduled.</sys:String>
|
<sys:String x:Key="GlobalSettings_Alerts_ForceRespawnDinosTooltip">This message will be displayed when the server is being started and a wild creature wipe is scheduled.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="GlobalSettings_RCON_ModeLabel">RCON Broadcast Mode:</sys:String>
|
||||||
|
<sys:String x:Key="GlobalSettings_RCON_ModeTooltip">Select the method used by the server manager to send auto process messages to the game clients via RCON.</sys:String>
|
||||||
<!--#endregion-->
|
<!--#endregion-->
|
||||||
|
|
||||||
<!--#region Server Settings Control-->
|
<!--#region Server Settings Control-->
|
||||||
|
|
|
||||||
|
|
@ -2548,7 +2548,7 @@ namespace ServerManagerTool.Lib
|
||||||
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
|
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var sent = await SendCommandAsync($"{ServerRcon.RCON_COMMAND_BROADCAST} {message}", false);
|
var sent = await SendCommandAsync($"{Config.Default.RCON_MessageCommand.ToLower()} {message}", false);
|
||||||
|
|
||||||
if (sent)
|
if (sent)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ namespace ServerManagerTool.Lib
|
||||||
public const string NoResponseOutput = "NO_RESPONSE";
|
public const string NoResponseOutput = "NO_RESPONSE";
|
||||||
|
|
||||||
public const string RCON_COMMAND_BROADCAST = "broadcast";
|
public const string RCON_COMMAND_BROADCAST = "broadcast";
|
||||||
|
public const string RCON_COMMAND_ALERT = "alert";
|
||||||
|
public const string RCON_COMMAND_SERVER = "server";
|
||||||
public const string RCON_COMMAND_LISTPLAYERS = "#managerplayerlist#";
|
public const string RCON_COMMAND_LISTPLAYERS = "#managerplayerlist#";
|
||||||
|
|
||||||
public event EventHandler PlayersCollectionUpdated;
|
public event EventHandler PlayersCollectionUpdated;
|
||||||
|
|
@ -245,16 +247,28 @@ namespace ServerManagerTool.Lib
|
||||||
//
|
//
|
||||||
// Perform per-command special processing to extract data
|
// Perform per-command special processing to extract data
|
||||||
//
|
//
|
||||||
|
if (command?.command?.Equals(RCON_COMMAND_LISTPLAYERS, StringComparison.OrdinalIgnoreCase) ?? false)
|
||||||
|
{
|
||||||
|
command.suppressCommand = true;
|
||||||
|
command.suppressOutput = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (command?.command?.Equals(RCON_COMMAND_BROADCAST, StringComparison.OrdinalIgnoreCase) ?? false)
|
if (command?.command?.Equals(RCON_COMMAND_BROADCAST, StringComparison.OrdinalIgnoreCase) ?? false)
|
||||||
{
|
{
|
||||||
LogEvent(LogEventType.Chat, command.rawCommand);
|
LogEvent(LogEventType.Chat, command.rawCommand);
|
||||||
command.suppressOutput = true;
|
command.suppressOutput = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command?.command?.Equals(RCON_COMMAND_LISTPLAYERS, StringComparison.OrdinalIgnoreCase) ?? false)
|
if (command?.command?.Equals(RCON_COMMAND_ALERT, StringComparison.OrdinalIgnoreCase) ?? false)
|
||||||
{
|
{
|
||||||
command.suppressCommand = true;
|
LogEvent(LogEventType.Chat, command.rawCommand);
|
||||||
command.suppressOutput = false;
|
command.suppressOutput = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command?.command?.Equals(RCON_COMMAND_SERVER, StringComparison.OrdinalIgnoreCase) ?? false)
|
||||||
|
{
|
||||||
|
LogEvent(LogEventType.Chat, command.rawCommand);
|
||||||
|
command.suppressOutput = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1153,7 +1153,7 @@ namespace ServerManagerTool.Lib
|
||||||
if (string.IsNullOrWhiteSpace(message))
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var sent = await SendCommandAsync($"{ServerRcon.RCON_COMMAND_BROADCAST} {message}", false);
|
var sent = await SendCommandAsync($"{Config.Default.RCON_MessageCommand.ToLower()} {message}", false);
|
||||||
|
|
||||||
if (sent)
|
if (sent)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -743,6 +743,11 @@
|
||||||
<cctl:AnnotatedSlider Grid.Row="6" Grid.Column="0" Margin="0" Label="{DynamicResource GlobalSettings_LoggingMaxArchiveDaysLabel}" Value="{Binding Config.LoggingMaxArchiveDays}" Minimum="1" Maximum="365" SmallChange="1" LargeChange="5" TickFrequency="5" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" SuffixRelativeMinWidth="40" Suffix="{DynamicResource SliderUnits_Days}" ToolTip="{DynamicResource GlobalSettings_LoggingMaxArchiveDaysTooltip}" IsEnabled="{Binding Config.LoggingEnabled}"/>
|
<cctl:AnnotatedSlider Grid.Row="6" Grid.Column="0" Margin="0" Label="{DynamicResource GlobalSettings_LoggingMaxArchiveDaysLabel}" Value="{Binding Config.LoggingMaxArchiveDays}" Minimum="1" Maximum="365" SmallChange="1" LargeChange="5" TickFrequency="5" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" SuffixRelativeMinWidth="40" Suffix="{DynamicResource SliderUnits_Days}" ToolTip="{DynamicResource GlobalSettings_LoggingMaxArchiveDaysTooltip}" IsEnabled="{Binding Config.LoggingEnabled}"/>
|
||||||
|
|
||||||
<cctl:AnnotatedSlider Grid.Row="7" Grid.Column="0" Margin="0" Label="{DynamicResource GlobalSettings_LoggingMaxArchiveFilesLabel}" Value="{Binding Config.LoggingMaxArchiveFiles}" Minimum="1" Maximum="1000" SmallChange="1" LargeChange="5" TickFrequency="5" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" SuffixRelativeMinWidth="40" Suffix="{DynamicResource SliderUnits_Files}" ToolTip="{DynamicResource GlobalSettings_LoggingMaxArchiveFilesTooltip}" IsEnabled="{Binding Config.LoggingEnabled}"/>
|
<cctl:AnnotatedSlider Grid.Row="7" Grid.Column="0" Margin="0" Label="{DynamicResource GlobalSettings_LoggingMaxArchiveFilesLabel}" Value="{Binding Config.LoggingMaxArchiveFiles}" Minimum="1" Maximum="1000" SmallChange="1" LargeChange="5" TickFrequency="5" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" SuffixRelativeMinWidth="40" Suffix="{DynamicResource SliderUnits_Files}" ToolTip="{DynamicResource GlobalSettings_LoggingMaxArchiveFilesTooltip}" IsEnabled="{Binding Config.LoggingEnabled}"/>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="7" Grid.Column="1" Margin="0" Orientation="Horizontal">
|
||||||
|
<Label Content="{DynamicResource GlobalSettings_RCON_ModeLabel}" VerticalAlignment="Center"/>
|
||||||
|
<ComboBox Name="RconMessageModesComboBox" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=RconMessageModes}" SelectedValue="{Binding Config.RCON_MessageCommand}" ToolTip="{DynamicResource GlobalSettings_RCON_ModeTooltip}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ namespace ServerManagerTool
|
||||||
public static readonly DependencyProperty WindowStatesServerMonitorProperty = DependencyProperty.Register(nameof(WindowStatesServerMonitor), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
public static readonly DependencyProperty WindowStatesServerMonitorProperty = DependencyProperty.Register(nameof(WindowStatesServerMonitor), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
||||||
public static readonly DependencyProperty DiscordBotLogLevelsProperty = DependencyProperty.Register(nameof(DiscordBotLogLevels), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
public static readonly DependencyProperty DiscordBotLogLevelsProperty = DependencyProperty.Register(nameof(DiscordBotLogLevels), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
||||||
public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List<DiscordBotWhitelistItem>), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List<DiscordBotWhitelistItem>), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
||||||
|
public static readonly DependencyProperty RconMessageModesProperty = DependencyProperty.Register(nameof(RconMessageModes), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
|
||||||
|
|
||||||
public GlobalSettingsControl()
|
public GlobalSettingsControl()
|
||||||
{
|
{
|
||||||
|
|
@ -50,6 +51,7 @@ namespace ServerManagerTool
|
||||||
PopulateWindowsStatesMainWindowComboBox();
|
PopulateWindowsStatesMainWindowComboBox();
|
||||||
PopulateWindowsStatesServerMonitorWindowComboBox();
|
PopulateWindowsStatesServerMonitorWindowComboBox();
|
||||||
PopulateDiscordBotLogLevelsComboBox();
|
PopulateDiscordBotLogLevelsComboBox();
|
||||||
|
PopulateRconMessageModesComboBox();
|
||||||
|
|
||||||
DiscordBotWhitelist = new List<DiscordBotWhitelistItem>();
|
DiscordBotWhitelist = new List<DiscordBotWhitelistItem>();
|
||||||
if (Config.DiscordBotWhitelist != null)
|
if (Config.DiscordBotWhitelist != null)
|
||||||
|
|
@ -114,6 +116,12 @@ namespace ServerManagerTool
|
||||||
set { SetValue(DiscordBotWhitelistProperty, value); }
|
set { SetValue(DiscordBotWhitelistProperty, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ComboBoxItemList RconMessageModes
|
||||||
|
{
|
||||||
|
get { return (ComboBoxItemList)GetValue(RconMessageModesProperty); }
|
||||||
|
set { SetValue(RconMessageModesProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
public void ApplyChangesToConfig()
|
public void ApplyChangesToConfig()
|
||||||
{
|
{
|
||||||
if (Config.DiscordBotWhitelist is null)
|
if (Config.DiscordBotWhitelist is null)
|
||||||
|
|
@ -414,6 +422,7 @@ namespace ServerManagerTool
|
||||||
|
|
||||||
PopulateWindowsStatesMainWindowComboBox();
|
PopulateWindowsStatesMainWindowComboBox();
|
||||||
PopulateWindowsStatesServerMonitorWindowComboBox();
|
PopulateWindowsStatesServerMonitorWindowComboBox();
|
||||||
|
PopulateRconMessageModesComboBox();
|
||||||
|
|
||||||
App.Instance.OnResourceDictionaryChanged(Config.CultureName);
|
App.Instance.OnResourceDictionaryChanged(Config.CultureName);
|
||||||
}
|
}
|
||||||
|
|
@ -554,6 +563,27 @@ namespace ServerManagerTool
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PopulateRconMessageModesComboBox()
|
||||||
|
{
|
||||||
|
var selectedValue = this.RconMessageModesComboBox?.SelectedValue ?? Config.RCON_MessageCommand;
|
||||||
|
var list = new ComboBoxItemList();
|
||||||
|
|
||||||
|
foreach (InputMode inputMode in Enum.GetValues(typeof(InputMode)))
|
||||||
|
{
|
||||||
|
if (inputMode == InputMode.Command)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var displayMember = _globalizer.GetResourceString($"InputMode_{inputMode}") ?? inputMode.ToString();
|
||||||
|
list.Add(new Common.Model.ComboBoxItem(inputMode.ToString(), displayMember));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.RconMessageModes = list;
|
||||||
|
if (this.RconMessageModesComboBox != null)
|
||||||
|
{
|
||||||
|
this.RconMessageModesComboBox.SelectedValue = selectedValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region Discord Bot Whitelist
|
#region Discord Bot Whitelist
|
||||||
private void AddDiscordBotWhitelist_Click(object sender, RoutedEventArgs e)
|
private void AddDiscordBotWhitelist_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,31 @@
|
||||||
<link href="http://servermanagers.freeforums.net/" />
|
<link href="http://servermanagers.freeforums.net/" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-22T00:00:00Z</updated>
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<id>urn:uuid:59A5E20B-D3B2-4FDB-8E03-F0C3022C344F</id>
|
||||||
|
<title>1.1.65 (1.1.65.1)</title>
|
||||||
|
<summary>1.1.65.1</summary>
|
||||||
|
<link href="" />
|
||||||
|
<updated>2022-03-23T00:00:00Z</updated>
|
||||||
|
<content type="xhtml">
|
||||||
|
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
||||||
|
<p>
|
||||||
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
|
<br/>
|
||||||
|
<ul>
|
||||||
|
<li>RCON Window - added two addional RCON broadcast methods, both require Pippi mod - Alert and Server.</li>
|
||||||
|
<li>Global Settings - added RCON broadcast mode droplist, so auto processes can send messages via RCON using this mode.</li>
|
||||||
|
<li>Auto Processes - changed the message broadcast to use the new config setting, not a hardcoded value.</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</content>
|
||||||
|
<author>
|
||||||
|
<name>bletch</name>
|
||||||
|
<email>bletch1971@hotmail.com</email>
|
||||||
|
</author>
|
||||||
|
</entry>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>urn:uuid:674D8E81-FB1B-42D9-8309-41AE40D5192F</id>
|
<id>urn:uuid:674D8E81-FB1B-42D9-8309-41AE40D5192F</id>
|
||||||
<title>1.1.64 (1.1.64.1)</title>
|
<title>1.1.64 (1.1.64.1)</title>
|
||||||
|
|
|
||||||
|
|
@ -5,21 +5,23 @@
|
||||||
<title>Conan Server Manager Version Feed</title>
|
<title>Conan Server Manager Version Feed</title>
|
||||||
<subtitle>This is the Conan Server Manager beta version feed.</subtitle>
|
<subtitle>This is the Conan Server Manager beta version feed.</subtitle>
|
||||||
<link href="http://servermanagers.freeforums.net/" />
|
<link href="http://servermanagers.freeforums.net/" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-23T00:00:00Z</updated>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>urn:uuid:674D8E81-FB1B-42D9-8309-41AE40D5192F</id>
|
<id>urn:uuid:59A5E20B-D3B2-4FDB-8E03-F0C3022C344F</id>
|
||||||
<title>1.1.64 (1.1.64.1)</title>
|
<title>1.1.65 (1.1.65.1)</title>
|
||||||
<summary>1.1.64.1</summary>
|
<summary>1.1.65.1</summary>
|
||||||
<link href="" />
|
<link href="" />
|
||||||
<updated>2022-03-22T00:00:00Z</updated>
|
<updated>2022-03-23T00:00:00Z</updated>
|
||||||
<content type="xhtml">
|
<content type="xhtml">
|
||||||
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial, Verdana, Helvetica, Sans-Serif;font-size: .8em;">
|
||||||
<p>
|
<p>
|
||||||
<u style="font-size: .9em;">BUGFIX</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed a bug that would prevent auto processes from sending through broadcast messages to the clients.</li>
|
<li>RCON Window - added two addional RCON broadcast methods, both require Pippi mod - Alert and Server.</li>
|
||||||
|
<li>Global Settings - added RCON broadcast mode droplist, so auto processes can send messages via RCON using this mode.</li>
|
||||||
|
<li>Auto Processes - changed the message broadcast to use the new config setting, not a hardcoded value.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,9 @@ namespace ServerManagerTool
|
||||||
public enum InputMode
|
public enum InputMode
|
||||||
{
|
{
|
||||||
Command,
|
Command,
|
||||||
//Global,
|
|
||||||
Broadcast,
|
Broadcast,
|
||||||
|
Alert,
|
||||||
|
Server,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum InputWindowMode
|
public enum InputWindowMode
|
||||||
|
|
@ -633,12 +634,20 @@ namespace ServerManagerTool
|
||||||
|
|
||||||
switch (effectiveMode)
|
switch (effectiveMode)
|
||||||
{
|
{
|
||||||
|
case InputMode.Command:
|
||||||
|
this.ServerRcon.IssueCommand(commandText);
|
||||||
|
break;
|
||||||
|
|
||||||
case InputMode.Broadcast:
|
case InputMode.Broadcast:
|
||||||
this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_BROADCAST} {commandText}");
|
this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_BROADCAST} {commandText}");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case InputMode.Command:
|
case InputMode.Alert:
|
||||||
this.ServerRcon.IssueCommand(commandText);
|
this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_ALERT} {commandText}");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case InputMode.Server:
|
||||||
|
this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_SERVER} {commandText}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -737,6 +746,14 @@ namespace ServerManagerTool
|
||||||
{
|
{
|
||||||
yield return new RconOutput_Broadcast(command.args);
|
yield return new RconOutput_Broadcast(command.args);
|
||||||
}
|
}
|
||||||
|
else if(command.command.Equals(ServerRcon.RCON_COMMAND_ALERT, StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
yield return new RconOutput_Broadcast(command.args);
|
||||||
|
}
|
||||||
|
else if(command.command.Equals(ServerRcon.RCON_COMMAND_SERVER, StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
yield return new RconOutput_Broadcast(command.args);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yield return new RconOutput_Command($"> {command.rawCommand}");
|
yield return new RconOutput_Command($"> {command.rawCommand}");
|
||||||
|
|
|
||||||
|
|
@ -71,20 +71,7 @@
|
||||||
|
|
||||||
<cctl:AnnotatedSlider Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="1" Label="{DynamicResource ShutdownWindow_ShutdownIntervalLabel}" Value="{Binding ShutdownInterval}" Minimum="0" Maximum="60" SmallChange="1" LargeChange="5" TickFrequency="1" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" Suffix="{DynamicResource SliderUnits_Minutes}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_ShutdownIntervalTooltip}"/>
|
<cctl:AnnotatedSlider Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="1" Label="{DynamicResource ShutdownWindow_ShutdownIntervalLabel}" Value="{Binding ShutdownInterval}" Minimum="0" Maximum="60" SmallChange="1" LargeChange="5" TickFrequency="1" LabelRelativeWidth="Auto" SliderRelativeWidth="15*" SuffixRelativeWidth="Auto" Suffix="{DynamicResource SliderUnits_Minutes}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_ShutdownIntervalTooltip}"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="2" Grid.Column="0" Margin="5" Content="{DynamicResource ShutdownWindow_BackupWorldFileLabel}" IsChecked="{Binding BackupWorldFile}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_BackupWorldFileTooltip}" HorizontalAlignment="Left">
|
<CheckBox Grid.Row="2" Grid.Column="0" Margin="5" Content="{DynamicResource ShutdownWindow_BackupWorldFileLabel}" IsChecked="{Binding BackupWorldFile}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_BackupWorldFileTooltip}" HorizontalAlignment="Left"/>
|
||||||
<CheckBox.Style>
|
|
||||||
<Style BasedOn="{StaticResource {x:Type CheckBox}}" TargetType="{x:Type CheckBox}">
|
|
||||||
<Style.Triggers>
|
|
||||||
<DataTrigger Binding="{Binding Server.Profile.SOTF_Enabled}" Value="True">
|
|
||||||
<Setter Property="Visibility" Value="Collapsed"/>
|
|
||||||
</DataTrigger>
|
|
||||||
<DataTrigger Binding="{Binding Server.Profile.SOTF_Enabled}" Value="False">
|
|
||||||
<Setter Property="Visibility" Value="Visible"/>
|
|
||||||
</DataTrigger>
|
|
||||||
</Style.Triggers>
|
|
||||||
</Style>
|
|
||||||
</CheckBox.Style>
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox Grid.Row="2" Grid.Column="1" Margin="5" Content="{DynamicResource ShutdownWindow_UpdateServerLabel}" IsChecked="{Binding UpdateServer}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_UpdateServerTooltip}" HorizontalAlignment="Left"/>
|
<CheckBox Grid.Row="2" Grid.Column="1" Margin="5" Content="{DynamicResource ShutdownWindow_UpdateServerLabel}" IsChecked="{Binding UpdateServer}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_UpdateServerTooltip}" HorizontalAlignment="Left"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="3" Grid.Column="0" Margin="5" Content="{DynamicResource ShutdownWindow_RestartServerLabel}" IsChecked="{Binding RestartServer}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_RestartServerTooltip}" HorizontalAlignment="Left"/>
|
<CheckBox Grid.Row="3" Grid.Column="0" Margin="5" Content="{DynamicResource ShutdownWindow_RestartServerLabel}" IsChecked="{Binding RestartServer}" IsEnabled="{Binding ShutdownStarted, Converter={StaticResource InvertBooleanConverter}}" ToolTip="{DynamicResource ShutdownWindow_RestartServerTooltip}" HorizontalAlignment="Left"/>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue