Эй, я разрабатываю Discord Bot с Python. Вот документация: https://discordpy.readthedocs.io/en/latest/index.html
Я бы задала вопрос. Я делаю бот-дискордант в Python, и мне нужна помощь:
Можно ли настроить бот-диск, который я могу относиться к? Я хотел бы включить всю систему продажи билетов в событие on_raw_reaction_add. Это вообще возможно? Если это невозможно, то как ссылаться, например, на данный билет?
Я хотел бы включить условие в систему продажи билетов. При создании тикета пользователь получает звание «А». Если он уже имеет этот ранг, бот напишет ему, что он уже создал билет и не сможет создать другой билет. У кого-нибудь есть идеи, как я могу проверить, есть ли у пользователя звание? Я знаю, что @ command.has_role существует, но это не будет работать для условия.
Это мой код:
@client.event
async def on_raw_reaction_add(payload):
message_id = payload.message_id
if message_id == 701490140110913568:
guild_id = payload.guild_id
guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)
if payload.emoji.name == 'koperta':
print("zlotek")
channel = client.get_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
user = client.get_user(payload.user_id)
emoji = client.get_emoji(700845595103068211)
await message.remove_reaction(emoji, user)
name = '✅ OPENED TICKETS ✅'
category = discord.utils.get(guild.categories, name=name)
overwrites = overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(f'Ticket-0001', category=category, overwrites=overwrites)
role = discord.utils.get(guild.roles, name='A')
member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
await member.add_roles(role)
Спасибо за все формы помощи Ты лучший