SHARE
TWEET

Untitled

DiverRus Jan 24th, 2020 88 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top