Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.79 KB | None | 0 0
  1. import discord
  2. from discord import utils
  3. import config
  4.  
  5. class MyClient( discord.Client):
  6.     async def on_ready(self):
  7.         print('Logged on as {0}!'.format( self.user))
  8.  
  9.     async def on_member_join(self, member):
  10.         await client.send_message('прихожая', member+', Message to send when member joins')
  11.  
  12.     async def on_raw_reaction_add( self, payload):
  13.         if payload.message_id == config.POST_ID:
  14.             channel = self.get_channel( payload.channel_id) # получаем объект канала
  15.             message = await channel.fetch_message( payload.message_id) # получаем объект сообщения
  16.             member = utils.get(message.guild.members, id= payload.user_id) # получаем объект пользователя который поставил реакцию
  17.  
  18.             try:
  19.                 emoji = str(payload.emoji) # эмоджик который выбрал юзер
  20.                 role = utils.get(message.guild.roles, id= config.ROLES[emoji]) # объект выбранной роли (если есть)
  21.            
  22.                 if(len([i for i in member.roles if i.id not in config.EXCROLES]) <= config.MAX_ROLES_PER_USER):
  23.                     await member.add_roles(role)
  24.                     print('[SUCCESS] User {0.display_name} has been granted with role {1.name}'.format(member, role))
  25.                 else:
  26.                     await message.remove_reaction(payload.emoji, member)
  27.                     print('[ERROR] Too many roles for user {0.display_name}'.format(member))
  28.            
  29.             except KeyError as e:
  30.                 print('[ERROR] KeyError, no role found for ' + emoji)
  31.             except Exception as e:
  32.                 print(repr(e))
  33.  
  34.     async def on_raw_reaction_remove(self, payload):
  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.    
  52.  
  53. # RUN
  54. client = MyClient()
  55. client.run(config.TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement