Advertisement
DiverRus

Untitled

Jan 24th, 2020
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. import discord #импортируем Discord и Discord.ext
  2. from discord import utils
  3.  
  4. import config #импортируем config-файл
  5.  
  6. class MyClient(discord.Client): #создаём отдельный класс
  7. async def on_ready(self): #запуск бота
  8. print('Logged on as {0}!' .format(self.user)) #надпись при подключении бота
  9.  
  10. async def on_reaction_add(self, payLoad): #реакция на игрока
  11. channel = self.get_channel(payload.channel_id) #получаем объект канала
  12. message = await channel.fetch_message(payload.message_id) #получаем объект сообщения
  13. member = utils.get(message.guild.members, id=payload.user_id) #получаем объект пользователя, который поставил реакцию (эмоджи)
  14.  
  15. try:
  16. emoji = str(payload.emoji) #Эмодзи, который выбрал пользователь
  17. role = utils.get(message.guild.roles, id=config.ROLES[emoji]) #Объект выбранной роли (если имеется)
  18.  
  19. if(len([i for i in member.roles if i.id not in config.EXCROLES]) <= config.MAX_ROLES_PER_USER):
  20. await member.add_roles(role) #добавление роли
  21. print('[SUCCESS] User {0.display_name} has been granted with role {1.name}'.format(member, role)) #роль добавлена (для логов)
  22.  
  23. async def on_reaction_remove(self, payLoad): #реакция на игрока
  24. channel = self.get_channel(payload.channel_id) #получаем объект канала
  25. message = await channel.fetch_message(payload.message_id) #получаем объект сообщения
  26. member = utils.get(message.guild.members, id=payload.user_id) #получаем объект пользователя, который поставил реакцию (эмоджи)
  27.  
  28. try:
  29. emoji = str(payload.emoji) # эмоджик который выбрал юзер
  30. role = utils.get(message.guild.roles, id=config.ROLES[emoji]) # объект выбранной роли (если есть)
  31.  
  32. await member.remove_roles(role) #удаление роли
  33. print('[SUCCESS] Role {1.name} has been remove for user {0.display_name}'.format(member, role)) #роль удалена (для логов)
  34. #Запуск бота
  35. client = MyClient()
  36. client.run('config.TOKEN') #запуск токена из config.py
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement