Discord 'on_member_join' 功能不起作用

2022-01-14 00:00:00 python discord.py-rewrite

问题描述

我的 on_member_join 似乎不起作用.我希望我的机器人说出加入服务器的成员的姓名,但它不检测是否有人加入或离开.

My on_member_join doesnt seem to work. I wanted my bot to say out the names of the members that joined the sever but it doesnt detect if someone has joined or left.

import discord
from discord.ext import commands

client = commands.Bot(command_prefix = '.')

@client.event
async def on_ready():
    print("bot is ready ")

@client.event
async def on_member_join(member):
    print(f'{member.name} has joined this server')

@client.event
async def on_member_remove(member):
    print(f'{member}was removed')

client.run('*************************')

它正在打印bot is ready";在终端上,因此机器人正在工作.但是没有检测到成员离开或加入请帮助.

It is printing "bot is ready" on the terminal so the bot is working. But isn't detecting members leaving or joining pls help.


解决方案

你使用的可能是discord python 1.5.0或以上版本,这是一个常见的错误,你只需要意图.如果有错误,您应该阅读它,它会将您重定向到 discord 开发门户中的机器人,在那里您可以激活特权网关意图 看看这个

You're probably using discord python 1.5.0 or above, it's a common error, you just need Intents. If there's a error, you are supposed to read it, it will redirect you to your bot in the discord dev portal, there you can activate the privileged gateway intents check this out

并将其添加到您的代码中

And add this to your code

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

client = commands.Bot(command_prefix='.', intents=intents)

相关文章