discord.py:为什么我的加入消息不起作用?

时间:2021-01-17 16:43:34

标签: python discord.py

我很困惑为什么我的加入消息不起作用!我已经安装了 discord.py 库,我真的很困惑!我下面还有其他代码,但它不应该影响上面的。

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_member_join(member):
    print("Player has joined")
    channel = await client.fetch_channel(800395922764070942)
    await channel.send(f'{member} has joined!')
    
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('!loser'):
        await message.channel.send('Hello loser! Nice to meet you.')
    elif message.content.startswith('!bruh'):
        await message.channel.send('BRUHHHHHHHHHHHHHHH!!!!')

client.run("Where my token is")

已编辑以显示完整代码。 (抱歉那些愚蠢的东西,它们运行得很好,但我只是想测试一些东西..)

3 个答案:

答案 0 :(得分:0)

您错过了代码中作为最后一行的 client.run("YOUR-TOKEN") 行。

您可以在应用程序的“bot”部分中的 https://discord.com/developers/applications 上获取令牌。请勿与任何人共享该令牌。

答案 1 :(得分:0)

您是否尝试将 get_channel 行从

    channel = client.get_channel(800395922764070942)

    channel = await client.fetch_channel(800395922764070942)

答案 2 :(得分:0)

由于最近在 discord.py (1.5.0) 中发生了变化,您现在需要使用意图。意图能够跟踪发生的事情。

首先,您需要在 developer portal(您创建机器人的位置)上启用它。当你在那里时,选择你的应用程序,转到机器人部分,向下滚动并勾选框。

Tick server members intent

然后在您的代码中,您需要在顶部添加:

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

client = discord.Client(intents=intents)

您现在可以接收诸如 on_member_join 之类的事件。