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..fffac1f7 100644
--- a/src/NadekoBot/Modules/Administration/Administration.cs
+++ b/src/NadekoBot/Modules/Administration/Administration.cs
@@ -12,6 +12,7 @@ using NadekoBot.Services.Database.Models;
using static NadekoBot.Modules.Permissions.Permissions;
using System.Collections.Concurrent;
using NLog;
+using NadekoBot.Modules.Permissions;
namespace NadekoBot.Modules.Administration
{
@@ -196,6 +197,19 @@ 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, PermissionAction targetState)
+ {
+ var roleName = roleSearchName.ToUpperInvariant();
+ var role = Context.Guild.Roles.FirstOrDefault(r => r.Name.ToUpperInvariant() == roleName);
+
+ await role.ModifyAsync(r => r.Hoist = targetState.Value).ConfigureAwait(false);
+ await ReplyConfirmLocalized("rh", Format.Bold(role.Name), Format.Bold(targetState.Value.ToString())).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
diff --git a/src/NadekoBot/Resources/ResponseStrings.Designer.cs b/src/NadekoBot/Resources/ResponseStrings.Designer.cs
index f4171166..1836004a 100644
--- a/src/NadekoBot/Resources/ResponseStrings.Designer.cs
+++ b/src/NadekoBot/Resources/ResponseStrings.Designer.cs
@@ -1168,6 +1168,15 @@ namespace NadekoBot.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Set the display of guild role {0} to {1}..
+ ///
+ public static string administration_rh {
+ get {
+ return ResourceManager.GetString("administration_rh", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Role {0} as been added to the list..
///
diff --git a/src/NadekoBot/Resources/ResponseStrings.resx b/src/NadekoBot/Resources/ResponseStrings.resx
index 2a1d1e7f..e3de1903 100644
--- a/src/NadekoBot/Resources/ResponseStrings.resx
+++ b/src/NadekoBot/Resources/ResponseStrings.resx
@@ -2406,4 +2406,7 @@ Owner ID: {2}
Time in {0} is {1} - {2}
Time in London, UK is 15:30 - Time Zone Name
+
+ Set the display of guild role {0} to {1}.
+
\ No newline at end of file