авто выдача роли и приветствие Discord.py
Написал код. должен писать приветствие и выдавать роль. так же сделал пометки мне в батнике пишет действия которые написаны в принте. и при выполнение действия выдачи роли должно, мне не роль не выдаёт и не пишет
@client.event
async def on_ready():
print ('bot connected')
#авто выдача роли
@client.event
async def on_member_join (member):
channel = client.get_channel ( 839807318162145290 )
role = discord.utils.get (member.guild.roles, id=839807022949335050)
print ('user join the servers')
await member.add_roles( role )
await channel.send( embed = discord.Embed( description = f'``{member.name}`` присоиединился', color = 0x0c0c0c))```
Ответы (1 шт):
Ваш код написан правильно, но не работает из-за того, что вы не выдали боту намерения (intents).
Чтобы их выдать, вам нужно при инициализации бота, помимо префикса указать также намерения.
1. Указываем необходимые намерения (В данном случае все):
intents = discord.Intents.all()
2. Выдаем их боту:
# Если у вас discord.Client
client = discord.Client(intents=intents)
# Если у вас commands.Bot
client = commands.Bot(command_prefix='!', intents=intents)
Затем включите два пункта на странице вашего бота. Для этого зайдите в раздел приложений и выберите вашего бота. Затем, слева, на вкладке "Bot"
Включите параметры PRESENCE INTENT и SERVER MEMBERS INTENT
После этого on_member_join() заработает.

