From f19ef5a662c0d61b7d4a057b4e6d9ee0efca8ab6 Mon Sep 17 00:00:00 2001 From: Noikoio Date: Fri, 11 Aug 2017 08:23:20 -0700 Subject: [PATCH] Implement MessageReceived delegate --- Feature/AutoRespond/AutoRespond.cs | 18 ++++++++++++++++-- Feature/AutoRespond/AutoRespond_Process.cs | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 Feature/AutoRespond/AutoRespond_Process.cs diff --git a/Feature/AutoRespond/AutoRespond.cs b/Feature/AutoRespond/AutoRespond.cs index 0a4c8bd..918e620 100644 --- a/Feature/AutoRespond/AutoRespond.cs +++ b/Feature/AutoRespond/AutoRespond.cs @@ -21,13 +21,27 @@ namespace Noikoio.RegexBot.Feature.AutoRespond /// /// /// - class AutoRespond : BotFeature + partial class AutoRespond : BotFeature { public override string Name => "AutoRespond"; public AutoRespond(DiscordSocketClient client) : base(client) { - throw new NotImplementedException(); + client.MessageReceived += Client_MessageReceived; + } + + private async Task Client_MessageReceived(SocketMessage arg) + { + // Determine channel type - if not a guild channel, stop. + var ch = arg.Channel as SocketGuildChannel; + if (ch == null) return; + + // TODO either search server by name or remove server name support entirely + var defs = GetConfig(ch.Guild.Id) as IEnumerable; + if (defs == null) return; + + foreach (var def in defs) + await Task.Run(async () => await ProcessMessage(arg, def)); } [ConfigSection("autoresponses")] diff --git a/Feature/AutoRespond/AutoRespond_Process.cs b/Feature/AutoRespond/AutoRespond_Process.cs new file mode 100644 index 0000000..0cd5418 --- /dev/null +++ b/Feature/AutoRespond/AutoRespond_Process.cs @@ -0,0 +1,19 @@ +using Discord.WebSocket; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Noikoio.RegexBot.Feature.AutoRespond +{ + partial class AutoRespond + { + private async Task ProcessMessage(SocketMessage msg, ResponseDefinition def) + { + // Filtering checks + + // Rate limit checks + + } + } +}