diff --git a/src/Commands/BanCommandGroup.cs b/src/Commands/BanCommandGroup.cs
index 16fccb5..d2c1c76 100644
--- a/src/Commands/BanCommandGroup.cs
+++ b/src/Commands/BanCommandGroup.cs
@@ -8,6 +8,7 @@ using Remora.Commands.Groups;
using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.API.Abstractions.Rest;
using Remora.Discord.API.Objects;
+using Remora.Discord.Commands.Attributes;
using Remora.Discord.Commands.Conditions;
using Remora.Discord.Commands.Contexts;
using Remora.Discord.Commands.Feedback.Services;
@@ -58,6 +59,8 @@ public class BanCommandGroup : CommandGroup {
///
///
[Command("ban", "бан")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.BanMembers)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.BanMembers)]
[RequireBotDiscordPermissions(DiscordPermission.BanMembers)]
@@ -196,6 +199,8 @@ public class BanCommandGroup : CommandGroup {
///
///
[Command("unban")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.BanMembers)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.BanMembers)]
[RequireBotDiscordPermissions(DiscordPermission.BanMembers)]
diff --git a/src/Commands/ClearCommandGroup.cs b/src/Commands/ClearCommandGroup.cs
index 21d6119..ede4d0b 100644
--- a/src/Commands/ClearCommandGroup.cs
+++ b/src/Commands/ClearCommandGroup.cs
@@ -48,6 +48,8 @@ public class ClearCommandGroup : CommandGroup {
/// were cleared and vice-versa.
///
[Command("clear", "очистить")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.ManageMessages)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.ManageMessages)]
[RequireBotDiscordPermissions(DiscordPermission.ManageMessages)]
diff --git a/src/Commands/KickCommandGroup.cs b/src/Commands/KickCommandGroup.cs
index 9fb7b4c..5809677 100644
--- a/src/Commands/KickCommandGroup.cs
+++ b/src/Commands/KickCommandGroup.cs
@@ -7,6 +7,7 @@ using Remora.Commands.Groups;
using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.API.Abstractions.Rest;
using Remora.Discord.API.Objects;
+using Remora.Discord.Commands.Attributes;
using Remora.Discord.Commands.Conditions;
using Remora.Discord.Commands.Contexts;
using Remora.Discord.Commands.Feedback.Services;
@@ -54,6 +55,8 @@ public class KickCommandGroup : CommandGroup {
/// was kicked and vice-versa.
///
[Command("kick", "кик")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.KickMembers)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.KickMembers)]
[RequireBotDiscordPermissions(DiscordPermission.KickMembers)]
diff --git a/src/Commands/MuteCommandGroup.cs b/src/Commands/MuteCommandGroup.cs
index 9dbfcbd..4338d09 100644
--- a/src/Commands/MuteCommandGroup.cs
+++ b/src/Commands/MuteCommandGroup.cs
@@ -8,6 +8,7 @@ using Remora.Commands.Groups;
using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.API.Abstractions.Rest;
using Remora.Discord.API.Objects;
+using Remora.Discord.Commands.Attributes;
using Remora.Discord.Commands.Conditions;
using Remora.Discord.Commands.Contexts;
using Remora.Discord.Commands.Feedback.Services;
@@ -58,6 +59,8 @@ public class MuteCommandGroup : CommandGroup {
///
///
[Command("mute", "мут")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.ModerateMembers)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.ModerateMembers)]
[RequireBotDiscordPermissions(DiscordPermission.ModerateMembers)]
@@ -172,6 +175,8 @@ public class MuteCommandGroup : CommandGroup {
///
///
[Command("unmute", "размут")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.ModerateMembers)]
+ [DiscordDefaultDMPermission(false)]
[RequireContext(ChannelContext.Guild)]
[RequireDiscordPermission(DiscordPermission.ModerateMembers)]
[RequireBotDiscordPermissions(DiscordPermission.ModerateMembers)]
diff --git a/src/Commands/RemindCommandGroup.cs b/src/Commands/RemindCommandGroup.cs
index 28e5bf8..7203fbd 100644
--- a/src/Commands/RemindCommandGroup.cs
+++ b/src/Commands/RemindCommandGroup.cs
@@ -5,6 +5,7 @@ using JetBrains.Annotations;
using Remora.Commands.Attributes;
using Remora.Commands.Groups;
using Remora.Discord.API.Abstractions.Rest;
+using Remora.Discord.Commands.Attributes;
using Remora.Discord.Commands.Contexts;
using Remora.Discord.Commands.Feedback.Services;
using Remora.Discord.Extensions.Embeds;
@@ -39,6 +40,7 @@ public class RemindCommandGroup : CommandGroup {
/// The text of the reminder.
/// A feedback sending result which may or may not have succeeded.
[Command("remind")]
+ [DiscordDefaultDMPermission(false)]
[Description("Create a reminder")]
[UsedImplicitly]
public async Task AddReminderAsync(
diff --git a/src/Commands/SettingsCommandGroup.cs b/src/Commands/SettingsCommandGroup.cs
index 9deb0c6..1722b64 100644
--- a/src/Commands/SettingsCommandGroup.cs
+++ b/src/Commands/SettingsCommandGroup.cs
@@ -6,7 +6,10 @@ using Boyfriend.Services;
using JetBrains.Annotations;
using Remora.Commands.Attributes;
using Remora.Commands.Groups;
+using Remora.Discord.API.Abstractions.Objects;
using Remora.Discord.API.Abstractions.Rest;
+using Remora.Discord.Commands.Attributes;
+using Remora.Discord.Commands.Conditions;
using Remora.Discord.Commands.Contexts;
using Remora.Discord.Commands.Feedback.Services;
using Remora.Discord.Extensions.Embeds;
@@ -57,6 +60,10 @@ public class SettingsCommandGroup : CommandGroup {
/// A feedback sending result which may or may not have succeeded.
///
[Command("settingslist")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.ManageGuild)]
+ [DiscordDefaultDMPermission(false)]
+ [RequireContext(ChannelContext.Guild)]
+ [RequireDiscordPermission(DiscordPermission.ManageGuild)]
[Description("Shows settings list for this server")]
[UsedImplicitly]
public async Task ListSettingsAsync() {
@@ -95,6 +102,10 @@ public class SettingsCommandGroup : CommandGroup {
/// The new value of the setting.
/// A feedback sending result which may or may not have succeeded.
[Command("settings")]
+ [DiscordDefaultMemberPermissions(DiscordPermission.ManageGuild)]
+ [DiscordDefaultDMPermission(false)]
+ [RequireContext(ChannelContext.Guild)]
+ [RequireDiscordPermission(DiscordPermission.ManageGuild)]
[Description("Change settings for this server")]
[UsedImplicitly]
public async Task EditSettingsAsync(