Не работает приветственное сообщение discord.py

@client.event
async def on_member_join(member):
    channelsadg = client.get_channel(725755517066018829)  #Where ID is your welcome channel's ID
    await channelsadg.send(f'Привет, {member}! Ты попал в канал {member.guild.name}. Чтобы узнать мои команды пропипши /help')

Не работает.


Ответы (1 шт):

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

Проблема заключается в том, что вы не выдали боту необходимые намерения. Чтобы их выдать, вам нужно при инициализации бота, помимо префикса указать также намерения.

1. Указываем необходимые намерения (В данном случае все):

intents = discord.Intents.all()

2. Выдаем их боту:

# Если у вас discord.Client
client = discord.Client(intents=intents)

# Если у вас commands.Bot
client = commands.Bot(command_prefix='/', intents=intents)

После этого on_member_join() заработает.


Если не получилось, то попробуйте включить два пункта на странице вашего бота. Для этого зайдите в раздел приложений и выберите вашего бота. Затем, слева, на вкладке "Bot"

Бот

Включите параметры PRESENCE INTENT и SERVER MEMBERS INTENT

введите сюда описание изображения


Дополнено:

import discord
from discord.ext import commands
from discord.utils import get
import asyncio

TOKEN = 'token'

intents = discord.Intents.all()
client = commands.Bot(command_prefix='/', intents=intents)
client.remove_command('help')

@client.event
async def on_member_join(member):
    channelsadg = client.get_channel(725755517066018829)  #Where ID is your welcome channel's ID
    await channelsadg.send(f'Привет, {member}! Ты попал в канал {member.guild.name}. Чтобы узнать мои команды пропиши /help')

client.run(TOKEN)
→ Ссылка