Skip to content

Commit

Permalink
Move all event logging to LogHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
Benjamin Hook committed Jan 18, 2020
1 parent b434952 commit 062ceef
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 53 deletions.
14 changes: 8 additions & 6 deletions src/Evil.bot.ConsoleApp/Client.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ internal class Client
private readonly DiscordSocketClient _client;
private readonly CommandService _commands;
private readonly ConfigModel _config;
private readonly LogHandler _logger;

//private readonly LogHandler _logger;
private readonly IServiceProvider _services;

public Client(CommandService commands = null, ConfigModel config = null, LogHandler logger = null)
Expand All @@ -27,7 +28,7 @@ public Client(CommandService commands = null, ConfigModel config = null, LogHand
{
LogLevel = LogSeverity.Verbose,
AlwaysDownloadUsers = true,
MessageCacheSize = 100
MessageCacheSize = 500
});

// Create new CommandService
Expand All @@ -38,16 +39,17 @@ public Client(CommandService commands = null, ConfigModel config = null, LogHand
CaseSensitiveCommands = false
});

// Set up configModel, logger, and services
// Set up config and services for use in initialization
_config = config ?? new ConfigHandler().GetConfig();
_logger = logger ?? new LogHandler();
//_logger = logger ?? new LogHandler();
_services = ConfigureServices();
}

public async Task InitializeAsync()
{
// Initialize DiscordEventHandler and CommandHandler services
// Initialize CommandHandler, LogHandler, and DiscordEventHandler services
await _services.GetRequiredService<CommandHandler>().InitializeAsync();
await _services.GetRequiredService<LogHandler>().InitializeAsync();
await _services.GetRequiredService<DiscordEventHandler>().InitializeAsync();

// Login with client and start
Expand All @@ -66,9 +68,9 @@ private ServiceProvider ConfigureServices()
.AddSingleton(_client)
.AddSingleton(_commands)
.AddSingleton<CommandHandler>()
.AddSingleton<LogHandler>()
.AddSingleton<DiscordEventHandler>()
.AddSingleton<ConfigHandler>()
.AddSingleton<LogHandler>()
.BuildServiceProvider();
}
}
Expand Down
23 changes: 12 additions & 11 deletions src/Evil.bot.ConsoleApp/Handlers/DiscordEventHandler.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
using Discord;
using Discord.WebSocket;
using Evil.bot.ConsoleApp.Models;
using System;
using System.Threading.Tasks;

