From f225d226a2b94caa73c876d819e25e51115271e7 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Fri, 18 May 2018 13:36:06 +0200 Subject: [PATCH] Log DMs in specified channel --- DeukBot4/MessageHandlers/MainHandler.cs | 26 +++++++++++++++++++++++-- DeukBot4/Settings.cs | 2 ++ DeukBot4/Utilities/StringExtensions.cs | 4 ++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/DeukBot4/MessageHandlers/MainHandler.cs b/DeukBot4/MessageHandlers/MainHandler.cs index 7015d1f..3c33674 100644 --- a/DeukBot4/MessageHandlers/MainHandler.cs +++ b/DeukBot4/MessageHandlers/MainHandler.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Threading.Tasks; using DeukBot4.Utilities; +using Discord; using Discord.WebSocket; namespace DeukBot4.MessageHandlers @@ -29,17 +30,38 @@ namespace DeukBot4.MessageHandlers } } + private static ITextChannel _dmChannel; private static async Task HandlePrivateMessage(SocketMessage message) { - if (message.Channel is ISocketPrivateChannel) + if (message.Channel is IPrivateChannel) { await Logger.Log(($"Private Message: {message.Author.Username}- {message.Content}")); + if (_dmChannel == null) + { + _dmChannel = (ITextChannel) Program.Client.GetChannel(Program.Settings.DmChannel); + } + var eb = new EmbedBuilder + { + Author = new EmbedAuthorBuilder + { + Name = message.Author.Username, + IconUrl = message.Author.GetAvatarUrl(), + }, + Description = message.Content, + Color = Color.Gold, + Timestamp = message.CreatedAt, + Footer = new EmbedFooterBuilder + { + Text = $"User ID: {message.Author.Id}" + } + }; + await _dmChannel.SendMessageAsync("", embed: eb.Build()); } } private static async Task DeltaHandler(SocketMessage message) { - var lowerCasedContent = message.Content.RemoveSpecialCharacters(); + var lowerCasedContent = message.Content.ToLowerInvariant().RemoveSpecialCharacters(); if (lowerCasedContent.Contains("origin")) return; diff --git a/DeukBot4/Settings.cs b/DeukBot4/Settings.cs index 544b0e6..4f351ca 100644 --- a/DeukBot4/Settings.cs +++ b/DeukBot4/Settings.cs @@ -20,6 +20,8 @@ namespace DeukBot4 public List BackupChannels { get; private set; } [JsonProperty] public ImageBackupHandler.NextCloudSettings NextcloudSettings { get; private set; } + [JsonProperty] + public ulong DmChannel { get; private set; } public static Settings FromJsonFile(string filepath) diff --git a/DeukBot4/Utilities/StringExtensions.cs b/DeukBot4/Utilities/StringExtensions.cs index 581227b..ba7bf5f 100644 --- a/DeukBot4/Utilities/StringExtensions.cs +++ b/DeukBot4/Utilities/StringExtensions.cs @@ -5,8 +5,8 @@ namespace DeukBot4.Utilities public static class StringExtensions { public static string RemoveSpecialCharacters(this string str) { - StringBuilder sb = new StringBuilder(); - foreach (char c in str) { + var sb = new StringBuilder(); + foreach (var c in str) { if (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c)) { sb.Append(c); }