Discord Bot Changes

- Have added All Profiles Alias global settings
- Have changed the discord bot to handle the All Profile alias to performs commands against all profiles in the channel.
This commit is contained in:
Brett Hewitson 2022-04-14 21:06:14 +10:00
parent fc658b04dd
commit 1aa8d79108
19 changed files with 1227 additions and 1026 deletions

View file

@ -885,6 +885,9 @@
<setting name="RCON_MessageCommand" serializeAs="String">
<value>Broadcast</value>
</setting>
<setting name="DiscordBotAllServersKeyword" serializeAs="String">
<value>all</value>
</setting>
</ServerManagerTool.Config>
</userSettings>
</configuration>

View file

@ -3138,5 +3138,17 @@ namespace ServerManagerTool {
this["RCON_MessageCommand"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("all")]
public string DiscordBotAllServersKeyword {
get {
return ((string)(this["DiscordBotAllServersKeyword"]));
}
set {
this["DiscordBotAllServersKeyword"] = value;
}
}
}
}

View file

@ -863,5 +863,8 @@
<Setting Name="RCON_MessageCommand" Type="System.String" Scope="User">
<Value Profile="(Default)">Broadcast</Value>
</Setting>
<Setting Name="DiscordBotAllServersKeyword" Type="System.String" Scope="User">
<Value Profile="(Default)">all</Value>
</Setting>
</Settings>
</SettingsFile>

View file

@ -639,6 +639,8 @@
<sys:String x:Key="GlobalSettings_DiscordBotLogLevelLabel">Log Level:</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotApplyButtonLabel">Get Token...</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotAllServersKeywordLabel">All Profiles Alias:</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotAllServersKeywordTooltip">The alias to use when sending a command via discord to all profiles associated with a discord channel. Do not include spaces or special characters. To disable the All Profiles alias, clear the value.</sys:String>
<sys:String x:Key="ServerSettings_DiscordBotAllowAllBotsLabel">Allow All Bots</sys:String>
<sys:String x:Key="ServerSettings_DiscordBotAllowAllBotsTooltip">If enabled, the server manager bot will respond to all other bots, otherwise they will be ignored unless they are in the whitelist.</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistLabel">Bot Whitelist</sys:String>
@ -5648,6 +5650,7 @@
<sys:String x:Key="DiscordBot_ProfileMultiples">Multiple profiles with '{0}' were found in the channel, command aborted.</sys:String>
<sys:String x:Key="DiscordBot_ProfileBadStatus">Profile '{0}' is in a state '{1}' that cannot run this command.</sys:String>
<sys:String x:Key="DiscordBot_ProfileUpdating">Profile '{0}' is currently being updated.</sys:String>
<sys:String x:Key="DiscordBot_NoChannelProfiles">No profiles are associated with the channel.</sys:String>
<sys:String x:Key="DiscordBot_InfoFailed">Call to server '{0}' failed.</sys:String>
<sys:String x:Key="DiscordBot_BackupRequested">A backup request for server '{0}' has been sent.</sys:String>

View file

