mirror of
https://github.com/tribufu/ServerManagers
synced 2026-06-01 09:42:39 +00:00
Added a checkbox to allow all bots.
This commit is contained in:
parent
13713b7092
commit
06551d3c8e
22 changed files with 137 additions and 50 deletions
|
|
@ -863,6 +863,9 @@
|
||||||
<setting name="DiscordBotLogLevel" serializeAs="String">
|
<setting name="DiscordBotLogLevel" serializeAs="String">
|
||||||
<value>Info</value>
|
<value>Info</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="DiscordBotAllowAllBots" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
||||||
|
|
@ -612,7 +612,7 @@ namespace ServerManagerTool
|
||||||
discordWhiteList.AddRange(Config.Default.DiscordBotWhitelist.Cast<string>());
|
discordWhiteList.AddRange(Config.Default.DiscordBotWhitelist.Cast<string>());
|
||||||
}
|
}
|
||||||
|
|
||||||
await ServerManagerBotFactory.GetServerManagerBot()?.StartAsync(Config.Default.DiscordBotLogLevel, Config.Default.DiscordBotToken, Config.Default.DiscordBotPrefix, Config.Default.DataDir, discordWhiteList, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token);
|
await ServerManagerBotFactory.GetServerManagerBot()?.StartAsync(Config.Default.DiscordBotLogLevel, Config.Default.DiscordBotToken, Config.Default.DiscordBotPrefix, Config.Default.DataDir, Config.Default.DiscordBotAllowAllBots, discordWhiteList, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token);
|
||||||
|
|
||||||
if (_tokenSourceDiscordBot != null)
|
if (_tokenSourceDiscordBot != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
12
src/ARKServerManager/Config.Designer.cs
generated
12
src/ARKServerManager/Config.Designer.cs
generated
|
|
@ -3032,5 +3032,17 @@ namespace ServerManagerTool {
|
||||||
return ((int)(this["DiscordBotStatusCheckTime"]));
|
return ((int)(this["DiscordBotStatusCheckTime"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||||
|
public bool DiscordBotAllowAllBots {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["DiscordBotAllowAllBots"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["DiscordBotAllowAllBots"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -837,5 +837,8 @@
|
||||||
<Setting Name="DiscordBotStatusCheckTime" Type="System.Int32" Scope="Application">
|
<Setting Name="DiscordBotStatusCheckTime" Type="System.Int32" Scope="Application">
|
||||||
<Value Profile="(Default)">10</Value>
|
<Value Profile="(Default)">10</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="DiscordBotAllowAllBots" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">False</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -634,6 +634,8 @@
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotLogLevelLabel">Log Level:</sys:String>
|
<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_DiscordBotApplyButtonLabel">Get Token...</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</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>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistLabel">Bot Whitelist</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdLabel">Bot ID</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdLabel">Bot ID</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdTooltip">The id of the bot to whitelist.</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdTooltip">The id of the bot to whitelist.</sys:String>
|
||||||
|
|
|
||||||
|
|
@ -586,12 +586,14 @@
|
||||||
|
|
||||||
<Grid IsEnabled="{Binding Config.DiscordBotEnabled}">
|
<Grid IsEnabled="{Binding Config.DiscordBotEnabled}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="25"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" MinWidth="60"/>
|
<ColumnDefinition Width="Auto" MinWidth="60"/>
|
||||||
|
|
@ -629,7 +631,7 @@
|
||||||
<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="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="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
|
||||||
|
|
||||||
<GroupBox Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" MinHeight="200">
|
<GroupBox Grid.Row="5" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
|
||||||
<GroupBox.Header>
|
<GroupBox.Header>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
|
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
|
||||||
|
|
@ -677,6 +679,8 @@
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
</GroupBox>
|
</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}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,9 @@ namespace ServerManagerTool.Utils
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var mapName = _globalizer.GetResourceString($"Map_{info.Map}") ?? info.Map;
|
var mapName = _globalizer.GetResourceString($"Map_{info.Map}") ?? info.Map;
|
||||||
response.Add($"```{info.Name}\n{_globalizer.GetResourceString("DiscordBot_MapLabel")} {mapName}\n{_globalizer.GetResourceString("ServerSettings_PlayersLabel")} {info.Players} / {info.MaxPlayers}```");
|
response.Add($"```{info.Name}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("DiscordBot_MapLabel")} {mapName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_PlayersLabel")} {info.Players} / {info.MaxPlayers}```");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -193,7 +195,10 @@ namespace ServerManagerTool.Utils
|
||||||
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
||||||
foreach (var server in serverList)
|
foreach (var server in serverList)
|
||||||
{
|
{
|
||||||
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}```");
|
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n" +
|
||||||
|
(string.IsNullOrWhiteSpace(server.Profile.DiscordAlias) ? "" : $"{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n") +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}```");
|
||||||
}
|
}
|
||||||
}).Wait();
|
}).Wait();
|
||||||
|
|
||||||
|
|
@ -212,7 +217,12 @@ namespace ServerManagerTool.Utils
|
||||||
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
||||||
foreach (var server in serverList)
|
foreach (var server in serverList)
|
||||||
{
|
{
|
||||||
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}\n{_globalizer.GetResourceString("ServerSettings_StatusLabel")} {server.Runtime.StatusString}\n{_globalizer.GetResourceString("ServerSettings_AvailabilityLabel")} {_globalizer.GetResourceString($"ServerSettings_Availability_{server.Runtime.Availability}")}```");
|
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n" +
|
||||||
|
(string.IsNullOrWhiteSpace(server.Profile.DiscordAlias) ? "" : $"{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n") +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_StatusLabel")} {server.Runtime.StatusString}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_AvailabilityLabel")} {_globalizer.GetResourceString($"ServerSettings_Availability_{server.Runtime.Availability}")}```");
|
||||||
}
|
}
|
||||||
}).Wait();
|
}).Wait();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,16 +19,17 @@
|
||||||
<u style="font-size: .9em;">NEW</u>
|
<u style="font-size: .9em;">NEW</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
||||||
<li>Global Settings - Discord Bot section - Added a log level droplist.</li>
|
<li>Global Settings - Discord Bot section - Added a log level droplist.</li>
|
||||||
|
<li>Global Settings - Discord Bot section - Added a checkbox to allow all bots.</li>
|
||||||
<li>Global Settings - Discord Bot section - Added a whitelist to allow bots to send commands to the server manager.</li>
|
<li>Global Settings - Discord Bot section - Added a whitelist to allow bots to send commands to the server manager.</li>
|
||||||
<li>Server Settings - Discord Bot section - Added an alias that can be used with the discord command instead of the profile id.</li>
|
<li>Server Settings - Discord Bot section - Added an alias that can be used with the discord command instead of the profile id.</li>
|
||||||
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<u style="font-size: .9em;">CHANGE</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Made changes to the code to help improve performance.</li>
|
<li>Made changes to the code to help improve performance.</li>
|
||||||
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change the existing functionality, but you can now change it.</li>
|
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change to existing functionality, but you can now change it.</li>
|
||||||
<li>pt-BR Translation file updated.</li>
|
<li>pt-BR Translation file updated.</li>
|
||||||
<li>ru-RU Translation file updated.</li>
|
<li>ru-RU Translation file updated.</li>
|
||||||
<li>zh-CN Translation file updated.</li>
|
<li>zh-CN Translation file updated.</li>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
||||||
|
<li>Global Settings - Discord Bot section - Added a checkbox to allow all bots.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -118,7 +119,7 @@
|
||||||
<u style="font-size: .9em;">CHANGE</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change the existing functionality, but you can now change it.</li>
|
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change to existing functionality, but you can now change it.</li>
|
||||||
<li>zh-CN Translation file updated.</li>
|
<li>zh-CN Translation file updated.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
|
|
@ -629,6 +629,9 @@
|
||||||
<setting name="DiscordBotLogLevel" serializeAs="String">
|
<setting name="DiscordBotLogLevel" serializeAs="String">
|
||||||
<value>Info</value>
|
<value>Info</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="DiscordBotAllowAllBots" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
@ -593,7 +593,7 @@ namespace ServerManagerTool
|
||||||
discordWhiteList.AddRange(Config.Default.DiscordBotWhitelist.Cast<string>());
|
discordWhiteList.AddRange(Config.Default.DiscordBotWhitelist.Cast<string>());
|
||||||
}
|
}
|
||||||
|
|
||||||
await ServerManagerBotFactory.GetServerManagerBot()?.StartAsync(Config.Default.DiscordBotLogLevel, Config.Default.DiscordBotToken, Config.Default.DiscordBotPrefix, Config.Default.DataPath, discordWhiteList, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token);
|
await ServerManagerBotFactory.GetServerManagerBot()?.StartAsync(Config.Default.DiscordBotLogLevel, Config.Default.DiscordBotToken, Config.Default.DiscordBotPrefix, Config.Default.DataPath, Config.Default.DiscordBotAllowAllBots, discordWhiteList, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token);
|
||||||
|
|
||||||
if (_tokenSourceDiscordBot != null)
|
if (_tokenSourceDiscordBot != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
12
src/ConanServerManager/Config.Designer.cs
generated
12
src/ConanServerManager/Config.Designer.cs
generated
|
|
@ -2185,5 +2185,17 @@ namespace ServerManagerTool {
|
||||||
return ((int)(this["DiscordBotStatusCheckTime"]));
|
return ((int)(this["DiscordBotStatusCheckTime"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||||
|
public bool DiscordBotAllowAllBots {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["DiscordBotAllowAllBots"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["DiscordBotAllowAllBots"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -603,5 +603,8 @@
|
||||||
<Setting Name="DiscordBotStatusCheckTime" Type="System.Int32" Scope="Application">
|
<Setting Name="DiscordBotStatusCheckTime" Type="System.Int32" Scope="Application">
|
||||||
<Value Profile="(Default)">10</Value>
|
<Value Profile="(Default)">10</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="DiscordBotAllowAllBots" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">False</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -798,6 +798,8 @@
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotLogLevelLabel">Log Level:</sys:String>
|
<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_DiscordBotApplyButtonLabel">Get Token...</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotHelpButtonLabel">Help...</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>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistLabel">Bot Whitelist</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdLabel">Bot ID</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdLabel">Bot ID</sys:String>
|
||||||
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdTooltip">The id of the bot to whitelist.</sys:String>
|
<sys:String x:Key="GlobalSettings_DiscordBotWhitelistIdTooltip">The id of the bot to whitelist.</sys:String>
|
||||||
|
|
|
||||||
|
|
@ -534,12 +534,14 @@
|
||||||
|
|
||||||
<Grid IsEnabled="{Binding Config.DiscordBotEnabled}">
|
<Grid IsEnabled="{Binding Config.DiscordBotEnabled}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="25"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
|
<RowDefinition Height="Auto" MinHeight="20"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" MinWidth="60"/>
|
<ColumnDefinition Width="Auto" MinWidth="60"/>
|
||||||
|
|
@ -577,7 +579,7 @@
|
||||||
<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="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="7" Margin="0,5,0,5" IsChecked="{Binding Config.AllowDiscordStop}" Content="{DynamicResource ServerSettings_AllowDiscordStopLabel}" HorizontalAlignment="Left" ToolTip="{DynamicResource GlobalSettings_DiscordBotAllowStopTooltip}"/>
|
||||||
|
|
||||||
<GroupBox Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" MinHeight="200">
|
<GroupBox Grid.Row="5" Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" MinHeight="200" IsEnabled="{Binding Config.DiscordBotAllowAllBots, Converter={StaticResource InvertBooleanConverter}}">
|
||||||
<GroupBox.Header>
|
<GroupBox.Header>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
|
<Label Content="{DynamicResource GlobalSettings_DiscordBotWhitelistLabel}"/>
|
||||||
|
|
@ -625,6 +627,8 @@
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
</GroupBox>
|
</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}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,9 @@ namespace ServerManagerTool.Utils
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var mapName = _globalizer.GetResourceString($"Map_{info.Map}") ?? info.Map;
|
var mapName = _globalizer.GetResourceString($"Map_{info.Map}") ?? info.Map;
|
||||||
response.Add($"```{info.Name}\n{_globalizer.GetResourceString("DiscordBot_MapLabel")} {mapName}\n{_globalizer.GetResourceString("ServerSettings_PlayersLabel")} {info.Players} / {info.MaxPlayers}```");
|
response.Add($"```{info.Name}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("DiscordBot_MapLabel")} {mapName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_PlayersLabel")} {info.Players} / {info.MaxPlayers}```");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -193,7 +195,10 @@ namespace ServerManagerTool.Utils
|
||||||
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
||||||
foreach (var server in serverList)
|
foreach (var server in serverList)
|
||||||
{
|
{
|
||||||
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}```");
|
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n" +
|
||||||
|
(string.IsNullOrWhiteSpace(server.Profile.DiscordAlias) ? "" : $"{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n") +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}```");
|
||||||
}
|
}
|
||||||
}).Wait();
|
}).Wait();
|
||||||
|
|
||||||
|
|
@ -212,7 +217,12 @@ namespace ServerManagerTool.Utils
|
||||||
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
response.Add($"**{_globalizer.GetResourceString("DiscordBot_CountLabel")}** {serverList.Count()}");
|
||||||
foreach (var server in serverList)
|
foreach (var server in serverList)
|
||||||
{
|
{
|
||||||
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}\n{_globalizer.GetResourceString("ServerSettings_StatusLabel")} {server.Runtime.StatusString}\n{_globalizer.GetResourceString("ServerSettings_AvailabilityLabel")} {_globalizer.GetResourceString($"ServerSettings_Availability_{server.Runtime.Availability}")}```");
|
response.Add($"```{_globalizer.GetResourceString("ServerSettings_ProfileLabel")} {server.Profile.ProfileName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ProfileIdLabel")} {server.Profile.ProfileID}\n" +
|
||||||
|
(string.IsNullOrWhiteSpace(server.Profile.DiscordAlias) ? "" : $"{_globalizer.GetResourceString("ServerSettings_DiscordAliasLabel")} {server.Profile.DiscordAlias}\n") +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_ServerNameLabel")} {server.Profile.ServerName}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_StatusLabel")} {server.Runtime.StatusString}\n" +
|
||||||
|
$"{_globalizer.GetResourceString("ServerSettings_AvailabilityLabel")} {_globalizer.GetResourceString($"ServerSettings_Availability_{server.Runtime.Availability}")}```");
|
||||||
}
|
}
|
||||||
}).Wait();
|
}).Wait();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,16 +19,17 @@
|
||||||
<u style="font-size: .9em;">NEW</u>
|
<u style="font-size: .9em;">NEW</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
||||||
<li>Global Settings - Discord Bot section - Added a log level droplist.</li>
|
<li>Global Settings - Discord Bot section - Added a log level droplist.</li>
|
||||||
|
<li>Global Settings - Discord Bot section - Added a checkbox to allow all bots.</li>
|
||||||
<li>Global Settings - Discord Bot section - Added a whitelist to allow bots to send commands to the server manager.</li>
|
<li>Global Settings - Discord Bot section - Added a whitelist to allow bots to send commands to the server manager.</li>
|
||||||
<li>Server Settings - Discord Bot section - Added an alias that can be used with the discord command instead of the profile id.</li>
|
<li>Server Settings - Discord Bot section - Added an alias that can be used with the discord command instead of the profile id.</li>
|
||||||
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<u style="font-size: .9em;">CHANGE</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Made changes to the code to help improve performance.</li>
|
<li>Made changes to the code to help improve performance.</li>
|
||||||
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change the existing functionality, but you can now change it.</li>
|
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change to existing functionality, but you can now change it.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
<li>Main Window - Added Discord Bot Status and a button to Stop/Start the discord bot.</li>
|
||||||
|
<li>Global Settings - Discord Bot section - Added a checkbox to allow all bots.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -116,7 +117,7 @@
|
||||||
<u style="font-size: .9em;">CHANGE</u>
|
<u style="font-size: .9em;">CHANGE</u>
|
||||||
<br/>
|
<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change the existing functionality, but you can now change it.</li>
|
<li>Removed the mandatory requirement to enter the '!' after the discord prefix. The '!' has been added to the existing prefix so no change to existing functionality, but you can now change it.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,6 @@ namespace ServerManagerTool.DiscordBot.Interfaces
|
||||||
{
|
{
|
||||||
CancellationToken Token { get; }
|
CancellationToken Token { get; }
|
||||||
|
|
||||||
Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token);
|
Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, bool allowAllBots, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
namespace ServerManagerTool.DiscordBot.Models
|
namespace ServerManagerTool.DiscordBot.Models
|
||||||
{
|
{
|
||||||
public class DiscordBotWhitelistConfig
|
public class DiscordBotConfig
|
||||||
{
|
{
|
||||||
|
public bool AllowAllBots { get; set; } = false;
|
||||||
|
|
||||||
public List<DiscordBotWhitelist> DiscordBotWhitelists { get; set; } = new List<DiscordBotWhitelist>();
|
public List<DiscordBotWhitelist> DiscordBotWhitelists { get; set; } = new List<DiscordBotWhitelist>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -28,7 +28,7 @@ namespace ServerManagerTool.DiscordBot
|
||||||
public CancellationToken Token { get; private set; }
|
public CancellationToken Token { get; private set; }
|
||||||
public bool Started { get; private set; }
|
public bool Started { get; private set; }
|
||||||
|
|
||||||
public async Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token)
|
public async Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, bool allowAllBots, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(commandPrefix) || string.IsNullOrWhiteSpace(discordToken) || handleTranslationCallback is null || handleCommandCallback is null)
|
if (string.IsNullOrWhiteSpace(commandPrefix) || string.IsNullOrWhiteSpace(discordToken) || handleTranslationCallback is null || handleCommandCallback is null)
|
||||||
{
|
{
|
||||||
|
|
@ -74,9 +74,10 @@ namespace ServerManagerTool.DiscordBot
|
||||||
LogLevel = LogLevelHelper.GetLogSeverity(logLevel),
|
LogLevel = LogLevelHelper.GetLogSeverity(logLevel),
|
||||||
};
|
};
|
||||||
|
|
||||||
var discordBotWhitelistConfig = new DiscordBotWhitelistConfig
|
var discordBotConfig = new DiscordBotConfig
|
||||||
{
|
{
|
||||||
DiscordBotWhitelists = new List<DiscordBotWhitelist> ( botWhitelist.Select(i => new DiscordBotWhitelist { BotId = i }) )
|
AllowAllBots = allowAllBots,
|
||||||
|
DiscordBotWhitelists = new List<DiscordBotWhitelist> ( botWhitelist.Select(i => new DiscordBotWhitelist { BotId = i }) ),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Build the service provider
|
// Build the service provider
|
||||||
|
|
@ -93,7 +94,7 @@ namespace ServerManagerTool.DiscordBot
|
||||||
.AddSingleton<ShutdownService>()
|
.AddSingleton<ShutdownService>()
|
||||||
.AddSingleton<Random>()
|
.AddSingleton<Random>()
|
||||||
.AddSingleton(config)
|
.AddSingleton(config)
|
||||||
.AddSingleton(discordBotWhitelistConfig)
|
.AddSingleton(discordBotConfig)
|
||||||
.AddSingleton(handleCommandCallback)
|
.AddSingleton(handleCommandCallback)
|
||||||
.AddSingleton(handleTranslationCallback)
|
.AddSingleton(handleTranslationCallback)
|
||||||
.AddSingleton<IServerManagerBot>(this);
|
.AddSingleton<IServerManagerBot>(this);
|
||||||
|
|
|
||||||
|
|
@ -17,53 +17,65 @@ namespace ServerManagerTool.DiscordBot.Services
|
||||||
private readonly LoggingService _logger;
|
private readonly LoggingService _logger;
|
||||||
private readonly IConfigurationRoot _config;
|
private readonly IConfigurationRoot _config;
|
||||||
private readonly IServiceProvider _provider;
|
private readonly IServiceProvider _provider;
|
||||||
private readonly DiscordBotWhitelistConfig _botWhitelist;
|
private readonly DiscordBotConfig _botConfig;
|
||||||
|
|
||||||
public CommandHandlerService(DiscordSocketClient discord, CommandService commands, LoggingService logger, IConfigurationRoot config, IServiceProvider provider, DiscordBotWhitelistConfig botWhitelist)
|
public CommandHandlerService(DiscordSocketClient discord, CommandService commands, LoggingService logger, IConfigurationRoot config, IServiceProvider provider, DiscordBotConfig botConfig)
|
||||||
{
|
{
|
||||||
_discord = discord;
|
_discord = discord;
|
||||||
_commands = commands;
|
_commands = commands;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_config = config;
|
_config = config;
|
||||||
_provider = provider;
|
_provider = provider;
|
||||||
_botWhitelist = botWhitelist ?? new DiscordBotWhitelistConfig();
|
_botConfig = botConfig ?? new DiscordBotConfig();
|
||||||
_discord.MessageReceived += OnMessageReceivedAsync;
|
_discord.MessageReceived += OnMessageReceivedAsync;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task OnMessageReceivedAsync(SocketMessage s)
|
private async Task OnMessageReceivedAsync(SocketMessage s)
|
||||||
{
|
{
|
||||||
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
{
|
|
||||||
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Intercepted the following message from {s.Author.Username} ({s.Author.Id}) - {s.Content}"));
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Intercepted the following message from {s.Author.Username} ({s.Author.Id}) - {s.Content}"));
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure the message is from a user/bot
|
// Ensure the message is a valid user socket message
|
||||||
if (!(s is SocketUserMessage msg))
|
if (!(s is SocketUserMessage msg))
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Ignore self when checking commands
|
// Ignore self
|
||||||
if (msg.Author == _discord.CurrentUser)
|
if (msg.Author.Id == _discord.CurrentUser.Id)
|
||||||
{
|
{
|
||||||
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Message has come from this bot, message will be ignored."));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if the author is a bot
|
// check if the author is a bot
|
||||||
if (msg.Author.IsBot)
|
if (msg.Author.IsBot)
|
||||||
{
|
if (_botConfig.AllowAllBots)
|
||||||
// check if bot is on the whitelist
|
|
||||||
if (!_botWhitelist.DiscordBotWhitelists.Any(b => b.BotId.Equals(msg.Author.Id.ToString())))
|
|
||||||
{
|
{
|
||||||
// Tell bot to ignore
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
return;
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Message has come from another bot, allow all bots enabled."));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Message has come from another bot, checking if bot is in the whitelist."));
|
||||||
|
|
||||||
|
if (!_botConfig.DiscordBotWhitelists.Any(b => b.BotId.Equals(msg.Author.Id.ToString())))
|
||||||
|
{
|
||||||
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Message has come from another bot, bot is not in the whitelist, message will be ignored."));
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the message has a valid command prefix
|
// Check if the message has a valid command prefix
|
||||||
var argPos = 0;
|
var argPos = 0;
|
||||||
if (msg.HasStringPrefix(_config["DiscordSettings:Prefix"], ref argPos) || msg.HasMentionPrefix(_discord.CurrentUser, ref argPos))
|
if (msg.HasStringPrefix(_config["DiscordSettings:Prefix"], ref argPos) || msg.HasMentionPrefix(_discord.CurrentUser, ref argPos))
|
||||||
{
|
{
|
||||||
|
if (LogLevel.Debug.ToString().Equals(_config["DiscordSettings:LogLevel"]))
|
||||||
|
await _logger?.OnLogAsync(new LogMessage(LogSeverity.Debug, MessageSource.System.ToString(), $"Message prefix matched, message will be processed."));
|
||||||
|
|
||||||
// Create the command context
|
// Create the command context
|
||||||
var context = new SocketCommandContext(_discord, msg);
|
var context = new SocketCommandContext(_discord, msg);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue