mirror of
https://github.com/NoiTheCat/BirthdayBot.git
synced 2024-11-21 21:54:36 +00:00
Check against configuring 'everyone' role
This commit is contained in:
parent
586c11d540
commit
aebc63358d
2 changed files with 16 additions and 1 deletions
|
@ -122,13 +122,21 @@ public class ConfigModule : BotModuleBase {
|
||||||
[Group("role", HelpPfxModOnly + HelpCmdRole)]
|
[Group("role", HelpPfxModOnly + HelpCmdRole)]
|
||||||
public class SubCmdsConfigRole : BotModuleBase {
|
public class SubCmdsConfigRole : BotModuleBase {
|
||||||
[SlashCommand("set-birthday-role", HelpPfxModOnly + "Set the role given to users having a birthday.")]
|
[SlashCommand("set-birthday-role", HelpPfxModOnly + "Set the role given to users having a birthday.")]
|
||||||
public async Task CmdSetBRole([Summary(description: HelpOptRole)] SocketRole role) {
|
public async Task CmdSetBRole([Summary(description: HelpOptRole)]SocketRole role) {
|
||||||
|
if (role.IsEveryone || role.IsManaged) {
|
||||||
|
await RespondAsync(":x: This role cannot be used for this setting.", ephemeral: true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
await DoDatabaseUpdate(Context, s => s.RoleId = (long)role.Id);
|
await DoDatabaseUpdate(Context, s => s.RoleId = (long)role.Id);
|
||||||
await RespondAsync($":white_check_mark: The birthday role has been set to **{role.Name}**.").ConfigureAwait(false);
|
await RespondAsync($":white_check_mark: The birthday role has been set to **{role.Name}**.").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[SlashCommand("set-moderator-role", HelpPfxModOnly + "Designate a role whose members can configure the bot." + HelpPofxBlankUnset)]
|
[SlashCommand("set-moderator-role", HelpPfxModOnly + "Designate a role whose members can configure the bot." + HelpPofxBlankUnset)]
|
||||||
public async Task CmdSetModRole([Summary(description: HelpOptRole)]SocketRole? role = null) {
|
public async Task CmdSetModRole([Summary(description: HelpOptRole)]SocketRole? role = null) {
|
||||||
|
if (role != null && (role.IsEveryone || role.IsManaged)) {
|
||||||
|
await RespondAsync(":x: This role cannot be used for this setting.", ephemeral: true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
await DoDatabaseUpdate(Context, s => s.ModeratorRole = (long?)role?.Id);
|
await DoDatabaseUpdate(Context, s => s.ModeratorRole = (long?)role?.Id);
|
||||||
await RespondAsync(":white_check_mark: The moderator role has been " +
|
await RespondAsync(":white_check_mark: The moderator role has been " +
|
||||||
(role == null ? "unset." : $"set to **{role.Name}**."));
|
(role == null ? "unset." : $"set to **{role.Name}**."));
|
||||||
|
|
|
@ -40,6 +40,13 @@ class BirthdayRoleUpdate : BackgroundService {
|
||||||
if (role == null
|
if (role == null
|
||||||
|| !guild.CurrentUser.GuildPermissions.ManageRoles
|
|| !guild.CurrentUser.GuildPermissions.ManageRoles
|
||||||
|| role.Position >= guild.CurrentUser.Hierarchy) continue;
|
|| role.Position >= guild.CurrentUser.Hierarchy) continue;
|
||||||
|
if (role.IsEveryone || role.IsManaged) {
|
||||||
|
// Invalid role was configured. Clear the setting and quit.
|
||||||
|
settings.RoleId = null;
|
||||||
|
db.Update(settings);
|
||||||
|
await db.SaveChangesAsync();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Load up user configs and begin processing birthdays
|
// Load up user configs and begin processing birthdays
|
||||||
await db.Entry(settings).Collection(t => t.UserEntries).LoadAsync(CancellationToken.None);
|
await db.Entry(settings).Collection(t => t.UserEntries).LoadAsync(CancellationToken.None);
|
||||||
|
|
Loading…
Reference in a new issue