@ -620,22 +620,25 @@
<Button Margin="1" Content="{DynamicResource DiscordBotHelpButtonContent}" Click="DiscordBotHelp_Click"/>
</StackPanel>
<Label Grid.Row="2" Grid.Column="0" Content="{DynamicResource GlobalSettings_DiscordBotServerLabel}" VerticalAlignment="Center"/>
<Label Grid.Row="2" Grid.Column="0" Content="{DynamicResource GlobalSettings_DiscordBotServerLabel}" VerticalAlignment="Top" Margin="0,2,0,0"/>
<TextBox Grid.Row="2" Grid.Column="1" Margin="1" Text="{Binding Config.DiscordBotServerId}" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" ToolTip="{DynamicResource GlobalSettings_DiscordBotServerTooltip}"/>
<Label Grid.Row="2" Grid.Column="3" Content="{DynamicResource GlobalSettings_DiscordBotPrefixLabel}" VerticalAlignment="Center"/>
<TextBox Grid.Row="2" Grid.Column="4" Margin="1" Text="{Binding Config.DiscordBotPrefix}" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" ToolTip="{DynamicResource GlobalSettings_DiscordBotPrefixTooltip}"/>
<Label Grid.Row="2" Grid.Column="6" Margin="1" Content="{DynamicResource GlobalSettings_DiscordBotLogLevelLabel}" VerticalAlignment="Center"/>
<ComboBox Name="DiscordBotLogLevelComboBox" Grid.Row="2" Grid.Column="7" Margin="1" ItemsSource="{Binding ElementName=GlobalSettings, Path=DiscordBotLogLevels}" SelectedValue="{Binding Config.DiscordBotLogLevel}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" VerticalContentAlignment="Center" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<CheckBox Grid.Row="3" Grid.Column="1" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordBackup}" Content="{DynamicResource ServerSettings_AllowDiscordBackupLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowBackupTooltip}"/>
<CheckBox Grid.Row="3" Grid.Column="4" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordUpdate}" Content="{DynamicResource ServerSettings_AllowDiscordUpdateLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowUpdateTooltip}"/>
<CheckBox Grid.Row="3" Grid.Column="7" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordStart}" Content="{DynamicResource ServerSettings_AllowDiscordStartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStartTooltip}"/>
<Label Grid.Row="3" Grid.Column="0" Content="{DynamicResource GlobalSettings_DiscordBotAllServersKeywordLabel}" VerticalAlignment="Top" Margin="0,2,0,0"/>
<TextBox Grid.Row="3" Grid.Column="1" Margin="1" Text="{Binding Config.DiscordBotAllServersKeyword}" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllServersKeywordTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordRestart}" Content="{DynamicResource ServerSettings_AllowDiscordRestartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowRestartTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="4" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordShutdown}" Content="{DynamicResource ServerSettings_AllowDiscordShutdownLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowShutdownTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="1" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordBackup}" Content="{DynamicResource ServerSettings_AllowDiscordBackupLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowBackupTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="4" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordUpdate}" Content="{DynamicResource ServerSettings_AllowDiscordUpdateLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowUpdateTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="7" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordStart}" Content="{DynamicResource ServerSettings_AllowDiscordStartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStartTooltip}"/>
<GroupBox Grid.Row="5" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
<CheckBox Grid.Row="5" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordRestart}" Content="{DynamicResource ServerSettings_AllowDiscordRestartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowRestartTooltip}"/>
<CheckBox Grid.Row="5" Grid.Column="4" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordShutdown}" Content="{DynamicResource ServerSettings_AllowDiscordShutdownLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowShutdownTooltip}"/>
<CheckBox Grid.Row="5" Grid.Column="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
<GroupBox Grid.Row="6" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
@ -684,7 +687,7 @@
</DataGrid>
</GroupBox>
<CheckBox Grid.Row="6" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.DiscordBotAllowAllBots}" Content="{DynamicResource ServerSettings_DiscordBotAllowAllBotsLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource ServerSettings_DiscordBotAllowAllBotsTooltip}"/>
<CheckBox Grid.Row="7" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.DiscordBotAllowAllBots}" Content="{DynamicResource ServerSettings_DiscordBotAllowAllBotsLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource ServerSettings_DiscordBotAllowAllBotsTooltip}"/>
</Grid>
</GroupBox>

View file

@ -2028,7 +2028,7 @@
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_GlobalPoweredBatteryDurabilityDecreasePerSecondLabel}" Value="{Binding GlobalPoweredBatteryDurabilityDecreasePerSecond}" Suffix="{DynamicResource SliderUnits_Multiplier}" Minimum="0" Maximum="100" SmallChange="1" LargeChange="10" TickFrequency="1" ToolTip="{DynamicResource ServerSettings_GlobalPoweredBatteryDurabilityDecreasePerSecondTooltip}" />
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_FuelConsumptionIntervalMultiplierLabel}" Value="{Binding FuelConsumptionIntervalMultiplier}" Suffix="{DynamicResource SliderUnits_Multiplier}" Minimum="0" Maximum="100" SmallChange="1" LargeChange="10" TickFrequency="1" ToolTip="{DynamicResource ServerSettings_FuelConsumptionIntervalMultiplierTooltip}" />
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsRangeLabel}" Value="{Binding LimitNonPlayerDroppedItemsRange}" Suffix="{DynamicResource SliderUnits_Items}" Minimum="0" Maximum="5000" SmallChange="1" LargeChange="10" TickFrequency="50" ToolTip="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsRangeTooltip}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsRangeLabel}" Value="{Binding LimitNonPlayerDroppedItemsRange}" Suffix="{DynamicResource SliderUnits_Units}" Minimum="0" Maximum="5000" SmallChange="1" LargeChange="10" TickFrequency="50" ToolTip="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsRangeTooltip}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsCountLabel}" Value="{Binding LimitNonPlayerDroppedItemsCount}" Suffix="{DynamicResource SliderUnits_Items}" Minimum="0" Maximum="5000" SmallChange="1" LargeChange="10" TickFrequency="50" ToolTip="{DynamicResource ServerSettings_LimitNonPlayerDroppedItemsCountTooltip}"/>
<GroupBox Style="{StaticResource GroupBoxStyle}">

