triggered permissions are now translatable
This commit is contained in:
		| @@ -165,7 +165,7 @@ namespace NadekoBot | |||||||
|                 #endregion |                 #endregion | ||||||
|  |  | ||||||
|                 #region permissions |                 #region permissions | ||||||
|                 var permissionsService = new PermissionService(Client, Db, BotConfig, CommandHandler); |                 var permissionsService = new PermissionService(Client, Db, BotConfig, CommandHandler, Strings); | ||||||
|                 var blacklistService = new BlacklistService(BotConfig); |                 var blacklistService = new BlacklistService(BotConfig); | ||||||
|                 var cmdcdsService = new CmdCdService(AllGuildConfigs); |                 var cmdcdsService = new CmdCdService(AllGuildConfigs); | ||||||
|                 var filterService = new FilterService(Client, AllGuildConfigs); |                 var filterService = new FilterService(Client, AllGuildConfigs); | ||||||
| @@ -180,11 +180,11 @@ namespace NadekoBot | |||||||
|  |  | ||||||
|                 var clashService = new ClashOfClansService(Client, Db, Localization, Strings, uow, startingGuildIdList); |                 var clashService = new ClashOfClansService(Client, Db, Localization, Strings, uow, startingGuildIdList); | ||||||
|                 var musicService = new MusicService(GoogleApi, Strings, Localization, Db, soundcloudApiService, Credentials, AllGuildConfigs); |                 var musicService = new MusicService(GoogleApi, Strings, Localization, Db, soundcloudApiService, Credentials, AllGuildConfigs); | ||||||
|                 var crService = new CustomReactionsService(permissionsService, Db, Client, CommandHandler, BotConfig, uow); |                 var crService = new CustomReactionsService(permissionsService, Db, Strings, Client, CommandHandler, BotConfig, uow); | ||||||
|  |  | ||||||
|                 #region Games |                 #region Games | ||||||
|                 var gamesService = new GamesService(Client, BotConfig, AllGuildConfigs, Strings, Images, CommandHandler); |                 var gamesService = new GamesService(Client, BotConfig, AllGuildConfigs, Strings, Images, CommandHandler); | ||||||
|                 var chatterBotService = new ChatterBotService(Client, permissionsService, AllGuildConfigs, CommandHandler); |                 var chatterBotService = new ChatterBotService(Client, permissionsService, AllGuildConfigs, CommandHandler, Strings); | ||||||
|                 var pollService = new PollService(Client, Strings); |                 var pollService = new PollService(Client, Strings); | ||||||
|                 #endregion |                 #endregion | ||||||
|  |  | ||||||
|   | |||||||
| @@ -27,8 +27,9 @@ namespace NadekoBot.Services.CustomReactions | |||||||
|         private readonly PermissionService _perms; |         private readonly PermissionService _perms; | ||||||
|         private readonly CommandHandler _cmd; |         private readonly CommandHandler _cmd; | ||||||
|         private readonly BotConfig _bc; |         private readonly BotConfig _bc; | ||||||
|  |         private readonly NadekoStrings _strings; | ||||||
|  |  | ||||||
|         public CustomReactionsService(PermissionService perms, DbService db,  |         public CustomReactionsService(PermissionService perms, DbService db, NadekoStrings strings, | ||||||
|             DiscordSocketClient client, CommandHandler cmd, BotConfig bc, IUnitOfWork uow) |             DiscordSocketClient client, CommandHandler cmd, BotConfig bc, IUnitOfWork uow) | ||||||
|         { |         { | ||||||
|             _log = LogManager.GetCurrentClassLogger(); |             _log = LogManager.GetCurrentClassLogger(); | ||||||
| @@ -37,6 +38,7 @@ namespace NadekoBot.Services.CustomReactions | |||||||
|             _perms = perms; |             _perms = perms; | ||||||
|             _cmd = cmd; |             _cmd = cmd; | ||||||
|             _bc = bc; |             _bc = bc; | ||||||
|  |             _strings = strings; | ||||||
|              |              | ||||||
|             var items = uow.CustomReactions.GetAll(); |             var items = uow.CustomReactions.GetAll(); | ||||||
|             GuildReactions = new ConcurrentDictionary<ulong, CustomReaction[]>(items.Where(g => g.GuildId != null && g.GuildId != 0).GroupBy(k => k.GuildId.Value).ToDictionary(g => g.Key, g => g.ToArray())); |             GuildReactions = new ConcurrentDictionary<ulong, CustomReaction[]>(items.Where(g => g.GuildId != null && g.GuildId != 0).GroupBy(k => k.GuildId.Value).ToDictionary(g => g.Key, g => g.ToArray())); | ||||||
| @@ -109,7 +111,7 @@ namespace NadekoBot.Services.CustomReactions | |||||||
|                         { |                         { | ||||||
|                             if (pc.Verbose) |                             if (pc.Verbose) | ||||||
|                             { |                             { | ||||||
|                                 var returnMsg = $"Permission number #{index + 1} **{pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), sg)}** is preventing this action."; |                                 var returnMsg = _strings.GetText("trigger", guild.Id, "Permissions".ToLowerInvariant(), index + 1, Format.Bold(pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), (SocketGuild)guild))); | ||||||
|                                 try { await msg.Channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } |                                 try { await msg.Channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } | ||||||
|                                 _log.Info(returnMsg); |                                 _log.Info(returnMsg); | ||||||
|                             } |                             } | ||||||
|   | |||||||
| @@ -19,15 +19,18 @@ namespace NadekoBot.Services.Games | |||||||
|         private readonly Logger _log; |         private readonly Logger _log; | ||||||
|         private readonly PermissionService _perms; |         private readonly PermissionService _perms; | ||||||
|         private readonly CommandHandler _cmd; |         private readonly CommandHandler _cmd; | ||||||
|  |         private readonly NadekoStrings _strings; | ||||||
|  |  | ||||||
|         public ConcurrentDictionary<ulong, Lazy<ChatterBotSession>> ChatterBotGuilds { get; } |         public ConcurrentDictionary<ulong, Lazy<ChatterBotSession>> ChatterBotGuilds { get; } | ||||||
|  |  | ||||||
|         public ChatterBotService(DiscordSocketClient client, PermissionService perms, IEnumerable<GuildConfig> gcs, CommandHandler cmd) |         public ChatterBotService(DiscordSocketClient client, PermissionService perms, IEnumerable<GuildConfig> gcs,  | ||||||
|  |             CommandHandler cmd, NadekoStrings strings) | ||||||
|         { |         { | ||||||
|             _client = client; |             _client = client; | ||||||
|             _log = LogManager.GetCurrentClassLogger(); |             _log = LogManager.GetCurrentClassLogger(); | ||||||
|             _perms = perms; |             _perms = perms; | ||||||
|             _cmd = cmd; |             _cmd = cmd; | ||||||
|  |             _strings = strings; | ||||||
|  |  | ||||||
|             ChatterBotGuilds = new ConcurrentDictionary<ulong, Lazy<ChatterBotSession>>( |             ChatterBotGuilds = new ConcurrentDictionary<ulong, Lazy<ChatterBotSession>>( | ||||||
|                     gcs.Where(gc => gc.CleverbotEnabled) |                     gcs.Where(gc => gc.CleverbotEnabled) | ||||||
| @@ -102,7 +105,7 @@ namespace NadekoBot.Services.Games | |||||||
|                     if (pc.Verbose) |                     if (pc.Verbose) | ||||||
|                     { |                     { | ||||||
|                         //todo move this to permissions |                         //todo move this to permissions | ||||||
|                         var returnMsg = $"Permission number #{index + 1} **{pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), sg)}** is preventing this action."; |                         var returnMsg = _strings.GetText("trigger", guild.Id, "Permissions".ToLowerInvariant(), index + 1, Format.Bold(pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), (SocketGuild)guild))); | ||||||
|                         try { await usrMsg.Channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } |                         try { await usrMsg.Channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } | ||||||
|                         _log.Info(returnMsg); |                         _log.Info(returnMsg); | ||||||
|                     } |                     } | ||||||
|   | |||||||
| @@ -20,16 +20,18 @@ namespace NadekoBot.Services.Permissions | |||||||
|         private readonly DbService _db; |         private readonly DbService _db; | ||||||
|         private readonly Logger _log; |         private readonly Logger _log; | ||||||
|         private readonly CommandHandler _cmd; |         private readonly CommandHandler _cmd; | ||||||
|  |         private readonly NadekoStrings _strings; | ||||||
|  |  | ||||||
|         //guildid, root permission |         //guildid, root permission | ||||||
|         public ConcurrentDictionary<ulong, PermissionCache> Cache { get; } = |         public ConcurrentDictionary<ulong, PermissionCache> Cache { get; } = | ||||||
|             new ConcurrentDictionary<ulong, PermissionCache>(); |             new ConcurrentDictionary<ulong, PermissionCache>(); | ||||||
|  |  | ||||||
|         public PermissionService(DiscordSocketClient client, DbService db, BotConfig bc, CommandHandler cmd) |         public PermissionService(DiscordSocketClient client, DbService db, BotConfig bc, CommandHandler cmd, NadekoStrings strings) | ||||||
|         { |         { | ||||||
|             _log = LogManager.GetCurrentClassLogger(); |             _log = LogManager.GetCurrentClassLogger(); | ||||||
|             _db = db; |             _db = db; | ||||||
|             _cmd = cmd; |             _cmd = cmd; | ||||||
|  |             _strings = strings; | ||||||
|  |  | ||||||
|             var sw = Stopwatch.StartNew(); |             var sw = Stopwatch.StartNew(); | ||||||
|             if (client.ShardId == 0) |             if (client.ShardId == 0) | ||||||
| @@ -205,11 +207,9 @@ WHERE secondaryTargetName LIKE '.%' OR | |||||||
|                 PermissionCache pc = GetCache(guild.Id); |                 PermissionCache pc = GetCache(guild.Id); | ||||||
|                 if (!resetCommand && !pc.Permissions.CheckPermissions(msg, commandName, moduleName, out int index)) |                 if (!resetCommand && !pc.Permissions.CheckPermissions(msg, commandName, moduleName, out int index)) | ||||||
|                 { |                 { | ||||||
|                     var returnMsg = $"Permission number #{index + 1} **{pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), (SocketGuild)guild)}** is preventing this action."; |  | ||||||
|                     if (pc.Verbose) |                     if (pc.Verbose) | ||||||
|                         try { await channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } |                         try { await channel.SendErrorAsync(_strings.GetText("trigger", guild.Id, "Permissions".ToLowerInvariant(), index + 1, Format.Bold(pc.Permissions[index].GetCommand(_cmd.GetPrefix(guild), (SocketGuild)guild)))).ConfigureAwait(false); } catch { } | ||||||
|                     return true; |                     return true; | ||||||
|                     //return new ExecuteCommandResult(cmd, pc, SearchResult.FromError(CommandError.Exception, returnMsg)); |  | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -222,7 +222,6 @@ WHERE secondaryTargetName LIKE '.%' OR | |||||||
|                         if (pc.Verbose) |                         if (pc.Verbose) | ||||||
|                             try { await channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } |                             try { await channel.SendErrorAsync(returnMsg).ConfigureAwait(false); } catch { } | ||||||
|                         return true; |                         return true; | ||||||
|                         //return new ExecuteCommandResult(cmd, pc, SearchResult.FromError(CommandError.Exception, $"You need the **{pc.PermRole}** role in order to use permission commands.")); |  | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -154,6 +154,7 @@ | |||||||
|   "administration_old_topic": "Old topic", |   "administration_old_topic": "Old topic", | ||||||
|   "administration_perms": "Error. Most likely I don't have sufficient permissions.", |   "administration_perms": "Error. Most likely I don't have sufficient permissions.", | ||||||
|   "permissions_perms_reset": "Permissions for this server are reset.", |   "permissions_perms_reset": "Permissions for this server are reset.", | ||||||
|  |   "permissions_trigger": "Permission number #{0} {1} is preventing this action.", | ||||||
|   "administration_prot_active": "Active protections", |   "administration_prot_active": "Active protections", | ||||||
|   "administration_prot_disable": "{0} has been **disabled** on this server.", |   "administration_prot_disable": "{0} has been **disabled** on this server.", | ||||||
|   "administration_prot_enable": "{0} Enabled", |   "administration_prot_enable": "{0} Enabled", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user