diff --git a/src/ARKServerManager/App.config b/src/ARKServerManager/App.config
index 243db532..5de97710 100644
--- a/src/ARKServerManager/App.config
+++ b/src/ARKServerManager/App.config
@@ -882,6 +882,9 @@
False
+
+ Broadcast
+
diff --git a/src/ARKServerManager/Config.Designer.cs b/src/ARKServerManager/Config.Designer.cs
index 79ca36dd..1fc7c1c5 100644
--- a/src/ARKServerManager/Config.Designer.cs
+++ b/src/ARKServerManager/Config.Designer.cs
@@ -12,7 +12,7 @@ namespace ServerManagerTool {
[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 {
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
@@ -3126,5 +3126,17 @@ namespace ServerManagerTool {
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;
+ }
+ }
}
}
diff --git a/src/ARKServerManager/Config.settings b/src/ARKServerManager/Config.settings
index 393c59de..9485ab3a 100644
--- a/src/ARKServerManager/Config.settings
+++ b/src/ARKServerManager/Config.settings
@@ -860,5 +860,8 @@
False
+
+ Broadcast
+
\ No newline at end of file
diff --git a/src/ARKServerManager/Lib/ServerApp.cs b/src/ARKServerManager/Lib/ServerApp.cs
index 7d23d30d..f882d92c 100644
--- a/src/ARKServerManager/Lib/ServerApp.cs
+++ b/src/ARKServerManager/Lib/ServerApp.cs
@@ -2655,7 +2655,7 @@ namespace ServerManagerTool.Lib
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
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)
{
diff --git a/src/ARKServerManager/Lib/ServerRCON.cs b/src/ARKServerManager/Lib/ServerRCON.cs
index 6dd0b8fc..4f498db2 100644
--- a/src/ARKServerManager/Lib/ServerRCON.cs
+++ b/src/ARKServerManager/Lib/ServerRCON.cs
@@ -323,7 +323,8 @@ namespace ServerManagerTool.Lib
command.suppressOutput = false;
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
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);
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);
command.suppressOutput = true;
diff --git a/src/ARKServerManager/Lib/ServerRuntime.cs b/src/ARKServerManager/Lib/ServerRuntime.cs
index 78a39566..daaa814f 100644
--- a/src/ARKServerManager/Lib/ServerRuntime.cs
+++ b/src/ARKServerManager/Lib/ServerRuntime.cs
@@ -1166,7 +1166,7 @@ namespace ServerManagerTool.Lib
if (string.IsNullOrWhiteSpace(message))
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)
{
diff --git a/src/ARKServerManager/VersionFeed.xml b/src/ARKServerManager/VersionFeed.xml
index 75e32221..3f7248a7 100644
--- a/src/ARKServerManager/VersionFeed.xml
+++ b/src/ARKServerManager/VersionFeed.xml
@@ -7,6 +7,29 @@
2022-03-22T00:00:00Z
+
+ urn:uuid:95C9671F-4AEC-4433-AD68-CF91854FEC1B
+ 1.1.422 (1.1.422.1)
+ 1.1.422.1
+
+ 2022-03-22T00:00:00Z
+
+
+
+ CHANGE
+
+
+ - Changed the auto process message broadcast to use a config setting, not a hardcoded value.
+
+
+
+
+
+ bletch
+ bletch1971@hotmail.com
+
+
+
urn:uuid:B6B3F1F1-610F-4294-9891-43DD245A5E0A
1.1.421 (1.1.421.1)
diff --git a/src/ARKServerManager/VersionFeedBeta.xml b/src/ARKServerManager/VersionFeedBeta.xml
index 4c032a0d..9ced0d0a 100644
--- a/src/ARKServerManager/VersionFeedBeta.xml
+++ b/src/ARKServerManager/VersionFeedBeta.xml
@@ -5,21 +5,21 @@
Ark Server Manager Version Feed
This is the Ark Server Manager beta version feed.
- 2022-03-22T00:00:00Z
+ 2022-03-23T00:00:00Z
- urn:uuid:B6B3F1F1-610F-4294-9891-43DD245A5E0A
- 1.1.421 (1.1.421.1)
- 1.1.421.1
+ urn:uuid:95C9671F-4AEC-4433-AD68-CF91854FEC1B
+ 1.1.422 (1.1.422.1)
+ 1.1.422.1
- 2022-03-22T00:00:00Z
+ 2022-03-23T00:00:00Z
- BUGFIX
+ CHANGE
- - Fixed a bug that would prevent auto processes from sending through broadcast messages to the clients.
+ - Changed the auto process message broadcast to use a config setting, not a hardcoded value.
diff --git a/src/ARKServerManager/Windows/RCONWindow.xaml.cs b/src/ARKServerManager/Windows/RCONWindow.xaml.cs
index 10ae25a5..bb2e8178 100644
--- a/src/ARKServerManager/Windows/RCONWindow.xaml.cs
+++ b/src/ARKServerManager/Windows/RCONWindow.xaml.cs
@@ -441,7 +441,7 @@ namespace ServerManagerTool
execute: (_) =>
{
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);
},
@@ -458,7 +458,7 @@ namespace ServerManagerTool
execute: (_) =>
{
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);
},
@@ -801,6 +801,10 @@ namespace ServerManagerTool
switch (effectiveMode)
{
+ case InputMode.Command:
+ this.ServerRCON.IssueCommand(commandText);
+ break;
+
case InputMode.Broadcast:
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_BROADCAST} {commandText}");
break;
@@ -815,16 +819,6 @@ namespace ServerManagerTool
this.ServerRCON.IssueCommand($"{ServerRCON.RCON_COMMAND_SERVERCHAT} {commandText}");
}
break;
-
- case InputMode.Command:
- this.ServerRCON.IssueCommand(commandText);
- break;
-
-#if false
- case InputMode.Chat:
- this.ServerRCON.IssueCommand(textBox.Text);
- break;
-#endif
}
}
diff --git a/src/ConanServerManager/App.config b/src/ConanServerManager/App.config
index b86bafda..3ce4670d 100644
--- a/src/ConanServerManager/App.config
+++ b/src/ConanServerManager/App.config
@@ -657,6 +657,9 @@
False
+
+ Broadcast
+
\ No newline at end of file
diff --git a/src/ConanServerManager/Config.Designer.cs b/src/ConanServerManager/Config.Designer.cs
index 2e2eab69..b9e02610 100644
--- a/src/ConanServerManager/Config.Designer.cs
+++ b/src/ConanServerManager/Config.Designer.cs
@@ -12,7 +12,7 @@ namespace ServerManagerTool {
[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 {
private static Config defaultInstance = ((Config)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Config())));
@@ -2309,5 +2309,17 @@ namespace ServerManagerTool {
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;
+ }
+ }
}
}
diff --git a/src/ConanServerManager/Config.settings b/src/ConanServerManager/Config.settings
index b831c96a..f625c684 100644
--- a/src/ConanServerManager/Config.settings
+++ b/src/ConanServerManager/Config.settings
@@ -635,5 +635,8 @@
False
+
+ Broadcast
+
\ No newline at end of file
diff --git a/src/ConanServerManager/Globalization/en-US/en-US.xaml b/src/ConanServerManager/Globalization/en-US/en-US.xaml
index 5af13fec..f5ad33ba 100644
--- a/src/ConanServerManager/Globalization/en-US/en-US.xaml
+++ b/src/ConanServerManager/Globalization/en-US/en-US.xaml
@@ -523,6 +523,8 @@
Command
Global
Broadcast
+ Alert (requires Pippi mod)
+ Server (requires Pippi mod)
Disconnected
Connected
@@ -922,6 +924,9 @@
This message will be displayed when the server manager detects one or more mods are out of date.
Force Respawn Creatures Warning:
This message will be displayed when the server is being started and a wild creature wipe is scheduled.
+
+ RCON Broadcast Mode:
+ Select the method used by the server manager to send auto process messages to the game clients via RCON.
diff --git a/src/ConanServerManager/Lib/ServerApp.cs b/src/ConanServerManager/Lib/ServerApp.cs
index 8cdd1d85..ef374b27 100644
--- a/src/ConanServerManager/Lib/ServerApp.cs
+++ b/src/ConanServerManager/Lib/ServerApp.cs
@@ -2548,7 +2548,7 @@ namespace ServerManagerTool.Lib
if (string.IsNullOrWhiteSpace(message) || !SendMessages)
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)
{
diff --git a/src/ConanServerManager/Lib/ServerRcon.cs b/src/ConanServerManager/Lib/ServerRcon.cs
index a7ceba57..4900b4ca 100644
--- a/src/ConanServerManager/Lib/ServerRcon.cs
+++ b/src/ConanServerManager/Lib/ServerRcon.cs
@@ -27,6 +27,8 @@ namespace ServerManagerTool.Lib
public const string NoResponseOutput = "NO_RESPONSE";
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 event EventHandler PlayersCollectionUpdated;
@@ -245,16 +247,28 @@ namespace ServerManagerTool.Lib
//
// 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)
{
LogEvent(LogEventType.Chat, command.rawCommand);
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;
- command.suppressOutput = false;
+ LogEvent(LogEventType.Chat, command.rawCommand);
+ command.suppressOutput = true;
+ }
+
+ if (command?.command?.Equals(RCON_COMMAND_SERVER, StringComparison.OrdinalIgnoreCase) ?? false)
+ {
+ LogEvent(LogEventType.Chat, command.rawCommand);
+ command.suppressOutput = true;
}
}
diff --git a/src/ConanServerManager/Lib/ServerRuntime.cs b/src/ConanServerManager/Lib/ServerRuntime.cs
index 1dcae6b3..835203f8 100644
--- a/src/ConanServerManager/Lib/ServerRuntime.cs
+++ b/src/ConanServerManager/Lib/ServerRuntime.cs
@@ -1153,7 +1153,7 @@ namespace ServerManagerTool.Lib
if (string.IsNullOrWhiteSpace(message))
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)
{
diff --git a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml
index 77d0f99c..3684dc34 100644
--- a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml
+++ b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml
@@ -743,6 +743,11 @@
+
+
+
+
+
diff --git a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs
index 1d8a4ea9..ec4d6f7a 100644
--- a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs
+++ b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs
@@ -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 DiscordBotLogLevelsProperty = DependencyProperty.Register(nameof(DiscordBotLogLevels), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List), typeof(GlobalSettingsControl), new PropertyMetadata(null));
+ public static readonly DependencyProperty RconMessageModesProperty = DependencyProperty.Register(nameof(RconMessageModes), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null));
public GlobalSettingsControl()
{
@@ -50,6 +51,7 @@ namespace ServerManagerTool
PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
PopulateDiscordBotLogLevelsComboBox();
+ PopulateRconMessageModesComboBox();
DiscordBotWhitelist = new List();
if (Config.DiscordBotWhitelist != null)
@@ -114,6 +116,12 @@ namespace ServerManagerTool
set { SetValue(DiscordBotWhitelistProperty, value); }
}
+ public ComboBoxItemList RconMessageModes
+ {
+ get { return (ComboBoxItemList)GetValue(RconMessageModesProperty); }
+ set { SetValue(RconMessageModesProperty, value); }
+ }
+
public void ApplyChangesToConfig()
{
if (Config.DiscordBotWhitelist is null)
@@ -414,6 +422,7 @@ namespace ServerManagerTool
PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
+ PopulateRconMessageModesComboBox();
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
private void AddDiscordBotWhitelist_Click(object sender, RoutedEventArgs e)
{
diff --git a/src/ConanServerManager/VersionFeed.xml b/src/ConanServerManager/VersionFeed.xml
index 41fa0899..82429441 100644
--- a/src/ConanServerManager/VersionFeed.xml
+++ b/src/ConanServerManager/VersionFeed.xml
@@ -7,6 +7,31 @@
2022-03-22T00:00:00Z
+
+ urn:uuid:59A5E20B-D3B2-4FDB-8E03-F0C3022C344F
+ 1.1.65 (1.1.65.1)
+ 1.1.65.1
+
+ 2022-03-23T00:00:00Z
+
+
+
+ CHANGE
+
+
+ - RCON Window - added two addional RCON broadcast methods, both require Pippi mod - Alert and Server.
+ - Global Settings - added RCON broadcast mode droplist, so auto processes can send messages via RCON using this mode.
+ - Auto Processes - changed the message broadcast to use the new config setting, not a hardcoded value.
+
+
+
+
+
+ bletch
+ bletch1971@hotmail.com
+
+
+
urn:uuid:674D8E81-FB1B-42D9-8309-41AE40D5192F
1.1.64 (1.1.64.1)
diff --git a/src/ConanServerManager/VersionFeedBeta.xml b/src/ConanServerManager/VersionFeedBeta.xml
index d7547e80..dd313b12 100644
--- a/src/ConanServerManager/VersionFeedBeta.xml
+++ b/src/ConanServerManager/VersionFeedBeta.xml
@@ -5,21 +5,23 @@
Conan Server Manager Version Feed
This is the Conan Server Manager beta version feed.
- 2022-03-22T00:00:00Z
+ 2022-03-23T00:00:00Z
- urn:uuid:674D8E81-FB1B-42D9-8309-41AE40D5192F
- 1.1.64 (1.1.64.1)
- 1.1.64.1
+ urn:uuid:59A5E20B-D3B2-4FDB-8E03-F0C3022C344F
+ 1.1.65 (1.1.65.1)
+ 1.1.65.1
- 2022-03-22T00:00:00Z
+ 2022-03-23T00:00:00Z
- BUGFIX
+ CHANGE
- - Fixed a bug that would prevent auto processes from sending through broadcast messages to the clients.
+ - RCON Window - added two addional RCON broadcast methods, both require Pippi mod - Alert and Server.
+ - Global Settings - added RCON broadcast mode droplist, so auto processes can send messages via RCON using this mode.
+ - Auto Processes - changed the message broadcast to use the new config setting, not a hardcoded value.
diff --git a/src/ConanServerManager/Windows/RconWindow.xaml.cs b/src/ConanServerManager/Windows/RconWindow.xaml.cs
index 94831f88..69ea5cff 100644
--- a/src/ConanServerManager/Windows/RconWindow.xaml.cs
+++ b/src/ConanServerManager/Windows/RconWindow.xaml.cs
@@ -27,8 +27,9 @@ namespace ServerManagerTool
public enum InputMode
{
Command,
- //Global,
Broadcast,
+ Alert,
+ Server,
}
public enum InputWindowMode
@@ -633,12 +634,20 @@ namespace ServerManagerTool
switch (effectiveMode)
{
+ case InputMode.Command:
+ this.ServerRcon.IssueCommand(commandText);
+ break;
+
case InputMode.Broadcast:
this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_BROADCAST} {commandText}");
break;
- case InputMode.Command:
- this.ServerRcon.IssueCommand(commandText);
+ case InputMode.Alert:
+ this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_ALERT} {commandText}");
+ break;
+
+ case InputMode.Server:
+ this.ServerRcon.IssueCommand($"{ServerRcon.RCON_COMMAND_SERVER} {commandText}");
break;
}
@@ -737,6 +746,14 @@ namespace ServerManagerTool
{
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
{
yield return new RconOutput_Command($"> {command.rawCommand}");
diff --git a/src/ConanServerManager/Windows/ShutdownWindow.xaml b/src/ConanServerManager/Windows/ShutdownWindow.xaml
index e1c5cb14..466e16a7 100644
--- a/src/ConanServerManager/Windows/ShutdownWindow.xaml
+++ b/src/ConanServerManager/Windows/ShutdownWindow.xaml
@@ -71,20 +71,7 @@
-
-
-
-
-
+