File diff suppressed because it is too large Load diff

View file

@ -5,20 +5,22 @@
<title>Ark Server Manager Version Feed</title>
<subtitle>This is the Ark Server Manager release version feed.</subtitle>
<link href="http://arkservermanager.freeforums.net/" />
<updated>2022-03-22T00:00:00Z</updated>
<updated>2022-04-14T00: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>
<updated>2022-04-14T00: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>Global Settings - added new discord bot setting for an All Profiles alias. To disable to All Profiles feature, just clear the alias field.</li>
<li>Discord Bot - can now use the new All Profiles alias to send a command to all profiles associated with the channel.</li>
<li>Changed the auto process message broadcast to use a config setting, not a hardcoded value.</li>
</ul>
</p>

View file

@ -5,7 +5,31 @@
<title>Ark Server Manager Version Feed</title>
<subtitle>This is the Ark Server Manager beta version feed.</subtitle>
<link href="http://arkservermanager.freeforums.net/" />
<updated>2022-03-23T00:00:00Z</updated>
<updated>2022-04-14T00:00:00Z</updated>
<entry>
<id>urn:uuid:B5B32577-54E7-49D3-9EDF-D623F54A47D9</id>
<title>1.1.422 (1.1.422.2)</title>
<summary>1.1.422.2</summary>
<link href="" />
<updated>2022-04-14T00: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>Global Settings - added new discord bot setting for an All Profiles alias. To disable to All Profiles feature, just clear the alias field.</li>
<li>Discord Bot - can now use the new All Profiles alias to send a command to all profiles associated with the channel.</li>
</ul>
</p>
</div>
</content>
<author>
<name>bletch</name>
<email>bletch1971@hotmail.com</email>
</author>
</entry>
<entry>
<id>urn:uuid:95C9671F-4AEC-4433-AD68-CF91854FEC1B</id>

View file

@ -660,6 +660,9 @@
<setting name="RCON_MessageCommand" serializeAs="String">
<value>Broadcast</value>
</setting>
<setting name="DiscordBotAllServersKeyword" serializeAs="String">
<value>all</value>
</setting>
</ServerManagerTool.Config>
</userSettings>
</configuration>

View file

@ -2321,5 +2321,17 @@ namespace ServerManagerTool {
this["RCON_MessageCommand"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("all")]
public string DiscordBotAllServersKeyword {
get {
return ((string)(this["DiscordBotAllServersKeyword"]));
}
set {
this["DiscordBotAllServersKeyword"] = value;
}
}
}
}

View file

@ -638,5 +638,8 @@
<Setting Name="RCON_MessageCommand" Type="System.String" Scope="User">
<Value Profile="(Default)">Broadcast</Value>
</Setting>
<Setting Name="DiscordBotAllServersKeyword" Type="System.String" Scope="User">
<Value Profile="(Default)">all</Value>
</Setting>
</Settings>
</SettingsFile>

View file

@ -812,6 +812,8 @@
<sys:String x:Key="GlobalSettings_DiscordBotLogLevelLabel">Log Level:</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotApplyButtonLabel">Get Token...</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotAllServersKeywordLabel">All Profiles Alias:</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotAllServersKeywordTooltip">The alias to use when sending a command via discord to all profiles associated with a discord channel. Do not include spaces or special characters. To disable the All Profiles alias, clear the value.</sys:String>
<sys:String x:Key="ServerSettings_DiscordBotAllowAllBotsLabel">Allow All Bots</sys:String>
<sys:String x:Key="ServerSettings_DiscordBotAllowAllBotsTooltip">If enabled, the server manager bot will respond to all other bots, otherwise they will be ignored unless they are in the whitelist.</sys:String>
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistLabel">Bot Whitelist</sys:String>

View file

