Пытаюсь сделать бата который при заходе человека выдаёт менюшку дать ему роль семьюха или же работник бот или же выдаёт сам себе роль или же мне перелопатил весь интернет не могу найти как его сделать если кто-то может помочь или объяснить пожалуйста буду очень рад (выдать роль может человек с ролью посощьник)
fenrir, чуть чуть не понял первый вопрос
Когда у меня получалось написать бота то он когда заходил новый участник отправлял сообщение но когда я ставил реакцию или делал кнопки бот или мне выдавал роли или вообще не кому
Как вы пытались сделать чтобы он работал? Где код?
Для выполнения нужно прочитать документацию как создать кнопки, как обработать нажатия, как получить пользователя и как добавить ему роль.
Если вы хотите готовый код, такие услуги оказывают на фрилансе, а здесь помогают исправить ваш код, который почему-то не работает.
fenrir, Извеняюсь вот так думаю будет лучше
вот код тут бот выдает роль мне а не новому участнику при нажатие на эмоджи
spoiler
import discord
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Bot is ready. Logged in as {client.user.name}")
@client.event
async def on_member_join(member):
general_channel = discord.utils.get(member.guild.channels, name="general")
if general_channel:
embed = discord.Embed(title="Выберите роль", description="Выдавать роли могут только люди с ролью 'сутер'", color=discord.Color.blue())
embed.add_field(name="Роль семьюха", value="Нажмите на кнопку, чтобы получить роль семьюха", inline=False)
embed.add_field(name="Роль работник", value="Нажмите на кнопку, чтобы получить роль работник", inline=False)
message = await general_channel.send(embed=embed)
await message.add_reaction("эмодзи")
await message.add_reaction("эмодзи")
@client.event
async def on_raw_reaction_add(payload):
if payload.member.bot:
return
guild = client.get_guild(payload.guild_id)
member = guild.get_member(payload.user_id)
member_roles = [role.name for role in member.roles]
if "сутер" in member_roles:
general_channel = client.get_channel(payload.channel_id)
message = await general_channel.fetch_message(payload.message_id)
if payload.emoji.name == "":
hueglot_role = discord.utils.get(guild.roles, name="семьюха")
await member.add_roles(hueglot_role)
await general_channel.send(f"{member.mention}, вы получили роль сеиьюха")
elif payload.emoji.name == "":
huesos_role = discord.utils.get(guild.roles, name="работник")
await member.add_roles(huesos_role)
await general_channel.send(f"{member.mention}, вы получили роль работик")
client.run("токен")