Added .dmmod and .dmcmd to disable modules and commands in bot DMs
This commit is contained in:
parent
4a723b7c1c
commit
dc9ec2dafe
7 changed files with 103 additions and 10 deletions
|
@ -73,5 +73,38 @@ public partial class Permissions
|
||||||
|
|
||||||
await Response().Confirm(strs.gcmd_remove(Format.Bold(cmd.Name))).SendAsync();
|
await Response().Confirm(strs.gcmd_remove(Format.Bold(cmd.Name))).SendAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Cmd]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task DmModule(ModuleOrExpr module)
|
||||||
|
{
|
||||||
|
var moduleName = module.Name.ToLowerInvariant();
|
||||||
|
|
||||||
|
var added = _service.ToggleModule(moduleName, true);
|
||||||
|
|
||||||
|
if (added)
|
||||||
|
{
|
||||||
|
await Response().Confirm(strs.dmmod_add(Format.Bold(module.Name))).SendAsync();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await Response().Confirm(strs.dmmod_remove(Format.Bold(module.Name))).SendAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Cmd]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task DmCommand(CommandOrExprInfo cmd)
|
||||||
|
{
|
||||||
|
var commandName = cmd.Name.ToLowerInvariant();
|
||||||
|
var added = _service.ToggleCommand(commandName, true);
|
||||||
|
|
||||||
|
if (added)
|
||||||
|
{
|
||||||
|
await Response().Confirm(strs.dmcmd_add(Format.Bold(cmd.Name))).SendAsync();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await Response().Confirm(strs.dmcmd_remove(Format.Bold(cmd.Name))).SendAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,11 +24,20 @@ public class GlobalPermissionService : IExecPreCommand, IEService
|
||||||
var settings = _bss.Data;
|
var settings = _bss.Data;
|
||||||
var commandName = command.Name.ToLowerInvariant();
|
var commandName = command.Name.ToLowerInvariant();
|
||||||
|
|
||||||
if (commandName != "resetglobalperms"
|
if (commandName != "resetglobalperms")
|
||||||
&& (settings.Blocked.Commands.Contains(commandName)
|
{
|
||||||
|| settings.Blocked.Modules.Contains(moduleName.ToLowerInvariant())))
|
if (settings.Blocked.Commands.Contains(commandName)
|
||||||
|
|| settings.Blocked.Modules.Contains(moduleName.ToLowerInvariant()))
|
||||||
return Task.FromResult(true);
|
return Task.FromResult(true);
|
||||||
|
|
||||||
|
if (ctx.Guild is null)
|
||||||
|
{
|
||||||
|
if (settings.DmBlocked.Commands.Contains(commandName)
|
||||||
|
|| settings.DmBlocked.Modules.Contains(moduleName.ToLowerInvariant()))
|
||||||
|
return Task.FromResult(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(false);
|
return Task.FromResult(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,13 +46,30 @@ public class GlobalPermissionService : IExecPreCommand, IEService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="moduleName">Lowercase module name</param>
|
/// <param name="moduleName">Lowercase module name</param>
|
||||||
/// <returns>Whether the module is added</returns>
|
/// <returns>Whether the module is added</returns>
|
||||||
public bool ToggleModule(string moduleName)
|
public bool ToggleModule(string moduleName, bool priv = false)
|
||||||
{
|
{
|
||||||
var added = false;
|
var added = false;
|
||||||
_bss.ModifyConfig(bs =>
|
_bss.ModifyConfig(bs =>
|
||||||
{
|
{
|
||||||
if (bs.Blocked.Modules.Add(moduleName))
|
if (priv)
|
||||||
|
{
|
||||||
|
if (bs.DmBlocked.Modules.Add(moduleName))
|
||||||
|
{
|
||||||
added = true;
|
added = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bs.DmBlocked.Modules.Remove(moduleName);
|
||||||
|
added = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bs.Blocked.Modules.Add(moduleName))
|
||||||
|
{
|
||||||
|
added = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bs.Blocked.Modules.Remove(moduleName);
|
bs.Blocked.Modules.Remove(moduleName);
|
||||||
|
@ -59,13 +85,30 @@ public class GlobalPermissionService : IExecPreCommand, IEService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="commandName">Lowercase command name</param>
|
/// <param name="commandName">Lowercase command name</param>
|
||||||
/// <returns>Whether the command is added</returns>
|
/// <returns>Whether the command is added</returns>
|
||||||
public bool ToggleCommand(string commandName)
|
public bool ToggleCommand(string commandName, bool priv = false)
|
||||||
{
|
{
|
||||||
var added = false;
|
var added = false;
|
||||||
_bss.ModifyConfig(bs =>
|
_bss.ModifyConfig(bs =>
|
||||||
|
{
|
||||||
|
if (priv)
|
||||||
{
|
{
|
||||||
if (bs.Blocked.Commands.Add(commandName))
|
if (bs.Blocked.Commands.Add(commandName))
|
||||||
|
{
|
||||||
added = true;
|
added = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bs.Blocked.Commands.Remove(commandName);
|
||||||
|
added = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bs.Blocked.Commands.Add(commandName))
|
||||||
|
{
|
||||||
|
added = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bs.Blocked.Commands.Remove(commandName);
|
bs.Blocked.Commands.Remove(commandName);
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace EllieBot.Common.Configs;
|
||||||
public sealed partial class BotConfig : ICloneable<BotConfig>
|
public sealed partial class BotConfig : ICloneable<BotConfig>
|
||||||
{
|
{
|
||||||
[Comment("""DO NOT CHANGE""")]
|
[Comment("""DO NOT CHANGE""")]
|
||||||
public int Version { get; set; } = 8;
|
public int Version { get; set; } = 9;
|
||||||
|
|
||||||
[Comment("""
|
[Comment("""
|
||||||
Most commands, when executed, have a small colored line
|
Most commands, when executed, have a small colored line
|
||||||
|
@ -81,6 +81,9 @@ public sealed partial class BotConfig : ICloneable<BotConfig>
|
||||||
[Comment("""List of modules and commands completely blocked on the bot""")]
|
[Comment("""List of modules and commands completely blocked on the bot""")]
|
||||||
public BlockedConfig Blocked { get; set; }
|
public BlockedConfig Blocked { get; set; }
|
||||||
|
|
||||||
|
[Comment("""List of modules and commands blocked from usage in DMs on the bot""")]
|
||||||
|
public BlockedConfig DmBlocked { get; set; } = new();
|
||||||
|
|
||||||
[Comment("""Which string will be used to recognize the commands""")]
|
[Comment("""Which string will be used to recognize the commands""")]
|
||||||
public string Prefix { get; set; }
|
public string Prefix { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -70,10 +70,10 @@ public sealed class BotConfigService : ConfigServiceBase<BotConfig>
|
||||||
c.IgnoreOtherBots = true;
|
c.IgnoreOtherBots = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
if(data.Version < 8)
|
if(data.Version < 9)
|
||||||
ModifyConfig(c =>
|
ModifyConfig(c =>
|
||||||
{
|
{
|
||||||
c.Version = 8;
|
c.Version = 9;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1039,6 +1039,12 @@ gamevoicechannel:
|
||||||
- gvc
|
- gvc
|
||||||
shoplistadd:
|
shoplistadd:
|
||||||
- shoplistadd
|
- shoplistadd
|
||||||
|
dmcommand:
|
||||||
|
- dmcommand
|
||||||
|
- dmcmd
|
||||||
|
dmmodule:
|
||||||
|
- dmmodule
|
||||||
|
- dmmod
|
||||||
globalcommand:
|
globalcommand:
|
||||||
- globalcommand
|
- globalcommand
|
||||||
- gcmd
|
- gcmd
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT CHANGE
|
# DO NOT CHANGE
|
||||||
version: 8
|
version: 9
|
||||||
# Most commands, when executed, have a small colored line
|
# Most commands, when executed, have a small colored line
|
||||||
# next to the response. The color depends whether the command
|
# next to the response. The color depends whether the command
|
||||||
# is completed, errored or in progress (pending)
|
# is completed, errored or in progress (pending)
|
||||||
|
@ -78,6 +78,10 @@ helpText: |-
|
||||||
blocked:
|
blocked:
|
||||||
commands: []
|
commands: []
|
||||||
modules: []
|
modules: []
|
||||||
|
# List of modules and commands blocked from usage in DMs on the bot
|
||||||
|
dmBlocked:
|
||||||
|
commands: []
|
||||||
|
modules: []
|
||||||
# Which string will be used to recognize the commands
|
# Which string will be used to recognize the commands
|
||||||
prefix: .
|
prefix: .
|
||||||
# Whether the bot will rotate through all specified statuses.
|
# Whether the bot will rotate through all specified statuses.
|
||||||
|
|
|
@ -758,6 +758,10 @@
|
||||||
"gcmd_remove": "Command {0} has been enabled on all servers.",
|
"gcmd_remove": "Command {0} has been enabled on all servers.",
|
||||||
"gmod_add": "Module {0} has been disabled on all servers.",
|
"gmod_add": "Module {0} has been disabled on all servers.",
|
||||||
"gmod_remove": "Module {0} has been enabled on all servers.",
|
"gmod_remove": "Module {0} has been enabled on all servers.",
|
||||||
|
"dmmod_add": "Module {0} has been disabled in bot DMs.",
|
||||||
|
"dmmod_remove": "Module {0} has been enabled in bot DMs.",
|
||||||
|
"dmcmd_add": "Command {0} has been disabled in bot DMs.",
|
||||||
|
"dmcmd_remove": "Command {0} has been enabled in bot DMs.",
|
||||||
"lgp_none": "No blocked commands or modules.",
|
"lgp_none": "No blocked commands or modules.",
|
||||||
"cant_read_or_send": "You can't read from or send messages to that channel.",
|
"cant_read_or_send": "You can't read from or send messages to that channel.",
|
||||||
"quotes_notfound": "No quotes found matching the quote ID specified.",
|
"quotes_notfound": "No quotes found matching the quote ID specified.",
|
||||||
|
|
Loading…
Reference in a new issue