On_member_join,缺少 2 个必需的位置参数:'members' 和 'member'

时间:2021-02-26 04:43:59

标签: python discord.py

我试图让我的机器人消息成为新用户,在机器人 API 设置中,我启用了意图并且我有成员意图

@bot.event
async def on_member_join(member):
  await member.send('test')

我得到的错误是

Ignoring exception in on_member_join
Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 343, in _run_event
    await coro(*args, **kwargs)
TypeError: on_member_join() missing 2 required positional arguments: 'members' and 'member'

我不知道发生了什么

2 个答案:

答案 0 :(得分:0)

您的活动目前似乎没有任何问题,但您似乎没有启用意图。

前往 https://discord.com/developers/applications 并查找您的应用程序。 在类别 Bot 下,您可以找到 Privileged Gateway Intents。您可以同时激活。

在您的代码中,您必须执行以下操作:

import discord

intents = discord.Intents.default() # Activate intents
intents.members = True # The intent you want
client = commands.Bot(command_prefix="-", intents=intents) # Import Intents

@bot.event
async def on_member_join(member):
    await member.send('Welcome to the server.')
    print("Member joined.")

如果您完成所有这些步骤,活动应该会成功。

答案 1 :(得分:0)

我认为您必须启用意图

intents = discord.Intents.all()         # You need all to use the member join event, also activate them in the developers portal
client = commands.Bot(commands_prefix = '!', intents = intents)