Discord机器人on_member_join事件无响应,欢迎消息无法触发
解决discord.py on_member_join事件无响应的问题
以下是几个关键排查和修复点:
检查代码顺序
确保@bot.event装饰的on_member_join函数是在bot = commands.Bot(...)实例化之后定义的。如果先写事件再创建bot对象,装饰器无法绑定到正确的bot实例,事件自然不会触发。正确的代码结构应该是:import discord from discord.ext import commands # 先初始化intents和bot intents = discord.Intents().all() bot = commands.Bot(command_prefix='!', intents=intents) # 再定义事件 @bot.event async def on_member_join(member): print("new member joined") # 最后启动bot bot.run("your_bot_token")确认开发者门户的intents设置已保存
进入Discord开发者门户对应应用的Bot页面,找到「Privileged Gateway Intents」板块,确保Presence Intent、Server Members Intent、Message Content Intent全部开启,并且点击页面底部的「Save Changes」按钮,避免设置未生效。验证测试场景
- 必须使用从未加入过服务器的新用户进行测试,重复退出再加入已有账号可能不会触发事件(受服务器缓存机制影响)。
- 如果服务器开启了验证等级,需要用户完成验证流程后,事件才会触发。
内容的提问来源于stack exchange,提问作者superhackedmonkey
相关产品推荐
相关产品推荐