@ -575,15 +575,18 @@
<Label Grid.Row="2" Grid.Column="6" Margin="1" Content="{DynamicResource GlobalSettings_DiscordBotLogLevelLabel}" VerticalAlignment="Center"/>
<ComboBox Name="DiscordBotLogLevelComboBox" Grid.Row="2" Grid.Column="7" Margin="1" ItemsSource="{Binding ElementName=GlobalSettings, Path=DiscordBotLogLevels}" SelectedValue="{Binding Config.DiscordBotLogLevel}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" VerticalContentAlignment="Center" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<CheckBox Grid.Row="3" Grid.Column="1" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordBackup}" Content="{DynamicResource ServerSettings_AllowDiscordBackupLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowBackupTooltip}"/>
<CheckBox Grid.Row="3" Grid.Column="4" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordUpdate}" Content="{DynamicResource ServerSettings_AllowDiscordUpdateLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowUpdateTooltip}"/>
<CheckBox Grid.Row="3" Grid.Column="7" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordStart}" Content="{DynamicResource ServerSettings_AllowDiscordStartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStartTooltip}"/>
<Label Grid.Row="3" Grid.Column="0" Content="{DynamicResource GlobalSettings_DiscordBotAllServersKeywordLabel}" VerticalAlignment="Top" Margin="0,2,0,0"/>
<TextBox Grid.Row="3" Grid.Column="1" Margin="1" Text="{Binding Config.DiscordBotAllServersKeyword}" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllServersKeywordTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordRestart}" Content="{DynamicResource ServerSettings_AllowDiscordRestartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowRestartTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="4" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordShutdown}" Content="{DynamicResource ServerSettings_AllowDiscordShutdownLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowShutdownTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="1" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordBackup}" Content="{DynamicResource ServerSettings_AllowDiscordBackupLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowBackupTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="4" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordUpdate}" Content="{DynamicResource ServerSettings_AllowDiscordUpdateLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowUpdateTooltip}"/>
<CheckBox Grid.Row="4" Grid.Column="7" Margin="0,5,0,0" IsChecked="{Binding Config.AllowDiscordStart}" Content="{DynamicResource ServerSettings_AllowDiscordStartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStartTooltip}"/>
<GroupBox Grid.Row="5" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
<CheckBox Grid.Row="5" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordRestart}" Content="{DynamicResource ServerSettings_AllowDiscordRestartLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowRestartTooltip}"/>
<CheckBox Grid.Row="5" Grid.Column="4" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordShutdown}" Content="{DynamicResource ServerSettings_AllowDiscordShutdownLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowShutdownTooltip}"/>
<CheckBox Grid.Row="5" Grid.Column="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
<GroupBox Grid.Row="6" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
@ -632,7 +635,7 @@
</DataGrid>
</GroupBox>
<CheckBox Grid.Row="6" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.DiscordBotAllowAllBots}" Content="{DynamicResource ServerSettings_DiscordBotAllowAllBotsLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource ServerSettings_DiscordBotAllowAllBotsTooltip}"/>
<CheckBox Grid.Row="7" Grid.Column="1" Margin="0,5,0,5" IsChecked="{Binding Config.DiscordBotAllowAllBots}" Content="{DynamicResource ServerSettings_DiscordBotAllowAllBotsLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource ServerSettings_DiscordBotAllowAllBotsTooltip}"/>
</Grid>
</GroupBox>

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,31 @@
<title>Conan Server Manager Version Feed</title>
<subtitle>This is the Conan Server Manager release version feed.</subtitle>
<link href="http://servermanagers.freeforums.net/" />
<updated>2022-03-22T00:00:00Z</updated>
<updated>2022-04-14T00:00:00Z</updated>
<entry>
<id>urn:uuid:243F602B-CD67-4691-BE25-61646590A07A</id>
<title>1.1.66 (1.1.66.1)</title>
<summary>1.1.66.1</summary>
<link href="" />
<updated>2022-04-14T00: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>Global Settings - added new discord bot setting for an All Profiles alias. To disable to All Profiles feature, just clear the alias field.</li>
<li>Discord Bot - can now use the new All Profiles alias to send a command to all profiles associated with the channel.</li>
</ul>
</p>
</div>
</content>
<author>
<name>bletch</name>
<email>bletch1971@hotmail.com</email>
</author>
</entry>
<entry>
<id>urn:uuid:59A5E20B-D3B2-4FDB-8E03-F0C3022C344F</id>

View file

