Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование Python разработка ботов Дискорд с утилитой Disnake

Матвей Сундук Ученик (178), на голосовании 8 месяцев назад
как сделать выдачю ролей при входе на сервер?
Голосование за лучший ответ
Лев Сергеев Ученик (132) 7 месяцев назад
@bot.event
async def on_member_join(member):
role = disnake.utils.get(member.guild.roles, id=id роли)
channel = member.guild.system_channel


await member.add_roles(role)
денис денисовУченик (105) 2 недели назад
@bot.event
async def on_ready():
print(f"бот {bot.user} запущин")

@bot.event
async def on_member_join(member):
#если указать неправильный id будет ошибка
id_guild = 1274794239569690704
id_role = 1277229219063267389
id_channel = 1275562782397300840

guild = bot.get_guild(id_guild)
channel =guild.get_channel(id_channel)
member_bot = guild.get_member(bot.user.id)
permissions = member_bot.guild_permissions
if member.guild.id == str(id_guild):
print(f"{member.guild.id} ≠ {id_guild}")
return
if permissions.manage_roles == False:
print(f"бот {bot.user} не имеет прав на сервере: {guild.name}")
return
role = member.guild.get_role(id_role)

await member.add_roles(role)
await channel.send(f"участнику {member.name} \nбыла дана роль: {role.name}")
денис денисовУченик (105) 2 недели назад
Не туда ну ок
денис денисов Ученик (105) 2 недели назад
import disnake
from disnake.ext import commands

bot = commands.Bot (command_prefix = "#", help_command=None , intents=disnake.Intents.all())

@bot.event
async def on_ready():
print(f"бот {bot.user} запущин")

@bot.event
async def on_member_join(member):
#если указать неправильный id будет ошибка
id_guild = 1274794239569690704
id_role = 1277229219063267389
id_channel = 1275562782397300840

guild = bot.get_guild(id_guild)
channel =guild.get_channel(id_channel)
member_bot = guild.get_member( bot.user.id )
permissions = member_bot.guild_permissions
if member.guild.id == str(id_guild):
print(f"{ member.guild.id } ≠ {id_guild}")
return
if permissions.manage_roles == False:
print(f"бот {bot.user} не имеет прав на сервере: { guild.name }")
return
role = member.guild.get_role(id_role)

await member.add_roles(role)
await channel.send(f"участнику { member.name } \nбыла дана роль: { role.name }")




bot.run ("сюда токен бота")
Похожие вопросы