diff --git a/src/NadekoBot/Modules/Administration/Administration.cs b/src/NadekoBot/Modules/Administration/Administration.cs index e83b4f85..2aca6bf0 100644 --- a/src/NadekoBot/Modules/Administration/Administration.cs +++ b/src/NadekoBot/Modules/Administration/Administration.cs @@ -218,13 +218,10 @@ namespace NadekoBot.Modules.Administration [RequireContext(ContextType.Guild)] [RequireUserPermission(GuildPermission.ManageRoles)] [RequireBotPermission(GuildPermission.ManageRoles)] - public async Task RoleHoist(string roleSearchName, PermissionAction targetState) + public async Task RoleHoist(IRole role) { - 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); + await role.ModifyAsync(r => r.Hoist = !role.IsHoisted).ConfigureAwait(false); + await ReplyConfirmLocalized("rh", Format.Bold(role.Name), Format.Bold(role.IsHoisted.ToString())).ConfigureAwait(false); } [NadekoCommand, Usage, Description, Aliases] diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx index a46b89e8..2485151b 100644 --- a/src/NadekoBot/Resources/CommandStrings.resx +++ b/src/NadekoBot/Resources/CommandStrings.resx @@ -3403,10 +3403,10 @@ rolehoist rh - Toggles if this role is displayed in the sidebar or not + Toggles whether this role is displayed in the sidebar or not. - `{0}rh Guests true` or `{0}rh "Space Wizards" true + `{0}rh Guests` or `{0}rh "Space Wizards" buy diff --git a/src/NadekoBot/Services/CommandHandler.cs b/src/NadekoBot/Services/CommandHandler.cs index 3a760dfb..4cb83e38 100644 --- a/src/NadekoBot/Services/CommandHandler.cs +++ b/src/NadekoBot/Services/CommandHandler.cs @@ -58,22 +58,25 @@ namespace NadekoBot.Services public async Task ExecuteExternal(ulong? guildId, ulong channelId, string commandText) { - if (guildId != null) + if (guildId != null) + { + var guild = NadekoBot.Client.GetGuild(guildId.Value); + var channel = guild?.GetChannel(channelId) as SocketTextChannel; + if (channel == null) { - var guild = NadekoBot.Client.GetGuild(guildId.Value); - var channel = guild?.GetChannel(channelId) as SocketTextChannel; - if (channel == null) - return; - - try - { - IUserMessage msg = await channel.SendMessageAsync(commandText).ConfigureAwait(false); - msg = (IUserMessage)await channel.GetMessageAsync(msg.Id).ConfigureAwait(false); - await TryRunCommand(guild, channel, msg).ConfigureAwait(false); - //msg.DeleteAfter(5); - } - catch { } + _log.Warn("Channel for external execution not found."); + return; } + + try + { + IUserMessage msg = await channel.SendMessageAsync(commandText).ConfigureAwait(false); + msg = (IUserMessage)await channel.GetMessageAsync(msg.Id).ConfigureAwait(false); + await TryRunCommand(guild, channel, msg).ConfigureAwait(false); + //msg.DeleteAfter(5); + } + catch { } + } } public Task StartHandling()