@egsehre

Не работает on_member_join Как исправить?

import asyncio
import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True
discord.member = True
bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_member_join(member):
channel_id = ID канала
channel = bot.get_channel(channel_id)
if channel is not None:
await channel.send(f'Привет, {member.mention}! Добро пожаловать на наш сервер!')

Бот не приветствует участников
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Не работает on_member_join?

on_member_join работает, не работает ваш код. Вероятно channel is None, поскольку этой ветки у вас нет вам об этом и не сообщается.

1. Поправьте вопрос как описано в сообщении модератора

2. Проверяйте типы объектов, которыми оперируете и делайте все возможные ветвления, если код работает не как ожидается.

3. Открывайте документацию

4. Для приветственных сообщений есть системный канал, который рекомендуется под это использовать.
Хардкод это плохая практика.

import discord

class MyClient(discord.Client):
    async def on_member_join(self, member):
        guild = member.guild
        if guild.system_channel is not None:
            msg = f'{member.mention} добро пожаловать на сервер {guild.name}!'
            await guild.system_channel.send(msg)


intents = discord.Intents.default()
intents.members = True

client = MyClient(intents=intents)
client.run('token')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы