Administration module fully translatable!!! Partially tested though, report any missing keys.
This commit is contained in:
		@@ -1,18 +1,14 @@
 | 
			
		||||
using Discord;
 | 
			
		||||
using Discord.Commands;
 | 
			
		||||
using NadekoBot.Extensions;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using NadekoBot.Services;
 | 
			
		||||
using NadekoBot.Attributes;
 | 
			
		||||
using Discord.WebSocket;
 | 
			
		||||
using NadekoBot.Services.Database.Models;
 | 
			
		||||
using System.Net.Http;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using static NadekoBot.Modules.Permissions.Permissions;
 | 
			
		||||
using System.Collections.Concurrent;
 | 
			
		||||
using NLog;
 | 
			
		||||
@@ -22,7 +18,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
    [NadekoModule("Administration", ".")]
 | 
			
		||||
    public partial class Administration : NadekoModule
 | 
			
		||||
    {
 | 
			
		||||
        private static ConcurrentHashSet<ulong> DeleteMessagesOnCommand { get; } = new ConcurrentHashSet<ulong>();
 | 
			
		||||
        private static ConcurrentHashSet<ulong> deleteMessagesOnCommand { get; }
 | 
			
		||||
 | 
			
		||||
        private new static Logger _log { get; }
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +27,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            _log = LogManager.GetCurrentClassLogger();
 | 
			
		||||
            NadekoBot.CommandHandler.CommandExecuted += DelMsgOnCmd_Handler;
 | 
			
		||||
 | 
			
		||||
            DeleteMessagesOnCommand = new ConcurrentHashSet<ulong>(NadekoBot.AllGuildConfigs.Where(g => g.DeleteMessageOnCommand).Select(g => g.GuildId));
 | 
			
		||||
            deleteMessagesOnCommand = new ConcurrentHashSet<ulong>(NadekoBot.AllGuildConfigs.Where(g => g.DeleteMessageOnCommand).Select(g => g.GuildId));
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -44,7 +40,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                    var channel = msg.Channel as SocketTextChannel;
 | 
			
		||||
                    if (channel == null)
 | 
			
		||||
                        return;
 | 
			
		||||
                    if (DeleteMessagesOnCommand.Contains(channel.Guild.Id) && cmd.Name != "prune")
 | 
			
		||||
                    if (deleteMessagesOnCommand.Contains(channel.Guild.Id) && cmd.Name != "prune")
 | 
			
		||||
                        await msg.DeleteAsync().ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception ex)
 | 
			
		||||
