diff --git a/docs/Commands List.md b/docs/Commands List.md index 715df776..da4d922c 100644 --- a/docs/Commands List.md +++ b/docs/Commands List.md @@ -26,6 +26,7 @@ Commands and aliases | Description | Usage `.removeallroles` `.rar` | Removes all roles from a mentioned user. **Requires ManageRoles server permission.** | `.rar @User` `.createrole` `.cr` | Creates a role with a given name. **Requires ManageRoles server permission.** | `.cr Awesome Role` `.rolecolor` `.rc` | Set a role's color to the hex or 0-255 rgb color value provided. **Requires ManageRoles server permission.** | `.rc Admin 255 200 100` or `.rc Admin ffba55` +`.rolehoist` `.rh` | Set whether the role should be displayed separately in the sidebar **Requires ManageRoles server permission.** | `.rh Guests true` or `.rolehoist "Space Wizards" true` `.deafen` `.deaf` | Deafens mentioned user or users. **Requires DeafenMembers server permission.** | `.deaf "@Someguy"` or `.deaf "@Someguy" "@Someguy"` `.undeafen` `.undef` | Undeafens mentioned user or users. **Requires DeafenMembers server permission.** | `.undef "@Someguy"` or `.undef "@Someguy" "@Someguy"` `.delvoichanl` `.dvch` | Deletes a voice channel with a given name. **Requires ManageChannels server permission.** | `.dvch VoiceChannelName` diff --git a/src/NadekoBot/Modules/Administration/Administration.cs b/src/NadekoBot/Modules/Administration/Administration.cs index 6ecefe10..5b0adfaa 100644 --- a/src/NadekoBot/Modules/Administration/Administration.cs +++ b/src/NadekoBot/Modules/Administration/Administration.cs @@ -196,6 +196,18 @@ namespace NadekoBot.Modules.Administration await ReplyConfirmLocalized("cr", Format.Bold(r.Name)).ConfigureAwait(false); } + [NadekoCommand, Usage, Description, Aliases] + [RequireContext(ContextType.Guild)] + [RequireUserPermission(GuildPermission.ManageRoles)] + [RequireBotPermission(GuildPermission.ManageRoles)] + public async Task RoleHoist(string roleSearchName, bool targetState) + { + var roleName = roleSearchName.ToUpperInvariant(); + var role = Context.Guild.Roles.FirstOrDefault(r => r.Name.ToUpperInvariant() == roleName); + + await role.ModifyAsync(r => r.Hoist = targetState).ConfigureAwait(false); + } + [NadekoCommand, Usage, Description, Aliases] [RequireContext(ContextType.Guild)] [RequireUserPermission(GuildPermission.ManageRoles)] diff --git a/src/NadekoBot/Resources/CommandStrings.Designer.cs b/src/NadekoBot/Resources/CommandStrings.Designer.cs index d021e161..ef52ebd4 100644 --- a/src/NadekoBot/Resources/CommandStrings.Designer.cs +++ b/src/NadekoBot/Resources/CommandStrings.Designer.cs @@ -6593,6 +6593,33 @@ namespace NadekoBot.Resources { } } + /// + /// Looks up a localized string similar to rolehoist rh. + /// + public static string rolehoist_cmd { + get { + return ResourceManager.GetString("rolehoist_cmd", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggles if this role is displayed in the sidebar or not. + /// + public static string rolehoist_desc { + get { + return ResourceManager.GetString("rolehoist_desc", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to `{0}rh Guests true` or `{0}rh "Space Wizards" true. + /// + public static string rolehoist_usage { + get { + return ResourceManager.GetString("rolehoist_usage", resourceCulture); + } + } + /// /// Looks up a localized string similar to rolemdl rm. /// diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx index 1a943af1..859f0043 100644 --- a/src/NadekoBot/Resources/CommandStrings.resx +++ b/src/NadekoBot/Resources/CommandStrings.resx @@ -3366,4 +3366,13 @@ `{0}time London, UK` + + rolehoist rh + + + Toggles if this role is displayed in the sidebar or not + + + `{0}rh Guests true` or `{0}rh "Space Wizards" true + \ No newline at end of file