@VadnenGG

Почему Heroku не видит ивент on_member_join в discord.py?

Вот код:
from discord.ext import commands
from discord.utils import get
import os
import discord
import asyncio

intents = discord.Intents.default()

ds = commands.Bot(command_prefix='!')
@ds.event
async def on_member_join(member, intents=intents):
    channel = ds.get_channel(713305916044214292)


    vk = get(ds.emojis, name='vk')
    twitch = get(ds.emojis, name='twitch')

    role = discord.utils.get(member.guild.roles, name="Без роли")
    await member.add_roles(role)


    await channel.send(f"Приветствую тебя, {member.mention} :wave:")
    emb = discord.Embed()
    emb.color = discord.Colour.gold()
    emb.add_field(name = "⁣⁣⁣ ", value = f"""**В первую очередь рекомендуем получить**
**роль для доступа ко всем каналам**
**:closed_lock_with_key:[Получить роль](https://discord.gg/Bv85HnT)**
**Для комфортного времяпрепровождения**
**рекомендуем озокомиться с**
**:clipboard:[Правилами Discord](https://discord.gg/YGXUGva)**
**Полезные ссылки:**
{vk}[Группа Вк](https://vk.com/diadem.mine)
{twitch}[Twitch](https://www.twitch.tv/d1adem_)""")
    emb.set_thumbnail(url = "https://images-ext-1.discordapp.net/external/1AXiajN3xjbjin6VR-J4QNOG4Gy4wPP-uabVCUGMAp0/https/media.discordapp.net/attachments/713367810985689110/714404218777239614/anim.gif")
    emb.set_author(name = """Добро пожаловать в  официальный Discord 
 канал проекта Diadem!""", icon_url=member.avatar_url)

    await channel.send(embed = emb)
token = os.environ.get("BOT_TOKEN")

ds.run(token)


При запуске на компе всё работает
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
Потому что on_member_join требует intent'а "members": https://discordpy.readthedocs.io/en/stable/api.htm...
2Fvc1cT.png

И аргумент intents передаётся не в listener, а в конструктор бота.

intents = discord.Intents.default()
intents.members = True
# либо «intents = discord.Intents.all()» если оба intents доступны

ds = commands.Bot(command_prefix='!', intents=intents)


@ds.event
async def on_member_join(member):
    ...


Перед включением intent в коде, убедитесь что он включен в панели приложения в Discord'е:
48C5rAj.png
В противном случае вы получите исключение при запуске бота
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 80 000 до 200 000 ₽
AIR Production Москва
от 170 000 до 200 000 ₽
от 2 500 до 4 000 $
01 дек. 2020, в 10:08
5000 руб./за проект
01 дек. 2020, в 10:00
30000 руб./за проект
01 дек. 2020, в 09:39
1000 руб./за проект