@@ -71,17 +67,17 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                    PermRole = config.PermissionRole,
 | 
			
		||||
                    Verbose = config.VerbosePermissions,
 | 
			
		||||
                };
 | 
			
		||||
                Permissions.Permissions.Cache.AddOrUpdate(channel.Guild.Id,
 | 
			
		||||
                Cache.AddOrUpdate(channel.Guild.Id,
 | 
			
		||||
                    toAdd, (id, old) => toAdd);
 | 
			
		||||
                await uow.CompleteAsync();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await channel.SendConfirmAsync($"{Context.Message.Author.Mention} 🆗 **Permissions for this server are reset.**");
 | 
			
		||||
            await ReplyConfirmLocalized("perms_reset").ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.Administrator)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageMessages)]
 | 
			
		||||
        public async Task Delmsgoncmd()
 | 
			
		||||
        {
 | 
			
		||||
            bool enabled;
 | 
			
		||||
@@ -94,29 +90,31 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            }
 | 
			
		||||
            if (enabled)
 | 
			
		||||
            {
 | 
			
		||||
                DeleteMessagesOnCommand.Add(Context.Guild.Id);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("✅ **Now automatically deleting successful command invokations.**").ConfigureAwait(false);
 | 
			
		||||
                deleteMessagesOnCommand.Add(Context.Guild.Id);
 | 
			
		||||
                await ReplyConfirmLocalized("delmsg_on").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                DeleteMessagesOnCommand.TryRemove(Context.Guild.Id);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("❗**Stopped automatic deletion of successful command invokations.**").ConfigureAwait(false);
 | 
			
		||||
                deleteMessagesOnCommand.TryRemove(Context.Guild.Id);
 | 
			
		||||
                await ReplyConfirmLocalized("delmsg_off").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        public async Task Setrole(IGuildUser usr, [Remainder] IRole role)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await usr.AddRolesAsync(role).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync($"ℹ️ Successfully added role **{role.Name}** to user **{usr.Username}**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyConfirmLocalized("setrole", Format.Bold(role.Name), Format.Bold(usr.ToString()))
 | 
			
		||||
                    .ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception ex)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Failed to add role. **Bot has insufficient permissions.**\n").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("setrole_err").ConfigureAwait(false);
 | 
			
		||||
                Console.WriteLine(ex.ToString());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -124,82 +122,81 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        public async Task Removerole(IGuildUser usr, [Remainder] IRole role)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await usr.RemoveRolesAsync(role).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync($"ℹ️ Successfully removed role **{role.Name}** from user **{usr.Username}**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyConfirmLocalized("remrole", Format.Bold(role.Name), Format.Bold(usr.ToString())).ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Failed to remove role. Most likely reason: **Insufficient permissions.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("remrole_err").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        public async Task RenameRole(IRole roleToEdit, string newname)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if (roleToEdit.Position > (await Context.Guild.GetCurrentUserAsync().ConfigureAwait(false)).GetRoles().Max(r => r.Position))
 | 
			
		||||
                {
 | 
			
		||||
                    await Context.Channel.SendErrorAsync("🚫 You can't edit roles higher than your highest role.").ConfigureAwait(false);
 | 
			
		||||
                    await ReplyErrorLocalized("renrole_perms").ConfigureAwait(false);
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                await roleToEdit.ModifyAsync(g => g.Name = newname).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("✅ Role renamed.").ConfigureAwait(false);
 | 
			
		||||
                await ReplyConfirmLocalized("renrole").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Failed to rename role. Probably **insufficient permissions.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("renrole_err").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        public async Task RemoveAllRoles([Remainder] IGuildUser user)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await user.RemoveRolesAsync(user.GetRoles()).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync($"🗑 Successfully removed **all** roles from user **{user.Username}**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyConfirmLocalized("rar", Format.Bold(user.ToString())).ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Failed to remove roles. Most likely reason: **Insufficient permissions.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("rar_err").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageRoles)]
 | 
			
		||||
        public async Task CreateRole([Remainder] string roleName = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(roleName))
 | 
			
		||||
                return;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                var r = await Context.Guild.CreateRoleAsync(roleName).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync($"✅ Successfully created role **{r.Name}**.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Unspecified error.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var r = await Context.Guild.CreateRoleAsync(roleName).ConfigureAwait(false);
 | 
			
		||||
            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 RoleColor(params string[] args)
 | 
			
		||||
        {
 | 
			
		||||
            if (args.Count() != 2 && args.Count() != 4)
 | 
			
		||||
            if (args.Length != 2 && args.Length != 4)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("❌ The parameters specified are **invalid.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("rc_params").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            var roleName = args[0].ToUpperInvariant();
 | 
			
		||||
@@ -207,7 +204,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
 | 
			
		||||
            if (role == null)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("🚫 That role **does not exist.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("rc_not_exist").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            try
 | 
			
		||||
@@ -220,64 +217,54 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                var blue = Convert.ToByte(rgb ? int.Parse(args[3]) : Convert.ToInt32(arg1.Substring(4, 2), 16));
 | 
			
		||||
 | 
			
		||||
                await role.ModifyAsync(r => r.Color = new Color(red, green, blue)).ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync($"☑️ Role **{role.Name}'s** color has been changed.").ConfigureAwait(false);
 | 
			
		||||
                await ReplyConfirmLocalized("rc", Format.Bold(role.Name)).ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Error occured, most likely **invalid parameters** or **insufficient permissions.**").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("rc_perms").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.BanMembers)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.BanMembers)]
 | 
			
		||||
        public async Task Ban(IGuildUser user, [Remainder] string msg = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(msg))
 | 
			
		||||
            {
 | 
			
		||||
                msg = "❗️No reason provided.";
 | 
			
		||||
            }
 | 
			
		||||
            if (Context.User.Id != user.Guild.OwnerId && (user.GetRoles().Select(r => r.Position).Max() >= ((IGuildUser)Context.User).GetRoles().Select(r => r.Position).Max()))
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ You can't use this command on users with a role higher or equal to yours in the role hierarchy.").ConfigureAwait(false);
 | 
			
		||||
                await ReplyErrorLocalized("hierarchy").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            if (!string.IsNullOrWhiteSpace(msg))
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    await (await user.CreateDMChannelAsync()).SendErrorAsync($"⛔️ **You have been BANNED from `{Context.Guild.Name}` server.**\n" +
 | 
			
		||||
                                            $"⚖ *Reason:* {msg}").ConfigureAwait(false);
 | 
			
		||||
                    await user.SendErrorAsync(GetText("bandm", Format.Bold(Context.Guild.Name), msg));
 | 
			
		||||
                    await Task.Delay(2000).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                catch { }
 | 
			
		||||
            }
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Guild.AddBanAsync(user, 7).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("⛔️ **Banned** user **" + user.Username + "** ID: `" + user.Id + "`").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ **Error.** Most likely I don't have sufficient permissions.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            await Context.Guild.AddBanAsync(user, 7).ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
 | 
			
		||||
                    .WithTitle("⛔️ " + GetText("banned_user"))
 | 
			
		||||
                    .AddField(efb => efb.WithName(GetText("username")).WithValue(user.ToString()).WithIsInline(true))
 | 
			
		||||
                    .AddField(efb => efb.WithName("ID").WithValue(user.Id.ToString()).WithIsInline(true)))
 | 
			
		||||
                .ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.KickMembers)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageMessages)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.BanMembers)]
 | 
			
		||||
        public async Task Softban(IGuildUser user, [Remainder] string msg = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(msg))
 | 
			
		||||
            {
 | 
			
		||||
                msg = "❗️No reason provided.";
 | 
			
		||||
            }
 | 
			
		||||
            if (Context.User.Id != user.Guild.OwnerId && user.GetRoles().Select(r => r.Position).Max() >= ((IGuildUser)Context.User).GetRoles().Select(r => r.Position).Max())
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ You can't use this command on users with a role higher or equal to yours in the role hierarchy.");
 | 
			
		||||
                await ReplyErrorLocalized("hierarchy").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -285,161 +272,159 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    await user.SendErrorAsync($"☣ **You have been SOFT-BANNED from `{Context.Guild.Name}` server.**\n" +
 | 
			
		||||
                  $"⚖ *Reason:* {msg}").ConfigureAwait(false);
 | 
			
		||||
                    await user.SendErrorAsync(GetText("sbdm", Format.Bold(Context.Guild.Name), msg));
 | 
			
		||||
                    await Task.Delay(2000).ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
                catch { }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Guild.AddBanAsync(user, 7).ConfigureAwait(false);
 | 
			
		||||
                try { await Context.Guild.RemoveBanAsync(user).ConfigureAwait(false); }
 | 
			
		||||
                catch { await Context.Guild.RemoveBanAsync(user).ConfigureAwait(false); }
 | 
			
		||||
            await Context.Guild.AddBanAsync(user, 7).ConfigureAwait(false);
 | 
			
		||||
            try { await Context.Guild.RemoveBanAsync(user).ConfigureAwait(false); }
 | 
			
		||||
            catch { await Context.Guild.RemoveBanAsync(user).ConfigureAwait(false); }
 | 
			
		||||
            
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("☣ **Soft-Banned** user **" + user.Username + "** ID: `" + user.Id + "`").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Error. Most likely I don't have sufficient permissions.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
 | 
			
		||||
                    .WithTitle("☣ " + GetText("sb_user"))
 | 
			
		||||
                    .AddField(efb => efb.WithName(GetText("username")).WithValue(user.ToString()).WithIsInline(true))
 | 
			
		||||
                    .AddField(efb => efb.WithName("ID").WithValue(user.Id.ToString()).WithIsInline(true)))
 | 
			
		||||
                .ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.KickMembers)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.KickMembers)]
 | 
			
		||||
        public async Task Kick(IGuildUser user, [Remainder] string msg = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (user == null)
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("❗️User not found.").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (Context.Message.Author.Id != user.Guild.OwnerId && user.GetRoles().Select(r => r.Position).Max() >= ((IGuildUser)Context.User).GetRoles().Select(r => r.Position).Max())
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ You can't use this command on users with a role higher or equal to yours in the role hierarchy.");
 | 
			
		||||
                await ReplyErrorLocalized("hierarchy").ConfigureAwait(false);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            if (!string.IsNullOrWhiteSpace(msg))
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    await user.SendErrorAsync($"‼️**You have been KICKED from `{Context.Guild.Name}` server.**\n" +
 | 
			
		||||
                                    $"⚖ *Reason:* {msg}").ConfigureAwait(false);
 | 
			
		||||
                    await user.SendErrorAsync(GetText("kickdm", Format.Bold(Context.Guild.Name), msg));
 | 
			
		||||
                    await Task.Delay(2000).ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
                catch { }
 | 
			
		||||
            }
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                await user.KickAsync().ConfigureAwait(false);
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("‼️**Kicked** user **" + user.Username + "** ID: `" + user.Id + "`").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ Error. Most likely I don't have sufficient permissions.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await user.KickAsync().ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
 | 
			
		||||
                    .WithTitle(GetText("kicked_user"))
 | 
			
		||||
                    .AddField(efb => efb.WithName(GetText("username")).WithValue(user.ToString()).WithIsInline(true))
 | 
			
		||||
                    .AddField(efb => efb.WithName("ID").WithValue(user.Id.ToString()).WithIsInline(true)))
 | 
			
		||||
                .ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.DeafenMembers)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.DeafenMembers)]
 | 
			
		||||
        public async Task Deafen(params IGuildUser[] users)
 | 
			
		||||
        {
 | 
			
		||||
            if (!users.Any())
 | 
			
		||||
                return;
 | 
			
		||||
            try
 | 
			
		||||
            foreach (var u in users)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (var u in users)
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    await u.ModifyAsync(usr => usr.Deaf = true).ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("🔇 **Deafen** successful.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ I most likely don't have the permission necessary for that.").ConfigureAwait(false);
 | 
			
		||||
                catch
 | 
			
		||||
                {
 | 
			
		||||
                    // ignored
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            await ReplyConfirmLocalized("deafen").ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.DeafenMembers)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.DeafenMembers)]
 | 
			
		||||
        public async Task UnDeafen(params IGuildUser[] users)
 | 
			
		||||
        {
 | 
			
		||||
            if (!users.Any())
 | 
			
		||||
                return;
 | 
			
		||||
            try
 | 
			
		||||
 | 
			
		||||
            foreach (var u in users)
 | 
			
		||||
            {
 | 
			
		||||
                foreach (var u in users)
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    await u.ModifyAsync(usr => usr.Deaf = false).ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("🔊 **Undeafen** successful.").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                await Context.Channel.SendErrorAsync("⚠️ I most likely don't have the permission necessary for that.").ConfigureAwait(false);
 | 
			
		||||
                catch
 | 
			
		||||
                {
 | 
			
		||||
                    // ignored
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            await ReplyConfirmLocalized("undeafen").ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task DelVoiChanl([Remainder] IVoiceChannel voiceChannel)
 | 
			
		||||
        {
 | 
			
		||||
            await voiceChannel.DeleteAsync().ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.SendConfirmAsync($"🗑 Removed voice channel **{voiceChannel.Name}** successfully.").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("delvoich", Format.Bold(voiceChannel.Name)).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task CreatVoiChanl([Remainder] string channelName)
 | 
			
		||||
        {
 | 
			
		||||
            var ch = await Context.Guild.CreateVoiceChannelAsync(channelName).ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.SendConfirmAsync($"✅ Created voice channel **{ch.Name}**. ID: `{ch.Id}`").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("createvoich",Format.Bold(ch.Name)).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task DelTxtChanl([Remainder] ITextChannel toDelete)
 | 
			
		||||
        {
 | 
			
		||||
            await toDelete.DeleteAsync().ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.SendConfirmAsync($"🗑 Removed text channel **{toDelete.Name}**. ID: `{toDelete.Id}`").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("deltextchan", Format.Bold(toDelete.Name)).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task CreaTxtChanl([Remainder] string channelName)
 | 
			
		||||
        {
 | 
			
		||||
            var txtCh = await Context.Guild.CreateTextChannelAsync(channelName).ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.SendConfirmAsync($"✅ Added text channel **{txtCh.Name}**. ID: `{txtCh.Id}`").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("createtextchan", Format.Bold(txtCh.Name)).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task SetTopic([Remainder] string topic = null)
 | 
			
		||||
        {
 | 
			
		||||
            var channel = (ITextChannel)Context.Channel;
 | 
			
		||||
            topic = topic ?? "";
 | 
			
		||||
            await channel.ModifyAsync(c => c.Topic = topic);
 | 
			
		||||
            await channel.SendConfirmAsync("🆗 **New channel topic set.**").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("set_topic").ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageChannels)]
 | 
			
		||||
        public async Task SetChanlName([Remainder] string name)
 | 
			
		||||
        {
 | 
			
		||||
            var channel = (ITextChannel)Context.Channel;
 | 
			
		||||
            await channel.ModifyAsync(c => c.Name = name).ConfigureAwait(false);
 | 
			
		||||
            await channel.SendConfirmAsync("🆗 **New channel name set.**").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("set_channel_name").ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -459,6 +444,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(ChannelPermission.ManageMessages)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageMessages)]
 | 
			
		||||
        public async Task Prune(int count)
 | 
			
		||||
        {
 | 
			
		||||
            if (count < 1)
 | 
			
		||||
@@ -474,6 +460,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        [RequireContext(ContextType.Guild)]
 | 
			
		||||
        [RequireUserPermission(ChannelPermission.ManageMessages)]
 | 
			
		||||
        [RequireBotPermission(GuildPermission.ManageMessages)]
 | 
			
		||||
        public async Task Prune(IGuildUser user, int count = 100)
 | 
			
		||||
        {
 | 
			
		||||
            if (count < 1)
 | 
			
		||||
@@ -492,7 +479,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
        [RequireUserPermission(GuildPermission.MentionEveryone)]
 | 
			
		||||
        public async Task MentionRole(params IRole[] roles)
 | 
			
		||||
        {
 | 
			
		||||
            string send = $"❕{Context.User.Mention} has invoked a mention on the following roles ❕";
 | 
			
		||||
            string send = "❕" +GetText("menrole",Context.User.Mention);
 | 
			
		||||
            foreach (var role in roles)
 | 
			
		||||
            {
 | 
			
		||||
                send += $"\n**{role.Name}**\n";
 | 
			
		||||
@@ -510,7 +497,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            await Context.Channel.SendMessageAsync(send).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        IGuild _nadekoSupportServer;
 | 
			
		||||
        private IGuild _nadekoSupportServer;
 | 
			
		||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
        public async Task Donators()
 | 
			
		||||
        {
 | 
			
		||||
@@ -520,7 +507,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            {
 | 
			
		||||
                donatorsOrdered = uow.Donators.GetDonatorsOrdered();
 | 
			
		||||
            }
 | 
			
		||||
            await Context.Channel.SendConfirmAsync("Thanks to the people listed below for making this project happen!", string.Join("⭐", donatorsOrdered.Select(d => d.Name))).ConfigureAwait(false);
 | 
			
		||||
            await Context.Channel.SendConfirmAsync(GetText("donators"), string.Join("⭐", donatorsOrdered.Select(d => d.Name))).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
            _nadekoSupportServer = _nadekoSupportServer ?? NadekoBot.Client.GetGuild(117523346618318850);
 | 
			
		||||
 | 
			
		||||
@@ -543,8 +530,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                don = uow.Donators.AddOrUpdateDonator(donator.Id, donator.Username, amount);
 | 
			
		||||
                await uow.CompleteAsync();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await Context.Channel.SendConfirmAsync($"Successfuly added a new donator. Total donated amount from this user: {don.Amount} 👑").ConfigureAwait(false);
 | 
			
		||||
            await ReplyConfirmLocalized("donadd", don.Amount).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //[NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
        {
 | 
			
		||||
            private const int CURRENT_VERSION = 1;
 | 
			
		||||
 | 
			
		||||
            private static Logger _log { get; }
 | 
			
		||||
            private new static readonly Logger _log;
 | 
			
		||||
 | 
			
		||||
            static Migration()
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										336
									
								
								src/NadekoBot/Resources/ResponseStrings.Designer.cs
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										336
									
								
								src/NadekoBot/Resources/ResponseStrings.Designer.cs
									
									
									
										generated
									
									
									
								
							@@ -95,6 +95,16 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to You have been banned from {0} server.
 | 
			
		||||
        ///Reason: {1}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_bandm {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_bandm", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to banned.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -104,6 +114,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to User Banned.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_banned_user {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_banned_user", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Bot name changed to {0}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -230,6 +249,42 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Sucessfully created role {0}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_cr {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_cr", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Text channel {0} created..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_createtextchan {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_createtextchan", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Voice channel {0} created..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_createvoich {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_createvoich", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Deafen successful..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_deafen {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_deafen", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Deleted server {0}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -239,6 +294,42 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Stopped automatic deletion of successful command invokations..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_delmsg_off {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_delmsg_off", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Now automatically deleting sucessful command invokations..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_delmsg_on {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_delmsg_on", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Text channel {0} deleted..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_deltextchan {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_deltextchan", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Voice channel {0} deleted..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_delvoich {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_delvoich", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to DM from.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -248,6 +339,24 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Sucessfully added a new donator.Total donated amount from this user: {0} 👑.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_donadd {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_donadd", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Thanks to the people listed below for making this project hjappen!.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_donators {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_donators", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to I will forward DMs to all owners..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -392,6 +501,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to You can't use this command on users with a role higher or equal to yours in the role hierarchy..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_hierarchy {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_hierarchy", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Images loaded after {0} seconds!.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -428,6 +546,25 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to You have been kicked from {0} server.
 | 
			
		||||
        ///Reason: {1}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_kickdm {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_kickdm", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to User Kicked.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_kicked_user {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_kicked_user", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to List Of Languages
 | 
			
		||||
        ///{0}.
 | 
			
		||||
@@ -564,6 +701,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to {0} has invoked a mention on the following roles.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_menrole {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_menrole", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Message from {0} `[Bot Owner]`:.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -735,6 +881,24 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Error. Most likely I don't have sufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_perms {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_perms", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Permissions for this server are reset..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_perms_reset {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_perms_reset", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Active Protections.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -807,6 +971,105 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Successfully removed all roles from user {0}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rar {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rar", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Failed to remove roles. I have insufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rar_err {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rar_err", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Color of {0} role has been changed..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rc {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rc", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to That role does not exist..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rc_not_exist {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rc_not_exist", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to The parameters specified are invalid..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rc_params {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rc_params", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Error occured due to invalid color or insufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_rc_perms {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_rc_perms", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Successfully removed role {0} from user {1}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_remrole {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_remrole", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Failed to remove role. I have insufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_remrole_err {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_remrole_err", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Role renamed..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_renrole {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_renrole", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Failed to rename role. I have insufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_renrole_err {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_renrole_err", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to You can't edit roles higher than your highest role..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_renrole_perms {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_renrole_perms", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Removed the playing message: {0}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -997,6 +1260,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to New channel name set..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_set_channel_name {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_set_channel_name", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to New game set!.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -1015,6 +1287,33 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to New channel topic set..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_set_topic {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_set_topic", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Sucessfully added role {0} to user {1}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_setrole {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_setrole", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Failed to add role. I have insufficient permissions..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_setrole_err {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_setrole_err", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Shard {0} reconnected..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -1124,6 +1423,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Undeafen successful..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_undeafen {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_undeafen", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Unmuted.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -1268,6 +1576,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Username.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administration_username {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administration_username", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to Username Changed.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -1376,6 +1693,16 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to You have been soft-banned from {0} server.
 | 
			
		||||
        ///Reason: {1}.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string administraton_sbdm {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("administraton_sbdm", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to User Unbanned.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
@@ -1412,6 +1739,15 @@ namespace NadekoBot.Resources {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to User Soft-Banned.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static string adminsitration_sb_user {
 | 
			
		||||
            get {
 | 
			
		||||
                return ResourceManager.GetString("adminsitration_sb_user", resourceCulture);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///    Looks up a localized string similar to That base is already claimed or destroyed..
 | 
			
		||||
        /// </summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -310,10 +310,17 @@
 | 
			
		||||
  <data name="administration_avatar_changed" xml:space="preserve">
 | 
			
		||||
    <value>Avatar Changed</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_bandm" xml:space="preserve">
 | 
			
		||||
    <value>You have been banned from {0} server.
 | 
			
		||||
Reason: {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_banned_pl" xml:space="preserve">
 | 
			
		||||
    <value>banned</value>
 | 
			
		||||
    <comment>PLURAL</comment>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_banned_user" xml:space="preserve">
 | 
			
		||||
    <value>User Banned</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_bot_name" xml:space="preserve">
 | 
			
		||||
    <value>Bot name changed to {0}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -356,12 +363,42 @@
 | 
			
		||||
  <data name="administration_content" xml:space="preserve">
 | 
			
		||||
    <value>Content</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_cr" xml:space="preserve">
 | 
			
		||||
    <value>Sucessfully created role {0}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_createtextchan" xml:space="preserve">
 | 
			
		||||
    <value>Text channel {0} created.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_createvoich" xml:space="preserve">
 | 
			
		||||
    <value>Voice channel {0} created.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_deafen" xml:space="preserve">
 | 
			
		||||
    <value>Deafen successful.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_deleted_server" xml:space="preserve">
 | 
			
		||||
    <value>Deleted server {0}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_delmsg_off" xml:space="preserve">
 | 
			
		||||
    <value>Stopped automatic deletion of successful command invokations.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_delmsg_on" xml:space="preserve">
 | 
			
		||||
    <value>Now automatically deleting sucessful command invokations.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_deltextchan" xml:space="preserve">
 | 
			
		||||
    <value>Text channel {0} deleted.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_delvoich" xml:space="preserve">
 | 
			
		||||
    <value>Voice channel {0} deleted.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_dm_from" xml:space="preserve">
 | 
			
		||||
    <value>DM from</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_donadd" xml:space="preserve">
 | 
			
		||||
    <value>Sucessfully added a new donator.Total donated amount from this user: {0} 👑</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_donators" xml:space="preserve">
 | 
			
		||||
    <value>Thanks to the people listed below for making this project hjappen!</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_fwall_start" xml:space="preserve">
 | 
			
		||||
    <value>I will forward DMs to all owners.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -410,6 +447,9 @@
 | 
			
		||||
  <data name="administration_greet_on" xml:space="preserve">
 | 
			
		||||
    <value>Greet announcements enabled on this channel.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_hierarchy" xml:space="preserve">
 | 
			
		||||
    <value>You can't use this command on users with a role higher or equal to yours in the role hierarchy.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_images_loaded" xml:space="preserve">
 | 
			
		||||
    <value>Images loaded after {0} seconds!</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -422,6 +462,13 @@
 | 
			
		||||
  <data name="administration_joined" xml:space="preserve">
 | 
			
		||||
    <value>{0} has joined {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_kickdm" xml:space="preserve">
 | 
			
		||||
    <value>You have been kicked from {0} server.
 | 
			
		||||
Reason: {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_kicked_user" xml:space="preserve">
 | 
			
		||||
    <value>User Kicked</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_lang_list" xml:space="preserve">
 | 
			
		||||
    <value>List Of Languages
 | 
			
		||||
{0}</value>
 | 
			
		||||
@@ -468,6 +515,9 @@
 | 
			
		||||
  <data name="administration_log_stop" xml:space="preserve">
 | 
			
		||||
    <value>Stopped logging {0} event.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_menrole" xml:space="preserve">
 | 
			
		||||
    <value>{0} has invoked a mention on the following roles</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_message_from_bo" xml:space="preserve">
 | 
			
		||||
    <value>Message from {0} `[Bot Owner]`:</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -527,6 +577,12 @@
 | 
			
		||||
  <data name="administration_old_topic" xml:space="preserve">
 | 
			
		||||
    <value>Old Topic</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_perms" xml:space="preserve">
 | 
			
		||||
    <value>Error. Most likely I don't have sufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_perms_reset" xml:space="preserve">
 | 
			
		||||
    <value>Permissions for this server are reset.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_prot_active" xml:space="preserve">
 | 
			
		||||
    <value>Active Protections</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -551,6 +607,39 @@
 | 
			
		||||
  <data name="administration_raid_time" xml:space="preserve">
 | 
			
		||||
    <value>Time must be between {0} and {1} seconds.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rar" xml:space="preserve">
 | 
			
		||||
    <value>Successfully removed all roles from user {0}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rar_err" xml:space="preserve">
 | 
			
		||||
    <value>Failed to remove roles. I have insufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rc" xml:space="preserve">
 | 
			
		||||
    <value>Color of {0} role has been changed.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rc_not_exist" xml:space="preserve">
 | 
			
		||||
    <value>That role does not exist.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rc_params" xml:space="preserve">
 | 
			
		||||
    <value>The parameters specified are invalid.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_rc_perms" xml:space="preserve">
 | 
			
		||||
    <value>Error occured due to invalid color or insufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_remrole" xml:space="preserve">
 | 
			
		||||
    <value>Successfully removed role {0} from user {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_remrole_err" xml:space="preserve">
 | 
			
		||||
    <value>Failed to remove role. I have insufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_renrole" xml:space="preserve">
 | 
			
		||||
    <value>Role renamed.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_renrole_err" xml:space="preserve">
 | 
			
		||||
    <value>Failed to rename role. I have insufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_renrole_perms" xml:space="preserve">
 | 
			
		||||
    <value>You can't edit roles higher than your highest role.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_reprm" xml:space="preserve">
 | 
			
		||||
    <value>Removed the playing message: {0}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -612,15 +701,27 @@
 | 
			
		||||
  <data name="administration_self_assign_sucess" xml:space="preserve">
 | 
			
		||||
    <value>You now have {0} role.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_setrole" xml:space="preserve">
 | 
			
		||||
    <value>Sucessfully added role {0} to user {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_setrole_err" xml:space="preserve">
 | 
			
		||||
    <value>Failed to add role. I have insufficient permissions.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_set_avatar" xml:space="preserve">
 | 
			
		||||
    <value>New avatar set!</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_set_channel_name" xml:space="preserve">
 | 
			
		||||
    <value>New channel name set.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_set_game" xml:space="preserve">
 | 
			
		||||
    <value>New game set!</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_set_stream" xml:space="preserve">
 | 
			
		||||
    <value>New stream set!</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_set_topic" xml:space="preserve">
 | 
			
		||||
    <value>New channel topic set.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_shard_reconnected" xml:space="preserve">
 | 
			
		||||
    <value>Shard {0} reconnected.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -659,10 +760,16 @@
 | 
			
		||||
  <data name="administration_text_chan_destroyed" xml:space="preserve">
 | 
			
		||||
    <value>Text Channel Destroyed </value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_undeafen" xml:space="preserve">
 | 
			
		||||
    <value>Undeafen successful.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_unmuted_sn" xml:space="preserve">
 | 
			
		||||
    <value>Unmuted</value>
 | 
			
		||||
    <comment>singular</comment>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_username" xml:space="preserve">
 | 
			
		||||
    <value>Username</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administration_username_changed" xml:space="preserve">
 | 
			
		||||
    <value>Username Changed</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -744,6 +851,10 @@
 | 
			
		||||
  <data name="administration_xmuted_voice" xml:space="preserve">
 | 
			
		||||
    <value>User {0} from voice chat</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administraton_sbdm" xml:space="preserve">
 | 
			
		||||
    <value>You have been soft-banned from {0} server.
 | 
			
		||||
Reason: {1}</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="administraton_user_unbanned" xml:space="preserve">
 | 
			
		||||
    <value>User Unbanned</value>
 | 
			
		||||
  </data>
 | 
			
		||||
@@ -756,6 +867,9 @@
 | 
			
		||||
  <data name="adminsitration_presence_updates" xml:space="preserve">
 | 
			
		||||
    <value>Presence Updates</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="adminsitration_sb_user" xml:space="preserve">
 | 
			
		||||
    <value>User Soft-Banned</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <data name="help_back_to_toc" xml:space="preserve">
 | 
			
		||||
    <value>Back to ToC</value>
 | 
			
		||||
  </data>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user