2023-03-16 23:40:17 +01:00
|
|
|
|
import discord
|
|
|
|
|
|
from discord.ext import commands
|
|
|
|
|
|
from logging import getLogger
|
|
|
|
|
|
from jeevesbot import env
|
|
|
|
|
|
|
|
|
|
|
|
# setup logging
|
|
|
|
|
|
log = getLogger(__name__)
|
|
|
|
|
|
e = discord.Embed()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Flair(commands.Cog):
|
2023-03-19 21:01:53 +01:00
|
|
|
|
""" This part of the bot is responsible for giving users roles! """
|
2023-03-16 23:40:17 +01:00
|
|
|
|
def __init__(self, bot):
|
|
|
|
|
|
self.bot = bot
|
|
|
|
|
|
self.message_id = 1084937456819908679
|
|
|
|
|
|
self.reactions = {
|
|
|
|
|
|
'1️⃣' : env.FLAIRROLES[0],
|
|
|
|
|
|
'2️⃣' : env.FLAIRROLES[1],
|
|
|
|
|
|
'3️⃣' : env.FLAIRROLES[2],
|
|
|
|
|
|
'4️⃣' : env.FLAIRROLES[3],
|
|
|
|
|
|
'5️⃣' : env.FLAIRROLES[4],
|
|
|
|
|
|
'6️⃣' : env.FLAIRROLES[5],
|
|
|
|
|
|
'👍' : env.FLAIRROLES[6],
|
|
|
|
|
|
'👎' : env.FLAIRROLES[7],
|
|
|
|
|
|
'🔞' : env.FLAIRROLES[8],
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-03-19 21:01:53 +01:00
|
|
|
|
|
2023-03-16 23:40:17 +01:00
|
|
|
|
@commands.Cog.listener()
|
|
|
|
|
|
async def on_raw_reaction_add(self, payload):
|
|
|
|
|
|
try:
|
|
|
|
|
|
if payload.message_id == self.message_id and str(payload.emoji) in self.reactions:
|
|
|
|
|
|
guild = self.bot.get_guild(payload.guild_id)
|
|
|
|
|
|
member = guild.get_member(payload.user_id)
|
|
|
|
|
|
role_id = self.reactions[str(payload.emoji)]
|
|
|
|
|
|
role = guild.get_role(role_id)
|
|
|
|
|
|
flairrole = guild.get_role(env.FLAIRROLE[0])
|
|
|
|
|
|
await member.add_roles(flairrole)
|
|
|
|
|
|
await member.add_roles(role)
|
|
|
|
|
|
log.info(f'Added role "{role}" to {member}')
|
|
|
|
|
|
except:
|
|
|
|
|
|
log.debug("Reaction not found.")
|
|
|
|
|
|
|
2023-03-19 21:01:53 +01:00
|
|
|
|
|
2023-03-16 23:40:17 +01:00
|
|
|
|
@commands.Cog.listener()
|
|
|
|
|
|
async def on_raw_reaction_remove(self, payload):
|
|
|
|
|
|
try:
|
|
|
|
|
|
if payload.message_id == self.message_id and str(payload.emoji) in self.reactions:
|
|
|
|
|
|
guild = self.bot.get_guild(payload.guild_id)
|
|
|
|
|
|
member = guild.get_member(payload.user_id)
|
|
|
|
|
|
role_id = self.reactions[str(payload.emoji)]
|
|
|
|
|
|
role = guild.get_role(role_id)
|
|
|
|
|
|
await member.remove_roles(role)
|
|
|
|
|
|
log.info(f'Removed role "{role}" from {member}')
|
|
|
|
|
|
except:
|
|
|
|
|
|
log.debug("Could not remove role")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@commands.Cog.listener()
|
|
|
|
|
|
async def on_ready(self):
|
|
|
|
|
|
log.info(f'module active')
|
|
|
|
|
|
|
2023-03-19 21:01:53 +01:00
|
|
|
|
|
2023-03-16 23:40:17 +01:00
|
|
|
|
async def setup(bot):
|
|
|
|
|
|
await bot.add_cog(Flair(bot))
|