FanaticExplorer

discord_custom_emoji

Apr 17th, 2022 (edited)
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.76 KB | None | 0 0
  1. #main.py
  2. import discord
  3. from discord import utils
  4.  
  5. import config
  6.  
  7.  
  8.  
  9. intents = discord.Intents.default()
  10. intents.members = True
  11.  
  12. class MyClient(discord.Client):
  13.     async def on_ready(self):
  14.         print('Logged on as {0}!'.format(self.user))
  15.  
  16.     async def on_raw_reaction_add(self, payload):
  17.         if payload.message_id in config.POST_ID:
  18.             channel = self.get_channel(payload.channel_id) # получаем объект канала
  19.             message = await channel.fetch_message(payload.message_id) # получаем объект сообщения
  20.             member = utils.get(message.guild.members, id=payload.user_id) # получаем объект пользователя который поставил реакцию
  21.  
  22.             try:
  23.                 emoji = str(payload.emoji) # эмоджик который выбрал юзер
  24.                 role = utils.get(message.guild.roles, id=config.ROLES[emoji]) # объект выбранной роли (если есть)
  25.                 await member.add_roles(role)
  26.                 print('[SUCCESS] User {0.display_name} has been granted with role {1.name}'.format(member, role))
  27.            
  28.             except KeyError as e:
  29.                 print('[ERROR] KeyError, no role found for ' + emoji)
  30.             except Exception as e:
  31.                 print(repr(e))
  32.  
  33.     async def on_raw_reaction_remove(self, payload):
  34.         if payload.message_id in config.POST_ID:
  35.             channel = self.get_channel(payload.channel_id) # получаем объект канала
  36.             message = await channel.fetch_message(payload.message_id) # получаем объект сообщения
  37.             member = utils.get(message.guild.members, id=payload.user_id) # получаем объект пользователя который поставил реакцию
  38.  
  39.             try:
  40.                 emoji = str(payload.emoji) # эмоджик который выбрал юзер
  41.                 role = utils.get(message.guild.roles, id=config.ROLES[emoji]) # объект выбранной роли (если есть)
  42.  
  43.                 await member.remove_roles(role)
  44.                 print('[SUCCESS] Role {1.name} has been remove for user {0.display_name}'.format(member, role))
  45.  
  46.             except KeyError as e:
  47.                 print('[ERROR] KeyError, no role found for ' + emoji)
  48.             except Exception as e:
  49.                 print(repr(e))
  50.  
  51. # RUN
  52. client = MyClient(intents=intents)
  53. client.run(config.TOKEN)
  54.  
  55.  
  56. #config.py
  57. TOKEN = 'my_discord_token'
  58. POST_ID = (940604622517706753, 965280817335115826)
  59. ROLES = {
  60.     '1️⃣':940605563224596531, #first role
  61.     '2️⃣':940605809618984970, #second role
  62.     '3️⃣':940605866946723840, #third role
  63.     '4️⃣':940605926933663774, #fourth role
  64.     "965279266923233380":965282719565217912, #terraria role
  65.     "965279859112820736":965282936180056094, #minecraft role
  66.     "965280392208867350":965283003351859230, #roblox role
  67.     "965280666524737587":965283054081953892 #friday night funkin role
  68. }
Add Comment
Please, Sign In to add comment