首页 > 解决方案 > On_member_join,缺少 2 个必需的位置参数:“members”和“member”

问题描述

我试图让我的机器人消息成为新用户,在机器人 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'

我不知道发生了什么事

标签: pythondiscord.py

解决方案


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

前往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.")

如果您完成所有这些步骤,该事件应该可以工作。


推荐阅读