@ -5,23 +5,22 @@
<title>Conan Server Manager Version Feed</title>
<subtitle>This is the Conan Server Manager beta version feed.</subtitle>
<link href="http://servermanagers.freeforums.net/" />
<updated>2022-03-23T00:00:00Z</updated>
<updated>2022-04-14T00: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>
<id>urn:uuid:243F602B-CD67-4691-BE25-61646590A07A</id>
<title>1.1.66 (1.1.66.1)</title>
<summary>1.1.66.1</summary>
<link href="" />
<updated>2022-03-23T00:00:00Z</updated>
<updated>2022-04-14T00: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>
<li>Global Settings - added new discord bot setting for an All Profiles alias. To disable to All Profiles feature, just clear the alias field.</li>
<li>Discord Bot - can now use the new All Profiles alias to send a command to all profiles associated with the channel.</li>
</ul>
</p>
</div>

View file

@ -1,26 +1,25 @@
using Discord;
using System;
using System.Threading.Tasks;
using Discord;
using Discord.Addons.Interactive;
using Discord.Commands;
using Microsoft.Extensions.Configuration;
using ServerManagerTool.DiscordBot.Delegates;
using ServerManagerTool.DiscordBot.Enums;
using ServerManagerTool.DiscordBot.Interfaces;
using System;
using System.Threading.Tasks;
namespace ServerManagerTool.DiscordBot.Modules
{
[Name("Server Commands")]
public sealed class ServerCommandModule : InteractiveBase
{
private const int COMMAND_RESPONSE_DELAY = 500;
private readonly IServerManagerBot _serverManagerBot;
private readonly CommandService _commands;
private readonly HandleCommandDelegate _handleCommandCallback;
public ServerCommandModule(IServerManagerBot serverManagerBot, CommandService commands, HandleCommandDelegate handleCommandCallback)
public ServerCommandModule(IServerManagerBot serverManagerBot, HandleCommandDelegate handleCommandCallback)
{
_serverManagerBot = serverManagerBot;
_commands = commands;
_handleCommandCallback = handleCommandCallback;
}
@ -45,8 +44,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -76,8 +77,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -107,8 +110,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -138,8 +143,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -169,8 +176,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -200,8 +209,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)

View file

@ -1,37 +1,28 @@
using Discord;
using System;
using System.Threading.Tasks;
using Discord;
using Discord.Addons.Interactive;
using Discord.Commands;
using ServerManagerTool.DiscordBot.Delegates;
using ServerManagerTool.DiscordBot.Enums;
using ServerManagerTool.DiscordBot.Interfaces;
using System;
using System.Threading.Tasks;
namespace ServerManagerTool.DiscordBot.Modules
{
[Name("Server Query")]
public sealed class ServerQueryModule : InteractiveBase
{
private const int COMMAND_RESPONSE_DELAY = 500;
private readonly IServerManagerBot _serverManagerBot;
private readonly CommandService _commands;
private readonly HandleCommandDelegate _handleCommandCallback;
public ServerQueryModule(IServerManagerBot serverManagerBot, CommandService commands, HandleCommandDelegate handleCommandCallback)
public ServerQueryModule(IServerManagerBot serverManagerBot, HandleCommandDelegate handleCommandCallback)
{
_serverManagerBot = serverManagerBot;
_commands = commands;
_handleCommandCallback = handleCommandCallback;
}
[Command("info", RunMode = RunMode.Async)]
[Summary("Poll server for information")]
[Remarks("info")]
[RequireBotPermission(ChannelPermission.ViewChannel | ChannelPermission.SendMessages)]
public async Task ServerInfoAsync()
{
await ServerInfoAsync(null);
}
[Command("info", RunMode = RunMode.Async)]
[Summary("Poll server for information")]
[Remarks("info profileId|alias")]
@ -53,8 +44,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -84,8 +77,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)
@ -94,15 +89,6 @@ namespace ServerManagerTool.DiscordBot.Modules
}
}
[Command("status", RunMode = RunMode.Async)]
[Summary("Poll server for status")]
[Remarks("status")]
[RequireBotPermission(ChannelPermission.ViewChannel | ChannelPermission.SendMessages)]
public async Task ServerStatusAsync()
{
await ServerStatusAsync(null);
}
[Command("status", RunMode = RunMode.Async)]
[Summary("Poll server for status")]
[Remarks("status profileId|alias")]
@ -124,8 +110,10 @@ namespace ServerManagerTool.DiscordBot.Modules
foreach (var output in response)
{
await ReplyAsync(output.Replace("&", "_"));
await Task.Delay(1000);
await Task.Delay(COMMAND_RESPONSE_DELAY);
}
await ReplyAsync($"'{Context.Message}' command complete.");
}
}
catch (Exception ex)