public ReactionRoleService([NotNull] DiscordSocketClient discordClient, [NotNull] ILogger <ReactionRoleService> logger, [NotNull] IDiscordServerLogBuilder serverLogBuilder, [NotNull] IEnumerable <ReactionRole> reactionRoles) { DiscordClient = discordClient ?? throw new ArgumentNullException(nameof(discordClient)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); ServerLogBuilder = serverLogBuilder; if (reactionRoles is null) { throw new ArgumentNullException(nameof(reactionRoles)); } DiscordClient.ReactionAdded += OnReactionAdded; DiscordClient.ReactionRemoved += OnReactionRemoved; MonitoredReactions = reactionRoles .GroupBy(x => x.MessageId) .ToDictionary(group => group.Key, group => group.ToDictionary( x => x.EmoteName, x => x)); }
public static async Task LogErrorToServerAsync(this SocketGuild @this, DiscordServerConfiguration serverConfig, IDiscordServerLogBuilder embedBuilder) { await LogToServerAsync(@this, DiscordServerLogLevel.Error, serverConfig, embedBuilder); }
public static async Task LogToServerAsync(this SocketGuild @this, DiscordServerLogLevel logLevel, DiscordServerConfiguration serverConfig, IDiscordServerLogBuilder embedBuilder) { if (!serverConfig.LogToServer || logLevel < serverConfig.LogLevel) { return; } var channel = @this.GetTextChannel(serverConfig.ServerLogChannelId); if (channel is null) { return; } await channel.SendMessageAsync("", false, embedBuilder.Build()); }
public ReactionRoleService([NotNull] DiscordSocketClient discordClient, [NotNull] ILogger <ReactionRoleService> logger, [NotNull] IDiscordServerLogBuilder serverLogBuilder) : this( discordClient, logger, serverLogBuilder, Enumerable.Empty <ReactionRole>()) { }