Не работает приветственное сообщение 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)

