2018-10-08 17:51:19 +00:00
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Threading.Tasks;
|
2018-10-09 15:18:19 +00:00
|
|
|
using DeukBot4.Database.ServerSettings;
|
|
|
|
using Discord;
|
2018-10-08 17:51:19 +00:00
|
|
|
using Discord.WebSocket;
|
|
|
|
|
|
|
|
namespace DeukBot4.MessageHandlers.JokeHandling
|
|
|
|
{
|
|
|
|
public static class JokeHandler
|
|
|
|
{
|
|
|
|
public static readonly Dictionary<string, IJokeController> Jokes = new Dictionary<string, IJokeController>();
|
|
|
|
|
|
|
|
public static void Initialize()
|
|
|
|
{
|
|
|
|
var jokes = typeof(JokeHandler).Assembly.GetTypes()
|
|
|
|
.Where(x => typeof(IJokeController).IsAssignableFrom(x) && !x.IsInterface);
|
|
|
|
foreach (var joke in jokes)
|
|
|
|
{
|
|
|
|
var c = (IJokeController)Activator.CreateInstance(joke);
|
2018-10-09 15:18:19 +00:00
|
|
|
Jokes.Add(c.Id.ToLowerInvariant(), c);
|
2018-10-08 17:51:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static async Task RunJokes(SocketMessage message)
|
|
|
|
{
|
2018-10-09 15:18:19 +00:00
|
|
|
if (message.Channel is IGuildChannel guildChannel)
|
2018-10-08 17:51:19 +00:00
|
|
|
{
|
2018-10-09 15:18:19 +00:00
|
|
|
var guildSettings = ServerSettingHandler.GetSettings(guildChannel.GuildId);
|
|
|
|
var jokes = guildSettings.EnabledJokes;
|
|
|
|
foreach (var enabledJoke in jokes)
|
|
|
|
{
|
|
|
|
var jokeController = Jokes[enabledJoke];
|
|
|
|
jokeController.Run(message);
|
|
|
|
}
|
2018-10-08 17:51:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|