namespace Evil.bot.ConsoleApp.Handlers
namespace Evil.bot.ConsoleApp.Handlers
{
using System;
using System.Threading.Tasks;

using Discord;
using Discord.WebSocket;
using Discord.Commands;

using Evil.bot.ConsoleApp.Models;

/// <summary>
/// Put your subscriptions to events here!
/// Just one non awaited async Method per functionality you want to provide
Expand Down Expand Up @@ -80,13 +81,13 @@ public async Task InitializeAsync()

private async Task ChannelCreated(SocketChannel channel)
{
_logger.Info($"Channel {channel} created");
_logger.ChannelCreated(channel);
// _logger.Info($"Channel {channel} created");
// _logger.ChannelCreated(channel);
}

private async Task ChannelDestroyed(SocketChannel channel)
{
_logger.Info($"Channel {channel} destroyed");
// _logger.Info($"Channel {channel} destroyed");
}

private async Task ChannelUpdated(SocketChannel channelBefore, SocketChannel channelAfter)
Expand Down Expand Up @@ -142,7 +143,7 @@ private async Task LeftGuild(SocketGuild guild)

private async Task Log(LogMessage logMessage)
{
_logger.Neutral(logMessage.Message);
//_logger.Neutral(logMessage.Message);
}

private async Task LoggedIn()
Expand Down
129 changes: 93 additions & 36 deletions src/Evil.bot.ConsoleApp/Handlers/LogHandler.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
namespace Evil.bot.ConsoleApp.Handlers
{
using System;
using System.Threading.Tasks;

using Discord;
using Discord.WebSocket;
using Discord.Commands;

using Evil.bot.ConsoleApp.Models;

public class LogHandler
{
Expand All @@ -27,6 +31,58 @@ public class LogHandler
// return Task.CompletedTask;
//}

private readonly DiscordSocketClient _client;
private readonly CommandService _commands;
private readonly ConfigModel _config;

public LogHandler(DiscordSocketClient client, CommandService commands)
{
_client = client;
_commands = commands;
_config ??= new ConfigHandler().GetConfig();
}

public async Task InitializeAsync()
{
_client.ChannelCreated += ChannelCreated;
_client.ChannelDestroyed += ChannelDestroyed;
_client.ChannelUpdated += ChannelUpdated;
_client.Connected += Connected;
_client.CurrentUserUpdated += CurrentUserUpdated;
_client.Disconnected += Disconnected;
_client.GuildAvailable += GuildAvailable;
_client.GuildMembersDownloaded += GuildMembersDownloaded;
_client.GuildMemberUpdated += GuildMemberUpdated;
_client.GuildUnavailable += GuildUnavailable;
_client.GuildUpdated += GuildUpdated;
_client.JoinedGuild += JoinedGuild;
_client.LatencyUpdated += LatencyUpdated;
_client.LeftGuild += LeftGuild;
_client.Log += Log;
_commands.Log += Log;
_client.LoggedIn += LoggedIn;
_client.LoggedOut += LoggedOut;
_client.MessageDeleted += MessageDeleted;
_client.MessageReceived += MessageReceived;
_client.MessageUpdated += MessageUpdated;
_client.ReactionAdded += ReactionAdded;
_client.ReactionRemoved += ReactionRemoved;
_client.ReactionsCleared += ReactionsCleared;
_client.Ready += Ready;
_client.RecipientAdded += RecipientAdded;
_client.RecipientRemoved += RecipientRemoved;
_client.RoleCreated += RoleCreated;
_client.RoleDeleted += RoleDeleted;
_client.RoleUpdated += RoleUpdated;
_client.UserBanned += UserBanned;
_client.UserIsTyping += UserIsTyping;
_client.UserJoined += UserJoined;
_client.UserLeft += UserLeft;
_client.UserUnbanned += UserUnbanned;
_client.UserUpdated += UserUpdated;
_client.UserVoiceStateUpdated += UserVoiceStateUpdated;
}

public void Neutral(string message) => ConsoleLog(message, ConsoleColor.Gray);

public void Good(string message) => ConsoleLog(message, ConsoleColor.Green);
Expand Down Expand Up @@ -55,150 +111,151 @@ private void DiscordLog(string message, ConsoleColor color)
Console.WriteLine($" {message}");
}

public void ChannelCreated(SocketChannel channel)
private async Task ChannelCreated(SocketChannel channel)
{
ConsoleLog($"Channel {channel} created", ConsoleColor.Cyan);
DiscordLog($"Channel {channel} created", ConsoleColor.Cyan);
}

public void ChannelDestroyed(SocketChannel channel)
private async Task ChannelDestroyed(SocketChannel channel)
{
//_logger.Info($"Channel {channel} destroyed");
}

public void ChannelUpdated(SocketChannel channelBefore, SocketChannel channelAfter)
private async Task ChannelUpdated(SocketChannel channelBefore, SocketChannel channelAfter)
{
}

public void Connected()
private async Task Connected()
{
}

public void CurrentUserUpdated(SocketSelfUser userBefore, SocketSelfUser userAfter)
private async Task CurrentUserUpdated(SocketSelfUser userBefore, SocketSelfUser userAfter)
{
}

public void Disconnected(Exception exception)
private async Task Disconnected(Exception exception)
{
}

public void GuildAvailable(SocketGuild guild)
private async Task GuildAvailable(SocketGuild guild)
{
}

public void GuildMembersDownloaded(SocketGuild guild)
private async Task GuildMembersDownloaded(SocketGuild guild)
{
}

public void GuildMemberUpdated(SocketGuildUser userBefore, SocketGuildUser userAfter)
private async Task GuildMemberUpdated(SocketGuildUser userBefore, SocketGuildUser userAfter)
{
}

public void GuildUnavailable(SocketGuild guild)
private async Task GuildUnavailable(SocketGuild guild)
{
}

public void GuildUpdated(SocketGuild guildBefore, SocketGuild guildAfter)
private async Task GuildUpdated(SocketGuild guildBefore, SocketGuild guildAfter)
{
}

public void JoinedGuild(SocketGuild guild)
private async Task JoinedGuild(SocketGuild guild)
{
}

public void LatencyUpdated(int latencyBefore, int latencyAfter)
private async Task LatencyUpdated(int latencyBefore, int latencyAfter)
{
}

public void LeftGuild(SocketGuild guild)
private async Task LeftGuild(SocketGuild guild)
{
}

public void Log(LogMessage logMessage)
private async Task Log(LogMessage logMessage)
{
Neutral(logMessage.Message);
}

public void LoggedIn()
private async Task LoggedIn()
{
}

public void LoggedOut()
private async Task LoggedOut()
{
}

public void MessageDeleted(Cacheable<IMessage, ulong> cacheMessage, ISocketMessageChannel channel)
private async Task MessageDeleted(Cacheable<IMessage, ulong> cacheMessage, ISocketMessageChannel channel)
{
}

public void MessageReceived(SocketMessage message)
private async Task MessageReceived(SocketMessage message)
{
}

public void MessageUpdated(Cacheable<IMessage, ulong> cacheMessageBefore, SocketMessage messageAfter, ISocketMessageChannel channel)
private async Task MessageUpdated(Cacheable<IMessage, ulong> cacheMessageBefore, SocketMessage messageAfter, ISocketMessageChannel channel)
{
}

public void ReactionAdded(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel, SocketReaction reaction)
private async Task ReactionAdded(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel, SocketReaction reaction)
{
}

public void ReactionRemoved(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel, SocketReaction reaction)
private async Task ReactionRemoved(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel, SocketReaction reaction)
{
}

public void ReactionsCleared(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel)
private async Task ReactionsCleared(Cacheable<IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel)
{
}

public void Ready()
private async Task Ready()
{
}

public void RecipientAdded(SocketGroupUser user)
private async Task RecipientAdded(SocketGroupUser user)
{
}

public void RecipientRemoved(SocketGroupUser user)
private async Task RecipientRemoved(SocketGroupUser user)
{
}

public void RoleCreated(SocketRole role)
private async Task RoleCreated(SocketRole role)
{
}

public void RoleDeleted(SocketRole role)
private async Task RoleDeleted(SocketRole role)
{
}

public void RoleUpdated(SocketRole roleBefore, SocketRole roleAfter)
private async Task RoleUpdated(SocketRole roleBefore, SocketRole roleAfter)
{
}

public void UserBanned(SocketUser user, SocketGuild guild)
private async Task UserBanned(SocketUser user, SocketGuild guild)
{
}

public void UserIsTyping(SocketUser user, ISocketMessageChannel channel)
private async Task UserIsTyping(SocketUser user, ISocketMessageChannel channel)
{
}

public void UserJoined(SocketGuildUser user)
private async Task UserJoined(SocketGuildUser user)
{
}

public void UserLeft(SocketGuildUser user)
private async Task UserLeft(SocketGuildUser user)
{
}

public void UserUnbanned(SocketUser user, SocketGuild guild)
private async Task UserUnbanned(SocketUser user, SocketGuild guild)
{
}

public void UserUpdated(SocketUser oldUser, SocketUser newUser)
private async Task UserUpdated(SocketUser oldUser, SocketUser newUser)
{
}

public void UserVoiceStateUpdated(SocketUser user, SocketVoiceState voiceStateBefore, SocketVoiceState voiceStateAfter)
private async Task UserVoiceStateUpdated(SocketUser user, SocketVoiceState voiceStateBefore, SocketVoiceState voiceStateAfter)
{
}
}
Expand Down

0 comments on commit 062ceef

Please sign in to comment.