From 2787fab689800d570d3667c7e1ac3ebadba7bb93 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 12 Aug 2018 13:17:10 +0200 Subject: [PATCH] Moved joke message handler to separate class for organization --- DeukBot4/MessageHandlers/JokeHandlers.cs | 71 ++++++++++++++++++++++++ DeukBot4/MessageHandlers/MainHandler.cs | 62 +-------------------- 2 files changed, 73 insertions(+), 60 deletions(-) create mode 100644 DeukBot4/MessageHandlers/JokeHandlers.cs diff --git a/DeukBot4/MessageHandlers/JokeHandlers.cs b/DeukBot4/MessageHandlers/JokeHandlers.cs new file mode 100644 index 0000000..4359044 --- /dev/null +++ b/DeukBot4/MessageHandlers/JokeHandlers.cs @@ -0,0 +1,71 @@ +using System.Linq; +using System.Threading.Tasks; +using DeukBot4.APIHandlers; +using DeukBot4.Utilities; +using Discord; +using Discord.WebSocket; + +namespace DeukBot4.MessageHandlers +{ + public static class JokeHandlers + { + public static async Task DeltaHandler(SocketMessage message) + { + var lowerCasedContent = message.Content.ToLowerInvariant().RemoveSpecialCharacters(); + if (lowerCasedContent.Contains("origin")) + return; + + var lowerSplit = lowerCasedContent.Split(' '); + if (lowerSplit.Select(s => Lehvenstein.LevenshteinDistance(s, "delta")).Any(diff => diff <= 1)) + { + var warning = "uhh excuse me it's called\n Origin and it's an art"; + await message.Channel.SendFileAsync(await CatPicHandler.GetCatPicture(warning), "cat_pic.png"); + } + } + + public static async Task DadJokeHandler(SocketMessage message) + { + if (!(message.Author is IGuildUser guildUser)) + return; + string newName; + var content = message.Content; + var lower = content.ToLowerInvariant(); + + if (lower.StartsWith("hi ")) + { + lower = lower.Remove(0, 3); + content = content.Remove(0, 3); + } + else if (lower.StartsWith("hello ")) + { + lower = lower.Remove(0, 6); + content = content.Remove(0, 6); + } + if (lower[0] != 'i') + return; + if (lower.StartsWith("i'm ")) + { + newName = content.Remove(0, 4); + } + else if (lower.StartsWith("im ")) + { + newName = content.Remove(0, 3); + } + else if (lower.StartsWith("i am ")) + { + newName = content.Remove(0, 5); + } + else + { + return; + } + if (newName.Length > 15) + return; + + await message.Channel.SendMessageAsync($"Hi {newName}, i'm Deukbot"); + await guildUser.ModifyAsync(user => user.Nickname = newName); + + } + + } +} \ No newline at end of file diff --git a/DeukBot4/MessageHandlers/MainHandler.cs b/DeukBot4/MessageHandlers/MainHandler.cs index 1480cbc..63c2fa1 100644 --- a/DeukBot4/MessageHandlers/MainHandler.cs +++ b/DeukBot4/MessageHandlers/MainHandler.cs @@ -23,8 +23,8 @@ namespace DeukBot4.MessageHandlers CommandHandler.CommandHandler.HandleMessage(message); HandlePrivateMessage(message); ImageBackupHandler.Backup(message); - DeltaHandler(message); - DadJokeHandler(message); + JokeHandlers.DeltaHandler(message); + JokeHandlers.DadJokeHandler(message); #pragma warning restore 4014 } catch (Exception e) @@ -62,63 +62,5 @@ namespace DeukBot4.MessageHandlers } } - private static async Task DeltaHandler(SocketMessage message) - { - var lowerCasedContent = message.Content.ToLowerInvariant().RemoveSpecialCharacters(); - if (lowerCasedContent.Contains("origin")) - return; - - var lowerSplit = lowerCasedContent.Split(' '); - if (lowerSplit.Select(s => Lehvenstein.LevenshteinDistance(s, "delta")).Any(diff => diff <= 1)) - { - var warning = "uhh excuse me it's called\n Origin and it's an art"; - await message.Channel.SendFileAsync(await CatPicHandler.GetCatPicture(warning), "cat_pic.png"); - } - - } - - private static async Task DadJokeHandler(SocketMessage message) - { - if (!(message.Author is IGuildUser guildUser)) - return; - string newName; - var content = message.Content; - var lower = content.ToLowerInvariant(); - - if (lower.StartsWith("hi ")) - { - lower = lower.Remove(0, 3); - content = content.Remove(0, 3); - } - else if (lower.StartsWith("hello ")) - { - lower = lower.Remove(0, 6); - content = content.Remove(0, 6); - } - if (lower[0] != 'i') - return; - if (lower.StartsWith("i'm ")) - { - newName = content.Remove(0, 4); - } - else if (lower.StartsWith("im ")) - { - newName = content.Remove(0, 3); - } - else if (lower.StartsWith("i am ")) - { - newName = content.Remove(0, 5); - } - else - { - return; - } - if (newName.Length > 15) - return; - - await message.Channel.SendMessageAsync($"Hi {newName}, i'm Deukbot"); - await guildUser.ModifyAsync(user => user.Nickname = newName); - - } } } \ No newline at end of file