авто выдача роли и приветствие 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 шт):

Автор решения: denisnumb

Ваш код написан правильно, но не работает из-за того, что вы не выдали боту намерения (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() заработает.

→ Ссылка