Тема: Не видає роль на сервері Discord.py
Пробую зробити бота який буде видават по реакціям ролі.
Бот зпускається і не виводить помилок але ролі чомусь не видає, при кліку на емоцію виводить повідомленння про те шо роль не знайдено.
except KeyError as e:
print('[ERROR] KeyError, роль не знайдено ' + emoji)
except Exception as e:
print(repr(e))
Я не розумію чому пробував різні вріанти коду з інтернету теж саме вихоить.
Як це пофіксити щоб працювало належним чином??
Ось основний файл.
import config
import discord
from discord.ext import commands
from discord import utils
client = commands.Bot(command_prefix='.')
client.remove_command('help')
@client.event
async def on_ready():
print(f'Ви увійшли як {client.user}!')
@client.command()
async def help(ctx):
await ctx.channel.purge(limit=1)
emb = discord.Embed(title='Навігація по командам\nВітання я Dragon Soldiers')
emb.add_field(name='Ролі'.format('.'), value='Я вмію видавати ролі по реакціям')
await ctx.send(embed=emb)
@client.event
async def on_raw_reaction_add(payload):
channel = client.get_channel(payload.channel_id) # получаем объект канала
message = await channel.fetch_message(payload.message_id) # получаем объект сообщения
guild = client.get_guild(payload.guild_id)
member = utils.get(message.guild.members, id=payload.user_id)# получаем объект пользователя который поставил реакцию
if payload.message_id == config.POST_ID:
try:
emoji = str(payload.emoji) # эмоджик который выбрал юзер
roles = discord.utils.get(guild.roles, id=config.ROLES[emoji])
await member.add_roles(roles)
print('[SUCCESS] Користувач {0.display_name} отримав роль {1.name}'.format(emoji, roles))
except KeyError as e:
print('[ERROR] KeyError, роль не знайдено ' + emoji)
except Exception as e:
print(repr(e))
@client.event
async def on_raw_reaction_remove(payload):
pass
intents = discord.Intents.default()
intents.members = True
client.run(config.TOCEN)
Конфіг файл
TOCEN = ''"
POST_ID = 994940723424133141 # ID of the message that can be reacted to to add/remove a role. 994940723424133141
ROLES = {
'????': 995397171010613308,
'????': 995397210097328258,
'????': 995397214715260979,
}