geekbot/Geekbot.net/Handlers/ReactionHandler.cs
runebaas 83dc2c8e49
Attempt to improve code quality with a fearless refactor
- Completely refactor Program.cs
- Split Handlers into separate files
- Split up the command handler into multiple functions
2020-06-19 03:34:37 +02:00

33 lines
No EOL
1.2 KiB
C#

using System.Threading.Tasks;
using Discord;
using Discord.WebSocket;
using Geekbot.net.Lib.ReactionListener;
namespace Geekbot.net.Handlers
{
public class ReactionHandler
{
private readonly IReactionListener _reactionListener;
public ReactionHandler(IReactionListener reactionListener)
{
_reactionListener = reactionListener;
}
public Task Added(Cacheable<IUserMessage, ulong> cacheable, ISocketMessageChannel socketMessageChannel, SocketReaction reaction)
{
if (reaction.User.Value.IsBot) return Task.CompletedTask;
if (!_reactionListener.IsListener(reaction.MessageId)) return Task.CompletedTask;
_reactionListener.GiveRole(socketMessageChannel, reaction);
return Task.CompletedTask;
}
public Task Removed(Cacheable<IUserMessage, ulong> cacheable, ISocketMessageChannel socketMessageChannel, SocketReaction reaction)
{
if (reaction.User.Value.IsBot) return Task.CompletedTask;
if (!_reactionListener.IsListener(reaction.MessageId)) return Task.CompletedTask;
_reactionListener.RemoveRole(socketMessageChannel, reaction);
return Task.CompletedTask;
}
}
}