from discord.ext import commands

from funcs import logThis, fiarReactionTest, monopolyReactionTest, emojiToCommand, fiar, runMonopoly, hangmanReactionTest, runHangman

class ReactionCog(commands.Cog):
    def __init__(self, client):
        """Listens for reactions."""
        self.client = client

    @commands.Cog.listener()
    async def on_reaction_add(self, reaction,user):
        if user.bot == False:
            message = reaction.message
            channel = message.channel
            logThis(user.display_name+" reacted to a message",str(channel.id))
            try:
                fourInARowTheirTurn, piece = fiarReactionTest(channel,message,"#"+str(user.id))
            except:
                fourInARowTheirTurn = False

            if fourInARowTheirTurn:
                place = emojiToCommand(reaction.emoji)
                await fiar(channel," place "+str(piece)+" "+str(place),user.id)
            elif monopolyReactionTest(channel,message):
                await runMonopoly(channel,"roll","#"+str(user.id))
            elif hangmanReactionTest(channel,message):
                guess = chr(ord(reaction.emoji)-127397)
                await runHangman(channel,"#"+str(user.id),command="guess "+guess)
def setup(client):
    client.add_cog(ReactionCog(client))
