Задать вопрос
@fdsaghoi

Как вывести сообщение бота при выходе или входе человека на сервер?

Перепробовал несколько способов вывода сообщения бота при выходе человека с сервера через ивент, а не через команду. Не могу понять, почему не работает, например, этот способ:
@bot.event
    async def on_guild_join(guild):
        for channel in guild.text_channels:
            if channel.permissions_for(guild.me).send_messages:
                await channel.send('Hi!')
  • Вопрос задан
  • 1212 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
Не работает это для начала, хотя бы потому, что on_guild_join вызывается при входе самого бота на сервер.

При входе/выходе пользователя на/с сервер(а) выполняется on_member_join/on_member_remove соответсвенно:
https://discordpy.readthedocs.io/en/stable/api.htm...

@bot.event
async def on_member_join(member):
    if welcome_channel := member.guild.get_channel(754741279918410952):
        await welcome_channel.send(f"Welcome, {member.mention} to {member.guild.name}")


Помните, что для работы on_member_join/on_member_leave требуется members intent
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы