You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.py中编写新成员入群欢迎指令?代码不触发问题求助

问题排查与修复方案

1. 确认代码端已正确配置Intents

仅在Discord开发者后台开启权限不生效,必须在Bot初始化代码中显式启用成员相关Intent:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True # 对应成员加入事件的必要权限,必须开启

bot = commands.Bot(command_prefix="你的指令前缀", intents=intents)

2. 优化事件代码增加异常兼容

现有代码缺少空值校验,频道获取失败时会静默报错无法发送消息,修改为以下版本:

@bot.event
async def on_member_join(member):
    channel = bot.get_channel(906928559602421830)
    # 新增空值判断,出现异常可在控制台看到报错信息
    if not channel:
        print("目标欢迎频道不存在,请检查频道ID是否正确")
        return
    # 检查机器人是否拥有对应频道的发送权限
    if not channel.permissions_for(member.guild.me).send_messages or not channel.permissions_for(member.guild.me).embed_links:
        print("机器人缺少频道的发送消息/发送嵌入权限")
        return
    embed=discord.Embed(title="Welcome!",description=f"{member.mention} Just Joined")
    await channel.send(embed=embed)

3. 额外排查项

  • 确认填写的频道ID906928559602421830属于机器人已加入的服务器,且为可访问的文字频道
  • 确认Discord开发者后台的Server Members Intent开关已经保持开启状态
  • 不要重复注册on_member_join事件,后面注册的同名称事件会覆盖之前的逻辑

内容的提问来源于stack exchange,提问作者JuicyOrange.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:06:05