adding a second server for the reaction adding roles
This commit is contained in:
parent
a3820ec569
commit
abd2ffb116
1 changed files with 28 additions and 20 deletions
|
@ -14,15 +14,21 @@ class ConfrerieDuKassoulait(commands.Cog):
|
||||||
"""Unique pour le serveur Discord "La confrérie du Kassoulait"."""
|
"""Unique pour le serveur Discord "La confrérie du Kassoulait"."""
|
||||||
def __init__(self, client):
|
def __init__(self, client):
|
||||||
self.client = client
|
self.client = client
|
||||||
self.role_message_id = 882785207235788800 # ID of the message that can be reacted to to add/remove a role.
|
self.messageDictAndEmojiToRoles = {
|
||||||
self.emoji_to_role = {
|
882785207235788800:
|
||||||
882783004706095194: 882616261626970112, # elephant - l1
|
{
|
||||||
882783004697714789: 882616188830629998, # gorilla - l2
|
882783004706095194: 882616261626970112, # elephant - l1
|
||||||
882783004416675881: 882616082022670387, # cat - - l3
|
882783004697714789: 882616188830629998, # gorilla - l2
|
||||||
882783005108744202: 882616475918147654, # rabbit - visiteurs
|
882783004416675881: 882616082022670387, # cat - - l3
|
||||||
882783004911624212: 882616714133635093 # dog - alumni
|
882783005108744202: 882616475918147654, # rabbit - visiteurs
|
||||||
|
882783004911624212: 882616714133635093 # dog - alumni
|
||||||
|
},
|
||||||
|
888001335105036329:
|
||||||
|
{
|
||||||
|
"1️⃣": 887999417892880474, # 1 - étudiant
|
||||||
|
"2️⃣": 887999473513549845, # 2 - professeur
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_member_join(self, member):
|
async def on_member_join(self, member):
|
||||||
"""Triggered when a member join a guild"""
|
"""Triggered when a member join a guild"""
|
||||||
|
@ -118,25 +124,27 @@ class ConfrerieDuKassoulait(commands.Cog):
|
||||||
for _ in range(0, 2):
|
for _ in range(0, 2):
|
||||||
await Internet(self.client)._cat(self, await self.client.get_context(message))
|
await Internet(self.client)._cat(self, await self.client.get_context(message))
|
||||||
|
|
||||||
# encore un autre serveur
|
# encore d'autre serveur
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_raw_reaction_add(self, payload):
|
async def on_raw_reaction_add(self, payload):
|
||||||
"""Add a role when a special reaction to a special message is added."""
|
"""Add a role when a special reaction to a special message is added."""
|
||||||
if payload.message_id == self.role_message_id:
|
try:
|
||||||
try:
|
try:
|
||||||
self.emoji_to_role[payload.emoji.id]
|
await payload.member.add_roles(payload.member.guild.get_role(self.messageDictAndEmojiToRoles[payload.message_id][payload.emoji.id]))
|
||||||
except KeyError:
|
except:
|
||||||
return
|
await payload.member.add_roles(payload.member.guild.get_role(self.messageDictAndEmojiToRoles[payload.message_id][str(payload.emoji)]))
|
||||||
await payload.member.add_roles(payload.member.guild.get_role(self.emoji_to_role[payload.emoji.id]))
|
except KeyError:
|
||||||
|
return
|
||||||
|
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_raw_reaction_remove(self, payload):
|
async def on_raw_reaction_remove(self, payload):
|
||||||
"""Remove a role when a special reaction to a special message is removed."""
|
"""Remove a role when a special reaction to a special message is removed."""
|
||||||
if payload.message_id == self.role_message_id:
|
try:
|
||||||
try:
|
|
||||||
self.emoji_to_role[payload.emoji.id]
|
|
||||||
except KeyError:
|
|
||||||
return
|
|
||||||
guild = discord.utils.find(lambda g: g.id == payload.guild_id, self.client.guilds)
|
guild = discord.utils.find(lambda g: g.id == payload.guild_id, self.client.guilds)
|
||||||
member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members)
|
member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members)
|
||||||
await member.remove_roles(guild.get_role(self.emoji_to_role[payload.emoji.id]))
|
try: # essaie avec l'emoji ID
|
||||||
|
await member.remove_roles(guild.get_role(self.messageDictAndEmojiToRoles[payload.message_id][payload.emoji.id]))
|
||||||
|
except: # essaie avec l'emoji
|
||||||
|
await member.remove_roles(guild.get_role(self.messageDictAndEmojiToRoles[payload.message_id][str(payload.emoji)]))
|
||||||
|
except KeyError:
|
||||||
|
return
|
||||||
|
|
Reference in a new issue