From 57f6a37790bfde01c64cc302f2b6952204f1be0f Mon Sep 17 00:00:00 2001 From: Milkshake Date: Sat, 16 Nov 2024 13:37:57 -0500 Subject: [PATCH] Upgrade DSharpPlus to 5.0.0-nightly-02416 + permissions changes (#242) * Upgrade DSharpPlus to 5.0.0-nightly-02416 Includes changes to DiscordPermissions * Remove resolved todo --- Cliptok.csproj | 6 +-- Commands/Bans.cs | 6 +-- Commands/Debug.cs | 4 +- .../AnnouncementInteractions.cs | 2 +- .../InteractionCommands/BanInteractions.cs | 6 +-- .../InteractionCommands/ClearInteractions.cs | 2 +- .../InteractionCommands/ContextCommands.cs | 2 +- .../InteractionCommands/DebugInteractions.cs | 8 +-- .../DehoistInteractions.cs | 4 +- .../LockdownInteractions.cs | 4 +- .../InteractionCommands/MuteInteractions.cs | 4 +- .../NicknameLockInteraction.cs | 2 +- .../RaidmodeInteractions.cs | 2 +- .../InteractionCommands/RoleInteractions.cs | 2 +- .../SecurityActionInteractions.cs | 4 +- .../SlowmodeInteractions.cs | 2 +- .../InteractionCommands/StatusInteractions.cs | 2 +- .../TrackingInteractions.cs | 2 +- .../UserNoteInteractions.cs | 2 +- .../WarningInteractions.cs | 10 ++-- Commands/Kick.cs | 2 +- Commands/Lockdown.cs | 4 +- Events/VoiceEvents.cs | 10 ++-- Helpers/LockdownHelpers.cs | 50 +++++++++---------- 24 files changed, 71 insertions(+), 71 deletions(-) diff --git a/Cliptok.csproj b/Cliptok.csproj index 1ecafdd9..690a495d 100644 --- a/Cliptok.csproj +++ b/Cliptok.csproj @@ -13,9 +13,9 @@ - - - + + + diff --git a/Commands/Bans.cs b/Commands/Bans.cs index 4bc5e5c0..d75847c5 100644 --- a/Commands/Bans.cs +++ b/Commands/Bans.cs @@ -43,7 +43,7 @@ public async Task MassBanCmd(CommandContext ctx, [RemainingText] string input) [Command("ban")] [Aliases("tempban", "bonk", "isekaitruck")] [Description("Bans a user that you have permission to ban, deleting all their messages in the process. See also: bankeep.")] - [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(DiscordPermissions.BanMembers)] + [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(permissions: DiscordPermission.BanMembers)] public async Task BanCmd(CommandContext ctx, [Description("The user you wish to ban. Accepts many formats")] DiscordUser targetMember, [RemainingText, Description("The time and reason for the ban. e.g. '14d trolling' NOTE: Add 'appeal' to the start of the reason to include an appeal link")] string timeAndReason = "No reason specified.") @@ -134,7 +134,7 @@ public async Task BanCmd(CommandContext ctx, /// Sue me, I beg you. [Command("bankeep")] [Aliases("bansave")] - [Description("Bans a user but keeps their messages around."), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(DiscordPermissions.BanMembers)] + [Description("Bans a user but keeps their messages around."), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(permissions: DiscordPermission.BanMembers)] public async Task BankeepCmd(CommandContext ctx, [Description("The user you wish to ban. Accepts many formats")] DiscordUser targetMember, [RemainingText, Description("The time and reason for the ban. e.g. '14d trolling' NOTE: Add 'appeal' to the start of the reason to include an appeal link")] string timeAndReason = "No reason specified.") @@ -216,7 +216,7 @@ public async Task BankeepCmd(CommandContext ctx, [Command("unban")] [Description("Unbans a user who has been previously banned.")] - [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(DiscordPermissions.BanMembers)] + [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequirePermissions(permissions: DiscordPermission.BanMembers)] public async Task UnbanCmd(CommandContext ctx, [Description("The user to unban, usually a mention or ID")] DiscordUser targetUser, [Description("Used in audit log only currently")] string reason = "No reason specified.") { if ((await Program.db.HashExistsAsync("bans", targetUser.Id))) diff --git a/Commands/Debug.cs b/Commands/Debug.cs index 4382dc54..2ba2cb35 100644 --- a/Commands/Debug.cs +++ b/Commands/Debug.cs @@ -348,8 +348,8 @@ public async Task Add(CommandContext ctx, [Description("Denied permissions. Use a permission integer. See https://discordlookup.com/permissions-calculator.")] int deniedPermissions) { // Confirm permission overrides before we do anything. - var parsedAllowedPerms = (DiscordPermissions)allowedPermissions; - var parsedDeniedPerms = (DiscordPermissions)deniedPermissions; + var parsedAllowedPerms = (DiscordPermission)allowedPermissions; + var parsedDeniedPerms = (DiscordPermission)deniedPermissions; var confirmButton = new DiscordButtonComponent(DiscordButtonStyle.Success, "debug-overrides-add-confirm-callback", "Yes"); var cancelButton = new DiscordButtonComponent(DiscordButtonStyle.Danger, "debug-overrides-add-cancel-callback", "No"); diff --git a/Commands/InteractionCommands/AnnouncementInteractions.cs b/Commands/InteractionCommands/AnnouncementInteractions.cs index 7f028570..7c97a73c 100644 --- a/Commands/InteractionCommands/AnnouncementInteractions.cs +++ b/Commands/InteractionCommands/AnnouncementInteractions.cs @@ -4,7 +4,7 @@ internal class AnnouncementInteractions : ApplicationCommandModule { [SlashCommand("announcebuild", "Announce a Windows Insider build in the current channel.", defaultPermission: false)] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task AnnounceBuildSlashCommand(InteractionContext ctx, [Choice("Windows 10", 10)] [Choice("Windows 11", 11)] diff --git a/Commands/InteractionCommands/BanInteractions.cs b/Commands/InteractionCommands/BanInteractions.cs index 59250400..dba20b5e 100644 --- a/Commands/InteractionCommands/BanInteractions.cs +++ b/Commands/InteractionCommands/BanInteractions.cs @@ -5,7 +5,7 @@ namespace Cliptok.Commands.InteractionCommands internal class BanInteractions : ApplicationCommandModule { [SlashCommand("ban", "Bans a user from the server, either permanently or temporarily.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.BanMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.BanMembers)] public async Task BanSlashCommand(InteractionContext ctx, [Option("user", "The user to ban")] DiscordUser user, [Option("reason", "The reason the user is being banned")] string reason, @@ -114,7 +114,7 @@ public async Task BanSlashCommand(InteractionContext ctx, } [SlashCommand("unban", "Unbans a user who has been previously banned.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.BanMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.BanMembers)] public async Task SlashUnbanCommand(InteractionContext ctx, [Option("user", "The ID or mention of the user to unban. Ignore the suggestions, IDs work.")] SnowflakeObject userId, [Option("reason", "Used in audit log only currently")] string reason = "No reason specified.") { DiscordUser targetUser = default; @@ -145,7 +145,7 @@ public async Task SlashUnbanCommand(InteractionContext ctx, [Option("user", "The } [SlashCommand("kick", "Kicks a user, removing them from the server until they rejoin.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.KickMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.KickMembers)] public async Task KickCmd(InteractionContext ctx, [Option("user", "The user you want to kick from the server.")] DiscordUser target, [Option("reason", "The reason for kicking this user.")] string reason = "No reason specified.") { if (target.IsBot) diff --git a/Commands/InteractionCommands/ClearInteractions.cs b/Commands/InteractionCommands/ClearInteractions.cs index 1d8c8233..0b3fd150 100644 --- a/Commands/InteractionCommands/ClearInteractions.cs +++ b/Commands/InteractionCommands/ClearInteractions.cs @@ -5,7 +5,7 @@ public class ClearInteractions : ApplicationCommandModule public static Dictionary> MessagesToClear = new(); [SlashCommand("clear", "Delete many messages from the current channel.", defaultPermission: false)] - [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), RequireBotPermissions(DiscordPermissions.ManageMessages), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), RequireBotPermissions(permissions: [DiscordPermission.ManageMessages, DiscordPermission.ModerateMembers])] public async Task ClearSlashCommand(InteractionContext ctx, [Option("count", "The number of messages to consider for deletion. Required if you don't use the 'up_to' argument.")] long count = 0, [Option("up_to", "Optionally delete messages up to (not including) this one. Accepts IDs and links.")] string upTo = "", diff --git a/Commands/InteractionCommands/ContextCommands.cs b/Commands/InteractionCommands/ContextCommands.cs index 19cb4de4..56098517 100644 --- a/Commands/InteractionCommands/ContextCommands.cs +++ b/Commands/InteractionCommands/ContextCommands.cs @@ -20,7 +20,7 @@ public async Task ContextAvatar(ContextMenuContext ctx) } [ContextMenu(DiscordApplicationCommandType.UserContextMenu, "Show Notes", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task ShowNotes(ContextMenuContext ctx) { await ctx.RespondAsync(embed: await UserNoteHelpers.GenerateUserNotesEmbedAsync(ctx.TargetUser), ephemeral: true); diff --git a/Commands/InteractionCommands/DebugInteractions.cs b/Commands/InteractionCommands/DebugInteractions.cs index 64cd5669..fabeac61 100644 --- a/Commands/InteractionCommands/DebugInteractions.cs +++ b/Commands/InteractionCommands/DebugInteractions.cs @@ -6,7 +6,7 @@ internal class DebugInteractions : ApplicationCommandModule { [SlashCommand("scamcheck", "Check if a link or message is known to the anti-phishing API.", defaultPermission: false)] [Description("Check if a link or message is known to the anti-phishing API.")] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task ScamCheck(InteractionContext ctx, [Option("input", "Domain or message content to scan.")] string content) { var urlMatches = Constants.RegexConstants.url_rx.Matches(content); @@ -35,7 +35,7 @@ public async Task ScamCheck(InteractionContext ctx, [Option("input", "Domain or } [SlashCommand("tellraw", "You know what you're here for.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task TellRaw(InteractionContext ctx, [Option("input", "???")] string input, [Option("reply_msg_id", "ID of message to use in a reply context.")] string replyID = "0", [Option("pingreply", "Ping pong.")] bool pingreply = true, [Option("channel", "Either mention or ID. Not a name.")] string discordChannel = default) { DiscordChannel channelObj = default; @@ -97,7 +97,7 @@ public async Task UserInfoSlashCommand(InteractionContext ctx, [Option("user", " [SlashCommand("muteinfo", "Show information about the mute for a user.")] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task MuteInfoSlashCommand( InteractionContext ctx, [Option("user", "The user whose mute information to show.")] DiscordUser targetUser, @@ -108,7 +108,7 @@ public async Task MuteInfoSlashCommand( [SlashCommand("baninfo", "Show information about the ban for a user.")] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task BanInfoSlashCommand( InteractionContext ctx, [Option("user", "The user whose ban information to show.")] DiscordUser targetUser, diff --git a/Commands/InteractionCommands/DehoistInteractions.cs b/Commands/InteractionCommands/DehoistInteractions.cs index fec1389c..69a4efbf 100644 --- a/Commands/InteractionCommands/DehoistInteractions.cs +++ b/Commands/InteractionCommands/DehoistInteractions.cs @@ -3,7 +3,7 @@ internal class DehoistInteractions : ApplicationCommandModule { [SlashCommand("dehoist", "Dehoist a member, dropping them to the bottom of the list. Lasts until they change nickname.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.ManageNicknames)] + [SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.ManageNicknames)] public async Task DehoistSlashCmd(InteractionContext ctx, [Option("member", "The member to dehoist.")] DiscordUser user) { DiscordMember member; @@ -39,7 +39,7 @@ await member.ModifyAsync(a => } [SlashCommandGroup("permadehoist", "Permanently/persistently dehoist members.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ManageNicknames)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ManageNicknames)] public class PermadehoistSlashCommands { [SlashCommand("enable", "Permanently dehoist a member. They will be automatically dehoisted until disabled.")] diff --git a/Commands/InteractionCommands/LockdownInteractions.cs b/Commands/InteractionCommands/LockdownInteractions.cs index cd132bf8..38013ee0 100644 --- a/Commands/InteractionCommands/LockdownInteractions.cs +++ b/Commands/InteractionCommands/LockdownInteractions.cs @@ -5,7 +5,7 @@ class LockdownInteractions : ApplicationCommandModule public static bool ongoingLockdown = false; [SlashCommandGroup("lockdown", "Lock the current channel or all channels in the server, preventing new messages. See also: unlock")] - [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(DiscordPermissions.ManageChannels)] + [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(permissions: DiscordPermission.ManageChannels)] public class LockdownCmds { [SlashCommand("channel", "Lock the current channel. See also: unlock channel")] @@ -103,7 +103,7 @@ public async Task LockdownAllCommand( } [SlashCommandGroup("unlock", "Unlock the current channel or all channels in the server, allowing new messages. See also: lockdown")] - [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(DiscordPermissions.ManageChannels)] + [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(permissions: DiscordPermission.ManageChannels)] public class UnlockCmds { [SlashCommand("channel", "Unlock the current channel. See also: lockdown")] diff --git a/Commands/InteractionCommands/MuteInteractions.cs b/Commands/InteractionCommands/MuteInteractions.cs index c9d95f7b..bc80da64 100644 --- a/Commands/InteractionCommands/MuteInteractions.cs +++ b/Commands/InteractionCommands/MuteInteractions.cs @@ -4,7 +4,7 @@ internal class MuteInteractions : ApplicationCommandModule { [SlashCommand("mute", "Mute a user, temporarily or permanently.")] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task MuteSlashCommand( InteractionContext ctx, [Option("user", "The user you wish to mute.")] DiscordUser targetUser, @@ -50,7 +50,7 @@ public async Task MuteSlashCommand( [SlashCommand("unmute", "Unmute a user.")] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task UnmuteSlashCommand( InteractionContext ctx, [Option("user", "The user you wish to mute.")] DiscordUser targetUser, diff --git a/Commands/InteractionCommands/NicknameLockInteraction.cs b/Commands/InteractionCommands/NicknameLockInteraction.cs index af83509b..913284c2 100644 --- a/Commands/InteractionCommands/NicknameLockInteraction.cs +++ b/Commands/InteractionCommands/NicknameLockInteraction.cs @@ -9,7 +9,7 @@ namespace Cliptok.Commands.InteractionCommands public class NicknameLockInteraction : ApplicationCommandModule { [SlashCommandGroup("nicknamelock", "Prevent a member from changing their nickname.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ManageNicknames)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ManageNicknames)] public class NicknameLockSlashCommands { [SlashCommand("enable", "Prevent a member from changing their nickname.")] diff --git a/Commands/InteractionCommands/RaidmodeInteractions.cs b/Commands/InteractionCommands/RaidmodeInteractions.cs index 6998389d..89763642 100644 --- a/Commands/InteractionCommands/RaidmodeInteractions.cs +++ b/Commands/InteractionCommands/RaidmodeInteractions.cs @@ -4,7 +4,7 @@ internal class RaidmodeInteractions : ApplicationCommandModule { [SlashCommandGroup("raidmode", "Commands relating to Raidmode", defaultPermission: false)] [SlashRequireHomeserverPerm(ServerPermLevel.Moderator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public class RaidmodeSlashCommands : ApplicationCommandModule { [SlashCommand("status", "Check the current state of raidmode.")] diff --git a/Commands/InteractionCommands/RoleInteractions.cs b/Commands/InteractionCommands/RoleInteractions.cs index 0e6a538f..dcec4ebf 100644 --- a/Commands/InteractionCommands/RoleInteractions.cs +++ b/Commands/InteractionCommands/RoleInteractions.cs @@ -3,7 +3,7 @@ internal class RoleInteractions : ApplicationCommandModule { [SlashCommand("grant", "Grant a user Tier 1, bypassing any verification requirements.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task SlashGrant(InteractionContext ctx, [Option("user", "The user to grant Tier 1 to.")] DiscordUser _) { await ctx.RespondAsync($"{Program.cfgjson.Emoji.Error} This command is deprecated and no longer works. Please right click (or tap and hold on mobile) the user and click \"Verify Member\" if available."); diff --git a/Commands/InteractionCommands/SecurityActionInteractions.cs b/Commands/InteractionCommands/SecurityActionInteractions.cs index 93fc18d7..43c2014c 100644 --- a/Commands/InteractionCommands/SecurityActionInteractions.cs +++ b/Commands/InteractionCommands/SecurityActionInteractions.cs @@ -3,7 +3,7 @@ namespace Cliptok.Commands.InteractionCommands public class SecurityActionInteractions : ApplicationCommandModule { [SlashCommand("pausedms", "Temporarily pause DMs between server members.", defaultPermission: false)] - [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task SlashPauseDMs(InteractionContext ctx, [Option("time", "The amount of time to pause DMs for. Cannot be greater than 24 hours.")] string time) { // need to make our own api calls because D#+ can't do this natively? @@ -51,7 +51,7 @@ public async Task SlashPauseDMs(InteractionContext ctx, [Option("time", "The amo } [SlashCommand("unpausedms", "Unpause DMs between server members.", defaultPermission: false)] - [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [HomeServer, SlashRequireHomeserverPerm(ServerPermLevel.Moderator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task SlashUnpauseDMs(InteractionContext ctx) { // need to make our own api calls because D#+ can't do this natively? diff --git a/Commands/InteractionCommands/SlowmodeInteractions.cs b/Commands/InteractionCommands/SlowmodeInteractions.cs index 2d1fa948..0c6c1509 100644 --- a/Commands/InteractionCommands/SlowmodeInteractions.cs +++ b/Commands/InteractionCommands/SlowmodeInteractions.cs @@ -4,7 +4,7 @@ internal class SlowmodeInteractions : ApplicationCommandModule { [SlashCommand("slowmode", "Slow down the channel...", defaultPermission: false)] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task SlowmodeSlashCommand( InteractionContext ctx, [Option("slow_time", "Allowed time between each users messages. 0 for off. A number of seconds or a parseable time.")] string timeToParse, diff --git a/Commands/InteractionCommands/StatusInteractions.cs b/Commands/InteractionCommands/StatusInteractions.cs index c6eb0ca9..40ac949f 100644 --- a/Commands/InteractionCommands/StatusInteractions.cs +++ b/Commands/InteractionCommands/StatusInteractions.cs @@ -4,7 +4,7 @@ internal class StatusInteractions : ApplicationCommandModule { [SlashCommandGroup("status", "Status commands")] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public class StatusSlashCommands { diff --git a/Commands/InteractionCommands/TrackingInteractions.cs b/Commands/InteractionCommands/TrackingInteractions.cs index a2e55d24..5e07c5f6 100644 --- a/Commands/InteractionCommands/TrackingInteractions.cs +++ b/Commands/InteractionCommands/TrackingInteractions.cs @@ -3,7 +3,7 @@ internal class TrackingInteractions : ApplicationCommandModule { [SlashCommandGroup("tracking", "Commands to manage message tracking of users", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public class TrackingSlashCommands { [SlashCommand("add", "Track a users messages.")] diff --git a/Commands/InteractionCommands/UserNoteInteractions.cs b/Commands/InteractionCommands/UserNoteInteractions.cs index 763ebd5b..58bf8627 100644 --- a/Commands/InteractionCommands/UserNoteInteractions.cs +++ b/Commands/InteractionCommands/UserNoteInteractions.cs @@ -5,7 +5,7 @@ namespace Cliptok.Commands.InteractionCommands internal class UserNoteInteractions : ApplicationCommandModule { [SlashCommandGroup("note", "Manage user notes", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public class UserNoteSlashCommands { [SlashCommand("add", "Add a note to a user. Only visible to mods.")] diff --git a/Commands/InteractionCommands/WarningInteractions.cs b/Commands/InteractionCommands/WarningInteractions.cs index 7b16fda5..31e52ca4 100644 --- a/Commands/InteractionCommands/WarningInteractions.cs +++ b/Commands/InteractionCommands/WarningInteractions.cs @@ -6,7 +6,7 @@ internal class WarningInteractions : ApplicationCommandModule { [SlashCommand("warn", "Formally warn a user, usually for breaking the server rules.", defaultPermission: false)] [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task WarnSlashCommand(InteractionContext ctx, [Option("user", "The user to warn.")] DiscordUser user, [Option("reason", "The reason they're being warned.")] string reason, @@ -79,7 +79,7 @@ public async Task WarningsSlashCommand(InteractionContext ctx, [SlashCommand("transfer_warnings", "Transfer warnings from one user to another.", defaultPermission: false)] [SlashRequireHomeserverPerm(ServerPermLevel.Moderator)] - [SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task TransferWarningsSlashCommand(InteractionContext ctx, [Option("source_user", "The user currently holding the warnings.")] DiscordUser sourceUser, [Option("target_user", "The user receiving the warnings.")] DiscordUser targetUser, @@ -178,7 +178,7 @@ public async Task> Provider(AutocompleteC } [SlashCommand("warndetails", "Search for a warning and return its details.", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task WarndetailsSlashCommand(InteractionContext ctx, [Option("user", "The user to fetch a warning for.")] DiscordUser user, [Autocomplete(typeof(WarningsAutocompleteProvider)), Option("warning", "Type to search! Find the warning you want to fetch.")] string warning, @@ -215,7 +215,7 @@ public async Task WarndetailsSlashCommand(InteractionContext ctx, } [SlashCommand("delwarn", "Search for a warning and delete it!", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task DelwarnSlashCommand(InteractionContext ctx, [Option("user", "The user to delete a warning for.")] DiscordUser targetUser, [Autocomplete(typeof(WarningsAutocompleteProvider))][Option("warning", "Type to search! Find the warning you want to delete.")] string warningId, @@ -277,7 +277,7 @@ await LogChannelHelper.LogMessageAsync("mod", } [SlashCommand("editwarn", "Search for a warning and edit it!", defaultPermission: false)] - [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(DiscordPermissions.ModerateMembers)] + [SlashRequireHomeserverPerm(ServerPermLevel.TrialModerator), SlashCommandPermissions(permissions: DiscordPermission.ModerateMembers)] public async Task EditWarnSlashCommand(InteractionContext ctx, [Option("user", "The user to fetch a warning for.")] DiscordUser user, [Autocomplete(typeof(WarningsAutocompleteProvider))][Option("warning", "Type to search! Find the warning you want to edit.")] string warning, diff --git a/Commands/Kick.cs b/Commands/Kick.cs index 2f969519..d18be65b 100644 --- a/Commands/Kick.cs +++ b/Commands/Kick.cs @@ -5,7 +5,7 @@ internal class Kick : BaseCommandModule [Command("kick")] [Aliases("yeet", "shoo", "goaway", "defenestrate")] [Description("Kicks a user, removing them from the server until they rejoin. Generally not very useful.")] - [RequirePermissions(DiscordPermissions.KickMembers), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator)] + [RequirePermissions(permissions: DiscordPermission.KickMembers), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator)] public async Task KickCmd(CommandContext ctx, DiscordUser target, [RemainingText] string reason = "No reason specified.") { if (target.IsBot) diff --git a/Commands/Lockdown.cs b/Commands/Lockdown.cs index c55df3a4..ae175927 100644 --- a/Commands/Lockdown.cs +++ b/Commands/Lockdown.cs @@ -7,7 +7,7 @@ class Lockdown : BaseCommandModule [Command("lockdown")] [Aliases("lock")] [Description("Locks the current channel, preventing any new messages. See also: unlock")] - [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(DiscordPermissions.ManageChannels)] + [HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(permissions: DiscordPermission.ManageChannels)] public async Task LockdownCommand( CommandContext ctx, [RemainingText, Description("The time and reason for the lockdown. For example '3h' or '3h spam'. Default is permanent with no reason.")] string timeAndReason = "" @@ -98,7 +98,7 @@ await thread.ModifyAsync(a => [Command("unlock")] [Description("Unlocks a previously locked channel. See also: lockdown")] - [Aliases("unlockdown"), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(DiscordPermissions.ManageChannels)] + [Aliases("unlockdown"), HomeServer, RequireHomeserverPerm(ServerPermLevel.Moderator), RequireBotPermissions(permissions: DiscordPermission.ManageChannels)] public async Task UnlockCommand(CommandContext ctx, [RemainingText] string reason = "") { var currentChannel = ctx.Channel; diff --git a/Events/VoiceEvents.cs b/Events/VoiceEvents.cs index e366d24d..d030f43c 100644 --- a/Events/VoiceEvents.cs +++ b/Events/VoiceEvents.cs @@ -125,7 +125,7 @@ public static async Task UserJoined(DiscordClient client, VoiceStateUpdatedEvent { if (overwrite.Type == DiscordOverwriteType.Member && overwrite.Id == e.After.Member.Id) { - await e.After.Channel.AddOverwriteAsync(e.After.Member, overwrite.Allowed | DiscordPermissions.SendMessages, overwrite.Denied, "User joined voice channel."); + await e.After.Channel.AddOverwriteAsync(e.After.Member, overwrite.Allowed.Add(DiscordPermission.SendMessages), overwrite.Denied, "User joined voice channel."); userOverrideSet = true; break; } @@ -133,7 +133,7 @@ public static async Task UserJoined(DiscordClient client, VoiceStateUpdatedEvent if (!userOverrideSet) { - await e.After.Channel.AddOverwriteAsync(e.After.Member, DiscordPermissions.SendMessages, DiscordPermissions.None, "User joined voice channel."); + await e.After.Channel.AddOverwriteAsync(e.After.Member, DiscordPermission.SendMessages, DiscordPermissions.None, "User joined voice channel."); } } } @@ -177,7 +177,7 @@ public static async Task UserLeft(DiscordClient client, VoiceStateUpdatedEventAr { if (overwrite.Type == DiscordOverwriteType.Member && overwrite.Id == member.Id) { - if (overwrite.Allowed == DiscordPermissions.SendMessages && overwrite.Denied == DiscordPermissions.None) + if (overwrite.Allowed == DiscordPermission.SendMessages && overwrite.Denied == DiscordPermissions.None) { // User only has allow for Send Messages, so we can delete the entire override await overwrite.DeleteAsync("User left voice channel."); @@ -185,9 +185,9 @@ public static async Task UserLeft(DiscordClient client, VoiceStateUpdatedEventAr else { // User has other overrides set, so we should only remove the Send Messages override - if (overwrite.Allowed.HasPermission(DiscordPermissions.SendMessages)) + if (overwrite.Allowed.HasPermission(DiscordPermission.SendMessages)) { - await e.Before.Channel.AddOverwriteAsync(member, (DiscordPermissions)(overwrite.Allowed - DiscordPermissions.SendMessages), overwrite.Denied, "User left voice channel."); + await e.Before.Channel.AddOverwriteAsync(member, (DiscordPermissions)(overwrite.Allowed - DiscordPermission.SendMessages), overwrite.Denied, "User left voice channel."); } else { diff --git a/Helpers/LockdownHelpers.cs b/Helpers/LockdownHelpers.cs index 9f6b1db8..7add703c 100644 --- a/Helpers/LockdownHelpers.cs +++ b/Helpers/LockdownHelpers.cs @@ -11,8 +11,8 @@ public static async Task LockChannelAsync(DiscordUser user, DiscordChannel DiscordOverwrite[] existingOverwrites = channel.PermissionOverwrites.ToArray(); - await channel.AddOverwriteAsync(channel.Guild.CurrentMember, DiscordPermissions.SendMessages, DiscordPermissions.None, "Failsafe 1 for Lockdown"); - await channel.AddOverwriteAsync(await channel.Guild.GetRoleAsync(Program.cfgjson.ModRole), DiscordPermissions.SendMessages, DiscordPermissions.None, "Failsafe 2 for Lockdown"); + await channel.AddOverwriteAsync(channel.Guild.CurrentMember, DiscordPermission.SendMessages, DiscordPermissions.None, "Failsafe 1 for Lockdown"); + await channel.AddOverwriteAsync(await channel.Guild.GetRoleAsync(Program.cfgjson.ModRole), DiscordPermission.SendMessages, DiscordPermissions.None, "Failsafe 2 for Lockdown"); bool everyoneRoleChanged = false; foreach (DiscordOverwrite overwrite in existingOverwrites) @@ -25,42 +25,42 @@ public static async Task LockChannelAsync(DiscordUser user, DiscordChannel { if (lockThreads) { - if (overwrite.Denied.HasPermission(DiscordPermissions.AccessChannels)) + if (overwrite.Denied.HasPermission(DiscordPermission.ViewChannel)) { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages | DiscordPermissions.AccessChannels | DiscordPermissions.SendMessagesInThreads, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, new([DiscordPermission.SendMessages, DiscordPermission.ViewChannel, DiscordPermission.SendThreadMessages]), $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } else { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages | DiscordPermissions.SendMessagesInThreads, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, new([DiscordPermission.SendMessages, DiscordPermission.SendThreadMessages]), $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } - if (overwrite.Allowed.HasPermission(DiscordPermissions.SendMessages)) + if (overwrite.Allowed.HasPermission(DiscordPermission.SendMessages)) { - await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), (DiscordPermissions)(overwrite.Allowed - DiscordPermissions.SendMessages), DiscordPermissions.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); + await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), (DiscordPermissions)(overwrite.Allowed - DiscordPermission.SendMessages), DiscordPermission.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); } else { - await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), overwrite.Allowed, DiscordPermissions.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); + await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), overwrite.Allowed, DiscordPermission.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); } } else { - if (overwrite.Denied.HasPermission(DiscordPermissions.AccessChannels)) + if (overwrite.Denied.HasPermission(DiscordPermission.ViewChannel)) { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages | DiscordPermissions.AccessChannels, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, new([DiscordPermission.SendMessages, DiscordPermission.ViewChannel]), $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } else { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermission.SendMessages, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } - if (overwrite.Allowed.HasPermission(DiscordPermissions.SendMessages)) + if (overwrite.Allowed.HasPermission(DiscordPermission.SendMessages)) { - await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), (DiscordPermissions)(overwrite.Allowed - DiscordPermissions.SendMessages), DiscordPermissions.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); + await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), (DiscordPermissions)(overwrite.Allowed - DiscordPermission.SendMessages), DiscordPermission.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); } else { - await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), overwrite.Allowed, DiscordPermissions.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); + await channel.AddOverwriteAsync(await overwrite.GetRoleAsync(), overwrite.Allowed, DiscordPermission.SendMessages | overwrite.Denied, "Reinstating existing overrides for lockdown."); } } @@ -70,7 +70,7 @@ public static async Task LockChannelAsync(DiscordUser user, DiscordChannel { if (role == await channel.Guild.GetRoleAsync(Program.cfgjson.ModRole)) { - await channel.AddOverwriteAsync(await channel.Guild.GetRoleAsync(Program.cfgjson.ModRole), overwrite.Allowed | DiscordPermissions.SendMessages, DiscordPermissions.None, "Reinstating existing overrides for lockdown."); + await channel.AddOverwriteAsync(await channel.Guild.GetRoleAsync(Program.cfgjson.ModRole), overwrite.Allowed.Add(DiscordPermission.SendMessages), DiscordPermissions.None, "Reinstating existing overrides for lockdown."); } else { @@ -88,11 +88,11 @@ public static async Task LockChannelAsync(DiscordUser user, DiscordChannel { if (lockThreads) { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages | DiscordPermissions.SendMessagesInThreads, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, new([DiscordPermission.SendMessages, DiscordPermission.SendThreadMessages]), $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } else { - await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermissions.SendMessages, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); + await channel.AddOverwriteAsync(channel.Guild.EveryoneRole, DiscordPermissions.None, DiscordPermission.SendMessages, $"[Lockdown by {DiscordHelpers.UniqueUsername(user)}]: {reason}"); } } @@ -125,15 +125,15 @@ public static async Task UnlockChannel(DiscordChannel discordChannel, Disc DiscordOverwriteBuilder newOverwrite; if ( (role == discordChannel.Guild.EveryoneRole - && permission.Denied.HasPermission(DiscordPermissions.SendMessages)) + && permission.Denied.HasPermission(DiscordPermission.SendMessages)) ) { - if (permission.Denied.HasPermission(DiscordPermissions.SendMessagesInThreads)) + if (permission.Denied.HasPermission(DiscordPermission.SendThreadMessages)) { newOverwrite = new(discordChannel.Guild.EveryoneRole) { Allowed = permission.Allowed, - Denied = permission.Denied - DiscordPermissions.SendMessages - DiscordPermissions.SendMessagesInThreads + Denied = permission.Denied - DiscordPermission.SendMessages - DiscordPermission.SendThreadMessages }; } else @@ -141,7 +141,7 @@ public static async Task UnlockChannel(DiscordChannel discordChannel, Disc newOverwrite = new(discordChannel.Guild.EveryoneRole) { Allowed = permission.Allowed, - Denied = (DiscordPermissions)(permission.Denied - DiscordPermissions.SendMessages) + Denied = (DiscordPermissions)(permission.Denied - DiscordPermission.SendMessages) }; } @@ -153,22 +153,22 @@ public static async Task UnlockChannel(DiscordChannel discordChannel, Disc } if (role == await discordChannel.Guild.GetRoleAsync(Program.cfgjson.ModRole) - && permission.Allowed == DiscordPermissions.SendMessages) + && permission.Allowed == DiscordPermission.SendMessages) { await permission.DeleteAsync(); } if (role == await discordChannel.Guild.GetRoleAsync(Program.cfgjson.ModRole) - && permission.Allowed == (DiscordPermissions.SendMessages | DiscordPermissions.AccessChannels)) + && permission.Allowed == new DiscordPermissions([DiscordPermission.SendMessages, DiscordPermission.ViewChannel])) { - await discordChannel.AddOverwriteAsync(await discordChannel.Guild.GetRoleAsync(Program.cfgjson.ModRole), (DiscordPermissions)(permission.Allowed - DiscordPermissions.SendMessages), DiscordPermissions.None); + await discordChannel.AddOverwriteAsync(await discordChannel.Guild.GetRoleAsync(Program.cfgjson.ModRole), (DiscordPermissions)(permission.Allowed - DiscordPermission.SendMessages), DiscordPermissions.None); } } else { var member = await permission.GetMemberAsync(); - if ((member == discordMember || member == discordChannel.Guild.CurrentMember) && permission.Allowed == DiscordPermissions.SendMessages) + if ((member == discordMember || member == discordChannel.Guild.CurrentMember) && permission.Allowed == DiscordPermission.SendMessages) { success = true; await permission.DeleteAsync();