permissions done. now really 2 modules left, unless i forgot another one to make myself feel better
This commit is contained in:
parent
00629fa45f
commit
2ef3006ac0
@ -21,7 +21,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Group]
|
[Group]
|
||||||
public class BlacklistCommands : ModuleBase
|
public class BlacklistCommands : NadekoSubmodule
|
||||||
{
|
{
|
||||||
public static ConcurrentHashSet<ulong> BlacklistedUsers { get; set; }
|
public static ConcurrentHashSet<ulong> BlacklistedUsers { get; set; }
|
||||||
public static ConcurrentHashSet<ulong> BlacklistedGuilds { get; set; }
|
public static ConcurrentHashSet<ulong> BlacklistedGuilds { get; set; }
|
||||||
@ -124,16 +124,14 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
break;
|
break;
|
||||||
case BlacklistType.User:
|
case BlacklistType.User:
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(action == AddRemove.Add)
|
if(action == AddRemove.Add)
|
||||||
await Context.Channel.SendConfirmAsync($"Blacklisted a `{type}` with id `{id}`").ConfigureAwait(false);
|
await ReplyConfirmLocalized("blacklisted", Format.Code(type.ToString()), Format.Code(id.ToString())).ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await Context.Channel.SendConfirmAsync($"Unblacklisted a `{type}` with id `{id}`").ConfigureAwait(false);
|
await ReplyConfirmLocalized("unblacklisted", Format.Code(type.ToString()), Format.Code(id.ToString())).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,15 +21,15 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Group]
|
[Group]
|
||||||
public class CmdCdsCommands : ModuleBase
|
public class CmdCdsCommands : NadekoSubmodule
|
||||||
{
|
{
|
||||||
public static ConcurrentDictionary<ulong, ConcurrentHashSet<CommandCooldown>> commandCooldowns { get; }
|
public static ConcurrentDictionary<ulong, ConcurrentHashSet<CommandCooldown>> CommandCooldowns { get; }
|
||||||
private static ConcurrentDictionary<ulong, ConcurrentHashSet<ActiveCooldown>> activeCooldowns { get; } = new ConcurrentDictionary<ulong, ConcurrentHashSet<ActiveCooldown>>();
|
private static ConcurrentDictionary<ulong, ConcurrentHashSet<ActiveCooldown>> activeCooldowns { get; } = new ConcurrentDictionary<ulong, ConcurrentHashSet<ActiveCooldown>>();
|
||||||
|
|
||||||
static CmdCdsCommands()
|
static CmdCdsCommands()
|
||||||
{
|
{
|
||||||
var configs = NadekoBot.AllGuildConfigs;
|
var configs = NadekoBot.AllGuildConfigs;
|
||||||
commandCooldowns = new ConcurrentDictionary<ulong, ConcurrentHashSet<CommandCooldown>>(configs.ToDictionary(k => k.GuildId, v => new ConcurrentHashSet<CommandCooldown>(v.CommandCooldowns)));
|
CommandCooldowns = new ConcurrentDictionary<ulong, ConcurrentHashSet<CommandCooldown>>(configs.ToDictionary(k => k.GuildId, v => new ConcurrentHashSet<CommandCooldown>(v.CommandCooldowns)));
|
||||||
}
|
}
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
@ -38,14 +38,14 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
var channel = (ITextChannel)Context.Channel;
|
var channel = (ITextChannel)Context.Channel;
|
||||||
if (secs < 0 || secs > 3600)
|
if (secs < 0 || secs > 3600)
|
||||||
{
|
{
|
||||||
await channel.SendErrorAsync("Invalid second parameter. (Must be a number between 0 and 3600)").ConfigureAwait(false);
|
await ReplyErrorLocalized("invalid_second_param_between", 0, 3600).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
{
|
{
|
||||||
var config = uow.GuildConfigs.For(channel.Guild.Id, set => set.Include(gc => gc.CommandCooldowns));
|
var config = uow.GuildConfigs.For(channel.Guild.Id, set => set.Include(gc => gc.CommandCooldowns));
|
||||||
var localSet = commandCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
var localSet = CommandCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
||||||
|
|
||||||
config.CommandCooldowns.RemoveWhere(cc => cc.CommandName == command.Aliases.First().ToLowerInvariant());
|
config.CommandCooldowns.RemoveWhere(cc => cc.CommandName == command.Aliases.First().ToLowerInvariant());
|
||||||
localSet.RemoveWhere(cc => cc.CommandName == command.Aliases.First().ToLowerInvariant());
|
localSet.RemoveWhere(cc => cc.CommandName == command.Aliases.First().ToLowerInvariant());
|
||||||
@ -65,13 +65,14 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
var activeCds = activeCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<ActiveCooldown>());
|
var activeCds = activeCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<ActiveCooldown>());
|
||||||
activeCds.RemoveWhere(ac => ac.Command == command.Aliases.First().ToLowerInvariant());
|
activeCds.RemoveWhere(ac => ac.Command == command.Aliases.First().ToLowerInvariant());
|
||||||
await channel.SendConfirmAsync($"🚮 Command **{command.Aliases.First()}** has no coooldown now and all existing cooldowns have been cleared.")
|
await ReplyConfirmLocalized("cmdcd_cleared",
|
||||||
.ConfigureAwait(false);
|
Format.Bold(command.Aliases.First())).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await channel.SendConfirmAsync($"✅ Command **{command.Aliases.First()}** now has a **{secs} {"seconds".SnPl(secs)}** cooldown.")
|
await ReplyConfirmLocalized("cmdcd_add",
|
||||||
.ConfigureAwait(false);
|
Format.Bold(command.Aliases.First()),
|
||||||
|
Format.Bold(secs.ToString())).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,19 +81,19 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
public async Task AllCmdCooldowns()
|
public async Task AllCmdCooldowns()
|
||||||
{
|
{
|
||||||
var channel = (ITextChannel)Context.Channel;
|
var channel = (ITextChannel)Context.Channel;
|
||||||
var localSet = commandCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
var localSet = CommandCooldowns.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
||||||
|
|
||||||
if (!localSet.Any())
|
if (!localSet.Any())
|
||||||
await channel.SendConfirmAsync("ℹ️ `No command cooldowns set.`").ConfigureAwait(false);
|
await ReplyConfirmLocalized("cmdcd_none").ConfigureAwait(false);
|
||||||
else
|
else
|
||||||
await channel.SendTableAsync("", localSet.Select(c => c.CommandName + ": " + c.Seconds + " secs"), s => $"{s,-30}", 2).ConfigureAwait(false);
|
await channel.SendTableAsync("", localSet.Select(c => c.CommandName + ": " + c.Seconds + GetText("sec")), s => $"{s,-30}", 2).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool HasCooldown(CommandInfo cmd, IGuild guild, IUser user)
|
public static bool HasCooldown(CommandInfo cmd, IGuild guild, IUser user)
|
||||||
{
|
{
|
||||||
if (guild == null)
|
if (guild == null)
|
||||||
return false;
|
return false;
|
||||||
var cmdcds = CmdCdsCommands.commandCooldowns.GetOrAdd(guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
var cmdcds = CmdCdsCommands.CommandCooldowns.GetOrAdd(guild.Id, new ConcurrentHashSet<CommandCooldown>());
|
||||||
CommandCooldown cdRule;
|
CommandCooldown cdRule;
|
||||||
if ((cdRule = cmdcds.FirstOrDefault(cc => cc.CommandName == cmd.Aliases.First().ToLowerInvariant())) != null)
|
if ((cdRule = cmdcds.FirstOrDefault(cc => cc.CommandName == cmd.Aliases.First().ToLowerInvariant())) != null)
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
public partial class Permissions
|
public partial class Permissions
|
||||||
{
|
{
|
||||||
[Group]
|
[Group]
|
||||||
public class CommandCostCommands : ModuleBase
|
public class CommandCostCommands : NadekoSubmodule
|
||||||
{
|
{
|
||||||
private static readonly ConcurrentDictionary<string, int> _commandCosts = new ConcurrentDictionary<string, int>();
|
private static readonly ConcurrentDictionary<string, int> _commandCosts = new ConcurrentDictionary<string, int>();
|
||||||
public static IReadOnlyDictionary<string, int> CommandCosts => _commandCosts;
|
public static IReadOnlyDictionary<string, int> CommandCosts => _commandCosts;
|
||||||
@ -29,29 +29,29 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
// x => x.Cost));
|
// x => x.Cost));
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
//[NadekoCommand, Usage, Description, Aliases]
|
||||||
public async Task CmdCosts(int page = 1)
|
//public async Task CmdCosts(int page = 1)
|
||||||
{
|
//{
|
||||||
var prices = _commandCosts.ToList();
|
// var prices = _commandCosts.ToList();
|
||||||
|
|
||||||
if (!prices.Any())
|
// if (!prices.Any())
|
||||||
{
|
// {
|
||||||
await Context.Channel.SendConfirmAsync("No costs set.").ConfigureAwait(false);
|
// await Context.Channel.SendConfirmAsync(GetText("no_costs")).ConfigureAwait(false);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
|
||||||
await Context.Channel.SendPaginatedConfirmAsync(page, (curPage) => {
|
// await Context.Channel.SendPaginatedConfirmAsync(page, (curPage) => {
|
||||||
var embed = new EmbedBuilder().WithOkColor()
|
// var embed = new EmbedBuilder().WithOkColor()
|
||||||
.WithTitle("Command Costs");
|
// .WithTitle(GetText("command_costs"));
|
||||||
var current = prices.Skip((curPage - 1) * 9)
|
// var current = prices.Skip((curPage - 1) * 9)
|
||||||
.Take(9);
|
// .Take(9);
|
||||||
foreach (var price in current)
|
// foreach (var price in current)
|
||||||
{
|
// {
|
||||||
embed.AddField(efb => efb.WithName(price.Key).WithValue(price.Value.ToString()).WithIsInline(true));
|
// embed.AddField(efb => efb.WithName(price.Key).WithValue(price.Value.ToString()).WithIsInline(true));
|
||||||
}
|
// }
|
||||||
return embed;
|
// return embed;
|
||||||
}, prices.Count / 9).ConfigureAwait(false);
|
// }, prices.Count / 9).ConfigureAwait(false);
|
||||||
}
|
//}
|
||||||
|
|
||||||
//[NadekoCommand, Usage, Description, Aliases]
|
//[NadekoCommand, Usage, Description, Aliases]
|
||||||
//public async Task CommandCost(int cost, CommandInfo cmd)
|
//public async Task CommandCost(int cost, CommandInfo cmd)
|
||||||
|
@ -13,13 +13,13 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
public partial class Permissions
|
public partial class Permissions
|
||||||
{
|
{
|
||||||
[Group]
|
[Group]
|
||||||
public class FilterCommands : ModuleBase
|
public class FilterCommands : NadekoSubmodule
|
||||||
{
|
{
|
||||||
public static ConcurrentHashSet<ulong> InviteFilteringChannels { get; }
|
public static ConcurrentHashSet<ulong> InviteFilteringChannels { get; }
|
||||||
public static ConcurrentHashSet<ulong> InviteFilteringServers { get; }
|
public static ConcurrentHashSet<ulong> InviteFilteringServers { get; }
|
||||||
|
|
||||||
//serverid, filteredwords
|
//serverid, filteredwords
|
||||||
private static ConcurrentDictionary<ulong, ConcurrentHashSet<string>> ServerFilteredWords { get; }
|
private static ConcurrentDictionary<ulong, ConcurrentHashSet<string>> serverFilteredWords { get; }
|
||||||
|
|
||||||
public static ConcurrentHashSet<ulong> WordFilteringChannels { get; }
|
public static ConcurrentHashSet<ulong> WordFilteringChannels { get; }
|
||||||
public static ConcurrentHashSet<ulong> WordFilteringServers { get; }
|
public static ConcurrentHashSet<ulong> WordFilteringServers { get; }
|
||||||
@ -28,7 +28,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
ConcurrentHashSet<string> words = new ConcurrentHashSet<string>();
|
ConcurrentHashSet<string> words = new ConcurrentHashSet<string>();
|
||||||
if(WordFilteringChannels.Contains(channelId))
|
if(WordFilteringChannels.Contains(channelId))
|
||||||
ServerFilteredWords.TryGetValue(guildId, out words);
|
serverFilteredWords.TryGetValue(guildId, out words);
|
||||||
return words;
|
return words;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
var words = new ConcurrentHashSet<string>();
|
var words = new ConcurrentHashSet<string>();
|
||||||
if(WordFilteringServers.Contains(guildId))
|
if(WordFilteringServers.Contains(guildId))
|
||||||
ServerFilteredWords.TryGetValue(guildId, out words);
|
serverFilteredWords.TryGetValue(guildId, out words);
|
||||||
return words;
|
return words;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
|
|
||||||
var dict = guildConfigs.ToDictionary(gc => gc.GuildId, gc => new ConcurrentHashSet<string>(gc.FilteredWords.Select(fw => fw.Word)));
|
var dict = guildConfigs.ToDictionary(gc => gc.GuildId, gc => new ConcurrentHashSet<string>(gc.FilteredWords.Select(fw => fw.Word)));
|
||||||
|
|
||||||
ServerFilteredWords = new ConcurrentDictionary<ulong, ConcurrentHashSet<string>>(dict);
|
serverFilteredWords = new ConcurrentDictionary<ulong, ConcurrentHashSet<string>>(dict);
|
||||||
|
|
||||||
var serverFiltering = guildConfigs.Where(gc => gc.FilterWords);
|
var serverFiltering = guildConfigs.Where(gc => gc.FilterWords);
|
||||||
WordFilteringServers = new ConcurrentHashSet<ulong>(serverFiltering.Select(gc => gc.GuildId));
|
WordFilteringServers = new ConcurrentHashSet<ulong>(serverFiltering.Select(gc => gc.GuildId));
|
||||||
@ -74,12 +74,12 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
InviteFilteringServers.Add(channel.Guild.Id);
|
InviteFilteringServers.Add(channel.Guild.Id);
|
||||||
await channel.SendConfirmAsync("Invite filtering enabled on this server.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("invite_filter_server_on").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InviteFilteringServers.TryRemove(channel.Guild.Id);
|
InviteFilteringServers.TryRemove(channel.Guild.Id);
|
||||||
await channel.SendConfirmAsync("Invite filtering disabled on this server.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("invite_filter_server_off").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,12 +107,11 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
if (removed == 0)
|
if (removed == 0)
|
||||||
{
|
{
|
||||||
InviteFilteringChannels.Add(channel.Id);
|
InviteFilteringChannels.Add(channel.Id);
|
||||||
await channel.SendConfirmAsync("Invite filtering enabled on this channel.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("invite_filter_channel_on").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InviteFilteringChannels.TryRemove(channel.Id);
|
await ReplyConfirmLocalized("invite_filter_channel_off").ConfigureAwait(false);
|
||||||
await channel.SendConfirmAsync("Invite filtering disabled on this channel.").ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,12 +132,12 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
WordFilteringServers.Add(channel.Guild.Id);
|
WordFilteringServers.Add(channel.Guild.Id);
|
||||||
await channel.SendConfirmAsync("Word filtering enabled on this server.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("word_filter_server_on").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WordFilteringServers.TryRemove(channel.Guild.Id);
|
WordFilteringServers.TryRemove(channel.Guild.Id);
|
||||||
await channel.SendConfirmAsync("Word filtering disabled on this server.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("word_filter_server_off").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,12 +165,12 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
if (removed == 0)
|
if (removed == 0)
|
||||||
{
|
{
|
||||||
WordFilteringChannels.Add(channel.Id);
|
WordFilteringChannels.Add(channel.Id);
|
||||||
await channel.SendConfirmAsync("Word filtering enabled on this channel.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("word_filter_channel_on").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WordFilteringChannels.TryRemove(channel.Id);
|
WordFilteringChannels.TryRemove(channel.Id);
|
||||||
await channel.SendConfirmAsync("Word filtering disabled on this channel.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("word_filter_channel_off").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,19 +198,17 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var filteredWords = ServerFilteredWords.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<string>());
|
var filteredWords = serverFilteredWords.GetOrAdd(channel.Guild.Id, new ConcurrentHashSet<string>());
|
||||||
|
|
||||||
if (removed == 0)
|
if (removed == 0)
|
||||||
{
|
{
|
||||||
filteredWords.Add(word);
|
filteredWords.Add(word);
|
||||||
await channel.SendConfirmAsync($"Word `{word}` successfully added to the list of filtered words.")
|
await ReplyConfirmLocalized("filter_word_add", Format.Code(word)).ConfigureAwait(false);
|
||||||
.ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
filteredWords.TryRemove(word);
|
filteredWords.TryRemove(word);
|
||||||
await channel.SendConfirmAsync($"Word `{word}` removed from the list of filtered words.")
|
await ReplyConfirmLocalized("filter_word_remove", Format.Code(word)).ConfigureAwait(false);
|
||||||
.ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,9 +219,9 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
var channel = (ITextChannel)Context.Channel;
|
var channel = (ITextChannel)Context.Channel;
|
||||||
|
|
||||||
ConcurrentHashSet<string> filteredWords;
|
ConcurrentHashSet<string> filteredWords;
|
||||||
ServerFilteredWords.TryGetValue(channel.Guild.Id, out filteredWords);
|
serverFilteredWords.TryGetValue(channel.Guild.Id, out filteredWords);
|
||||||
|
|
||||||
await channel.SendConfirmAsync($"List of filtered words", string.Join("\n", filteredWords))
|
await channel.SendConfirmAsync(GetText("filter_word_list"), string.Join("\n", filteredWords))
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
|
|
||||||
static Permissions()
|
static Permissions()
|
||||||
{
|
{
|
||||||
var _log = LogManager.GetCurrentClassLogger();
|
var log = LogManager.GetCurrentClassLogger();
|
||||||
var sw = Stopwatch.StartNew();
|
var sw = Stopwatch.StartNew();
|
||||||
|
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
@ -46,7 +46,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}
|
}
|
||||||
|
|
||||||
sw.Stop();
|
sw.Stop();
|
||||||
_log.Debug($"Loaded in {sw.Elapsed.TotalSeconds:F2}s");
|
log.Debug($"Loaded in {sw.Elapsed.TotalSeconds:F2}s");
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -65,8 +65,14 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.Verbose = config.VerbosePermissions; return old; });
|
}, (id, old) => { old.Verbose = config.VerbosePermissions; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
if (action.Value)
|
||||||
await Context.Channel.SendConfirmAsync("ℹ️ I will " + (action.Value ? "now" : "no longer") + " show permission warnings.").ConfigureAwait(false);
|
{
|
||||||
|
await ReplyConfirmLocalized("verbose_true").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("verbose_false").ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -81,10 +87,9 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
var config = uow.GuildConfigs.For(Context.Guild.Id, set => set);
|
var config = uow.GuildConfigs.For(Context.Guild.Id, set => set);
|
||||||
if (role == null)
|
if (role == null)
|
||||||
{
|
{
|
||||||
await Context.Channel.SendConfirmAsync($"ℹ️ Current permission role is **{config.PermissionRole}**.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("permrole", Format.Bold(config.PermissionRole)).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
config.PermissionRole = role.Name.Trim();
|
config.PermissionRole = role.Name.Trim();
|
||||||
Cache.AddOrUpdate(Context.Guild.Id, new PermissionCache()
|
Cache.AddOrUpdate(Context.Guild.Id, new PermissionCache()
|
||||||
{
|
{
|
||||||
@ -94,9 +99,8 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.PermRole = role.Name.Trim(); return old; });
|
}, (id, old) => { old.PermRole = role.Name.Trim(); return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
await Context.Channel.SendConfirmAsync($"Users now require **{role.Name}** role in order to edit permissions.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("permrole_changed", Format.Bold(role.Name)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -105,12 +109,18 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
if (page < 1 || page > 4)
|
if (page < 1 || page > 4)
|
||||||
return;
|
return;
|
||||||
string toSend = "";
|
string toSend;
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
{
|
{
|
||||||
var perms = uow.GuildConfigs.PermissionsFor(Context.Guild.Id).RootPermission;
|
var perms = uow.GuildConfigs.PermissionsFor(Context.Guild.Id).RootPermission;
|
||||||
var i = 1 + 20 * (page - 1);
|
var i = 1 + 20 * (page - 1);
|
||||||
toSend = Format.Code($"📄 Permissions page {page}") + "\n\n" + String.Join("\n", perms.AsEnumerable().Skip((page - 1) * 20).Take(20).Select(p => $"`{(i++)}.` {(p.Next == null ? Format.Bold(p.GetCommand((SocketGuild)Context.Guild) + " [uneditable]") : (p.GetCommand((SocketGuild)Context.Guild)))}"));
|
toSend = Format.Bold(GetText("page", page)) + "\n\n" + string.Join("\n",
|
||||||
|
perms.AsEnumerable()
|
||||||
|
.Skip((page - 1) * 20)
|
||||||
|
.Take(20)
|
||||||
|
.Select(
|
||||||
|
p =>
|
||||||
|
$"`{(i++)}.` {(p.Next == null ? Format.Bold(p.GetCommand((SocketGuild) Context.Guild) + $" [{GetText("uneditable")}]") : (p.GetCommand((SocketGuild) Context.Guild)))}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
await Context.Channel.SendMessageAsync(toSend).ConfigureAwait(false);
|
await Context.Channel.SendMessageAsync(toSend).ConfigureAwait(false);
|
||||||
@ -132,7 +142,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (index == 0)
|
if (index == 0)
|
||||||
{
|
{
|
||||||
p = perms;
|
p = perms;
|
||||||
config.RootPermission = perms.Next;
|
config.RootPermission = perms.Next;
|
||||||
@ -155,12 +165,13 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
uow2._context.Remove<Permission>(p);
|
uow2._context.Remove<Permission>(p);
|
||||||
uow2._context.SaveChanges();
|
uow2._context.SaveChanges();
|
||||||
}
|
}
|
||||||
|
await ReplyConfirmLocalized("removed",
|
||||||
await Context.Channel.SendConfirmAsync($"✅ {Context.User.Mention} removed permission **{p.GetCommand((SocketGuild)Context.Guild)}** from position #{index + 1}.").ConfigureAwait(false);
|
index+1,
|
||||||
|
Format.Code(p.GetCommand((SocketGuild)Context.Guild))).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
catch (ArgumentOutOfRangeException)
|
catch (IndexOutOfRangeException)
|
||||||
{
|
{
|
||||||
await Context.Channel.SendErrorAsync("❗️`No command on that index found.`").ConfigureAwait(false);
|
await ReplyErrorLocalized("perm_out_of_range").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +191,6 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
var config = uow.GuildConfigs.PermissionsFor(Context.Guild.Id);
|
var config = uow.GuildConfigs.PermissionsFor(Context.Guild.Id);
|
||||||
var perms = config.RootPermission;
|
var perms = config.RootPermission;
|
||||||
var root = perms;
|
|
||||||
var index = 0;
|
var index = 0;
|
||||||
var fromFound = false;
|
var fromFound = false;
|
||||||
var toFound = false;
|
var toFound = false;
|
||||||
@ -207,13 +217,13 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
if (!fromFound)
|
if (!fromFound)
|
||||||
{
|
{
|
||||||
await Context.Channel.SendErrorAsync($"Can't find permission at index `#{++from}`").ConfigureAwait(false);
|
await ReplyErrorLocalized("not_found", ++from).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!toFound)
|
if (!toFound)
|
||||||
{
|
{
|
||||||
await Context.Channel.SendErrorAsync($"Can't find permission at index `#{++to}`").ConfigureAwait(false);
|
await ReplyErrorLocalized("not_found", ++to).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,7 +240,6 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
next.Previous = pre;
|
next.Previous = pre;
|
||||||
if (from == 0)
|
if (from == 0)
|
||||||
{
|
{
|
||||||
root = next;
|
|
||||||
}
|
}
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
//Inserting
|
//Inserting
|
||||||
@ -263,14 +272,18 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"`Moved permission:` \"{fromPerm.GetCommand((SocketGuild)Context.Guild)}\" `from #{++from} to #{++to}.`").ConfigureAwait(false);
|
await ReplyConfirmLocalized("moved_permission",
|
||||||
|
Format.Code(fromPerm.GetCommand((SocketGuild) Context.Guild)),
|
||||||
|
++from,
|
||||||
|
++to)
|
||||||
|
.ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
catch (Exception e) when (e is ArgumentOutOfRangeException || e is IndexOutOfRangeException)
|
catch (Exception e) when (e is ArgumentOutOfRangeException || e is IndexOutOfRangeException)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await Context.Channel.SendErrorAsync("`Invalid index(es) specified.`").ConfigureAwait(false);
|
await ReplyErrorLocalized("perm_out_of_range").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -297,7 +310,19 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
|
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{command.Aliases.First()}` command on this server.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("sx_enable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command")).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("sx_disable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command")).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -323,7 +348,19 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of **`{module.Name}`** module on this server.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("sx_enable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module")).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("sx_disable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module")).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -349,7 +386,21 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{command.Aliases.First()}` command for `{user}` user.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("ux_enable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("ux_disable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -375,7 +426,21 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{module.Name}` module for `{user}` user.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("ux_enable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("ux_disable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -404,7 +469,21 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{command.Aliases.First()}` command for `{role}` role.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("rx_enable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("rx_disable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -433,14 +512,27 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{module.Name}` module for `{role}` role.").ConfigureAwait(false);
|
|
||||||
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("rx_enable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("rx_disable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
[RequireContext(ContextType.Guild)]
|
[RequireContext(ContextType.Guild)]
|
||||||
public async Task ChnlCmd(CommandInfo command, PermissionAction action, [Remainder] ITextChannel chnl)
|
public async Task ChnlCmd(CommandInfo command, PermissionAction action, [Remainder] ITextChannel chnl)
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
using (var uow = DbHandler.UnitOfWork())
|
using (var uow = DbHandler.UnitOfWork())
|
||||||
{
|
{
|
||||||
@ -461,11 +553,21 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("cx_enable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
else
|
||||||
_log.Error(ex);
|
{
|
||||||
|
await ReplyConfirmLocalized("cx_disable",
|
||||||
|
Format.Code(command.Aliases.First()),
|
||||||
|
GetText("of_command"),
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{command.Aliases.First()}` command for `{chnl}` channel.").ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -491,7 +593,21 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `{module.Name}` module for `{chnl}` channel.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("cx_enable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("cx_disable",
|
||||||
|
Format.Code(module.Name),
|
||||||
|
GetText("of_module"),
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -517,7 +633,17 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `ALL MODULES` for `{chnl}` channel.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("acm_enable",
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("acm_disable",
|
||||||
|
Format.Code(chnl.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -546,7 +672,17 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `ALL MODULES` for `{role}` role.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("arm_enable",
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("arm_disable",
|
||||||
|
Format.Code(role.Name)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -572,7 +708,17 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `ALL MODULES` for `{user}` user.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("aum_enable",
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("aum_disable",
|
||||||
|
Format.Code(user.ToString())).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -609,7 +755,15 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
}, (id, old) => { old.RootPermission = config.RootPermission; return old; });
|
||||||
await uow.CompleteAsync().ConfigureAwait(false);
|
await uow.CompleteAsync().ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await Context.Channel.SendConfirmAsync($"{(action.Value ? "✅ Allowed" : "🆗 Denied")} usage of `ALL MODULES` on this server.").ConfigureAwait(false);
|
|
||||||
|
if (action.Value)
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("asm_enable").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await ReplyConfirmLocalized("asm_disable").ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
450
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
450
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
@ -3425,6 +3425,456 @@ namespace NadekoBot.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of ALL MODULES on {0} channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_acm_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_acm_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of ALL MODULES on {0} channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_acm_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_acm_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Allowed.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_allowed {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_allowed", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of ALL MODULES for {0} role..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_arm_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_arm_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of ALL MODULES for {0} role..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_arm_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_arm_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of ALL MODULES on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_asm_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_asm_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of ALL MODULES on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_asm_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_asm_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of ALL MODULES for {0} user..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_aum_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_aum_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of ALL MODULES for {0} user..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_aum_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_aum_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Blacklisted {0} with ID {1}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_blacklisted {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_blacklisted", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Command {0} now has a {1}s cooldown..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_cmdcd_add {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_cmdcd_add", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Command {0} has no coooldown now and all existing cooldowns have been cleared..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_cmdcd_cleared {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_cmdcd_cleared", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to No command cooldowns set..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_cmdcd_none {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_cmdcd_none", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Command Costs.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_command_costs {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_command_costs", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of {0} {1} on {2} channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_cx_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_cx_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of {0} {1} on {2} channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_cx_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_cx_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Denied.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_denied {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_denied", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Added word {0} to the list of filtered words..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_filter_word_add {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_filter_word_add", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to List Of Filtered Words.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_filter_word_list {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_filter_word_list", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Removed word {0} from the list of filtered words..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_filter_word_remove {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_filter_word_remove", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invalid second parameter.(Must be a number between {0} and {1}).
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_invalid_second_param_between {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_invalid_second_param_between", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invite filtering disabled on this channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_invite_filter_channel_off {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_invite_filter_channel_off", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invite filtering enabled on this channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_invite_filter_channel_on {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_invite_filter_channel_on", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invite filtering disabled on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_invite_filter_server_off {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_invite_filter_server_off", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invite filtering enabled on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_invite_filter_server_on {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_invite_filter_server_on", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Moved permission {0} from #{1} to #{2}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_moved_permission {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_moved_permission", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to No costs set..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_no_costs {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_no_costs", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Can't find permission at index #{0}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_not_found {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_not_found", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to command.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_of_command {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_of_command", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to module.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_of_module {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_of_module", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Permissions page {0}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_page {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_page", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to No permission found on that index..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_perm_out_of_range {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_perm_out_of_range", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Current permissions role is {0}..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_permrole {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_permrole", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Users now require {0} role in order to edit permissions..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_permrole_changed {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_permrole_changed", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to removed permission #{0} - {1}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_removed {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_removed", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of {0} {1} for {2} role..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_rx_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_rx_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of {0} {1} for {2} role..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_rx_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_rx_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to sec..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_sec {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_sec", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of {0} {1} on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_sx_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_sx_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of {0} {1} on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_sx_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_sx_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Unblacklisted {0} with ID {1}.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_unblacklisted {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_unblacklisted", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to uneditable.
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_uneditable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_uneditable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Disabled usage of {0} {1} for {2} user..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_ux_disable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_ux_disable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enabled usage of {0} {1} for {2} user..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_ux_enable {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_ux_enable", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to I will no longer show permission warnings..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_verbose_false {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_verbose_false", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to I will now show permission warnings..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_verbose_true {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_verbose_true", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Word filtering disabled on this channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_word_filter_channel_off {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_word_filter_channel_off", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Word filtering enabled on this channel..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_word_filter_channel_on {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_word_filter_channel_on", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Word filtering disabled on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_word_filter_server_off {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_word_filter_server_off", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Word filtering enabled on this server..
|
||||||
|
/// </summary>
|
||||||
|
public static string permissions_word_filter_server_on {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("permissions_word_filter_server_on", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to {0} has already fainted..
|
/// Looks up a localized string similar to {0} has already fainted..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1332,6 +1332,159 @@ Don't forget to leave your discord name or id in the message.
|
|||||||
<data name="games_vs" xml:space="preserve">
|
<data name="games_vs" xml:space="preserve">
|
||||||
<value>{0} vs {1}</value>
|
<value>{0} vs {1}</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="permissions_acm_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of ALL MODULES on {0} channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_acm_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of ALL MODULES on {0} channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_allowed" xml:space="preserve">
|
||||||
|
<value>Allowed</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_arm_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of ALL MODULES for {0} role.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_arm_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of ALL MODULES for {0} role.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_asm_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of ALL MODULES on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_asm_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of ALL MODULES on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_aum_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of ALL MODULES for {0} user.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_aum_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of ALL MODULES for {0} user.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_blacklisted" xml:space="preserve">
|
||||||
|
<value>Blacklisted {0} with ID {1}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_cmdcd_add" xml:space="preserve">
|
||||||
|
<value>Command {0} now has a {1}s cooldown.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_cmdcd_cleared" xml:space="preserve">
|
||||||
|
<value>Command {0} has no coooldown now and all existing cooldowns have been cleared.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_cmdcd_none" xml:space="preserve">
|
||||||
|
<value>No command cooldowns set.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_command_costs" xml:space="preserve">
|
||||||
|
<value>Command Costs</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_cx_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of {0} {1} on {2} channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_cx_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of {0} {1} on {2} channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_denied" xml:space="preserve">
|
||||||
|
<value>Denied</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_filter_word_add" xml:space="preserve">
|
||||||
|
<value>Added word {0} to the list of filtered words.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_filter_word_list" xml:space="preserve">
|
||||||
|
<value>List Of Filtered Words</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_filter_word_remove" xml:space="preserve">
|
||||||
|
<value>Removed word {0} from the list of filtered words.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_invalid_second_param_between" xml:space="preserve">
|
||||||
|
<value>Invalid second parameter.(Must be a number between {0} and {1})</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_invite_filter_channel_off" xml:space="preserve">
|
||||||
|
<value>Invite filtering disabled on this channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_invite_filter_channel_on" xml:space="preserve">
|
||||||
|
<value>Invite filtering enabled on this channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_invite_filter_server_off" xml:space="preserve">
|
||||||
|
<value>Invite filtering disabled on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_invite_filter_server_on" xml:space="preserve">
|
||||||
|
<value>Invite filtering enabled on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_moved_permission" xml:space="preserve">
|
||||||
|
<value>Moved permission {0} from #{1} to #{2}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_not_found" xml:space="preserve">
|
||||||
|
<value>Can't find permission at index #{0}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_no_costs" xml:space="preserve">
|
||||||
|
<value>No costs set.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_of_command" xml:space="preserve">
|
||||||
|
<value>command</value>
|
||||||
|
<comment>Gen (of command)</comment>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_of_module" xml:space="preserve">
|
||||||
|
<value>module</value>
|
||||||
|
<comment>Gen. (of module)</comment>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_page" xml:space="preserve">
|
||||||
|
<value>Permissions page {0}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_permrole" xml:space="preserve">
|
||||||
|
<value>Current permissions role is {0}.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_permrole_changed" xml:space="preserve">
|
||||||
|
<value>Users now require {0} role in order to edit permissions.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_perm_out_of_range" xml:space="preserve">
|
||||||
|
<value>No permission found on that index.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_removed" xml:space="preserve">
|
||||||
|
<value>removed permission #{0} - {1}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_rx_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of {0} {1} for {2} role.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_rx_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of {0} {1} for {2} role.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_sec" xml:space="preserve">
|
||||||
|
<value>sec.</value>
|
||||||
|
<comment>Short of seconds.</comment>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_sx_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of {0} {1} on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_sx_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of {0} {1} on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_unblacklisted" xml:space="preserve">
|
||||||
|
<value>Unblacklisted {0} with ID {1}</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_uneditable" xml:space="preserve">
|
||||||
|
<value>uneditable</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_ux_disable" xml:space="preserve">
|
||||||
|
<value>Disabled usage of {0} {1} for {2} user.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_ux_enable" xml:space="preserve">
|
||||||
|
<value>Enabled usage of {0} {1} for {2} user.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_verbose_false" xml:space="preserve">
|
||||||
|
<value>I will no longer show permission warnings.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_verbose_true" xml:space="preserve">
|
||||||
|
<value>I will now show permission warnings.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_word_filter_channel_off" xml:space="preserve">
|
||||||
|
<value>Word filtering disabled on this channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_word_filter_channel_on" xml:space="preserve">
|
||||||
|
<value>Word filtering enabled on this channel.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_word_filter_server_off" xml:space="preserve">
|
||||||
|
<value>Word filtering disabled on this server.</value>
|
||||||
|
</data>
|
||||||
|
<data name="permissions_word_filter_server_on" xml:space="preserve">
|
||||||
|
<value>Word filtering enabled on this server.</value>
|
||||||
|
</data>
|
||||||
<data name="utiliity_joined" xml:space="preserve">
|
<data name="utiliity_joined" xml:space="preserve">
|
||||||
<value>Joined</value>
|
<value>Joined</value>
|
||||||
</data>
|
</data>
|
||||||
|
Loading…
Reference in New Issue
Block a user