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

discord.py实现欢迎embed发送延时自动删除及代码排错

原代码存在的问题
  • 事件名错误:成员加入服务器的对应事件为on_member_join,不存在on_message_join事件
  • 阻塞调用错误:time.sleep()是同步阻塞方法,会卡住整个机器人的事件循环,异步环境下需使用asyncio.sleep(),且原代码未导入对应依赖
  • 消息对象未定义:发送embed后没有接收返回的消息实例,后续调用message.delete()时找不到对应对象;且delete()是异步方法需要加await,也不需要传入embed参数
  • Embed写法错误:直接给Embed构造函数传footer参数会报错,页脚需要通过set_footer()方法设置;discord.py 2.0+版本中成员头像属性为member.avatar.url,旧版avatar_url已废弃
  • 配置占位符未替换:代码中prefix、channelid需要替换为你实际的机器人命令前缀、欢迎频道ID(ID为整数类型,不要加引号)
  • 缺少必要配置:需要在Discord开发者后台开启「Server Members Intent」特权开关,否则成员加入事件不会触发,即使代码写了Intents.all()也无效
  • 冗余逻辑:discord.py的发送方法自带delete_after参数,不需要手动写等待+删除逻辑,直接指定秒数即可自动删除发送的消息
修正后可直接运行的代码
import discord
from discord.ext import commands

# 替换为你自己的配置
BOT_PREFIX = "!"
WELCOME_CHANNEL_ID = 123456789012345678  # 替换为你的欢迎频道真实ID
BOT_TOKEN = "你的机器人Token"

client = commands.Bot(
    command_prefix=BOT_PREFIX,
    intents=discord.Intents.all()
)

@client.event
async def on_ready():
    print(f"机器人已登录,账号为:{client.user}")

@client.event
async def on_member_join(member):
    # 获取欢迎频道
    channel = client.get_channel(WELCOME_CHANNEL_ID)
    if not channel:
        return  # 找不到频道直接返回避免报错
    member_count = member.guild.member_count
    
    # 构造欢迎Embed
    embed = discord.Embed(
        title=f"Welcome to {member.guild.name}",
        description=f"Hello there {member.mention}!",
        color=discord.Color.blue()  # 可自定义embed侧边颜色
    )
    embed.set_footer(text=f"当前服务器成员数:{member_count}")
    embed.set_thumbnail(url=member.avatar.url if member.avatar else member.default_avatar.url)

    # 发送embed,5秒后自动删除
    await channel.send(embed=embed, delete_after=5)

if __name__ == "__main__":
    client.run(BOT_TOKEN)
注意事项
  • 运行前先通过pip install discord.py安装最新版本的库,不要使用过旧的1.x版本
  • 必须去Discord开发者后台对应机器人的「Bot」设置页,下滑到「Privileged Gateway Intents」板块,打开Server Members Intent的开关,保存后再启动机器人
  • 如果你的机器人加入了超过100个服务器,需要向Discord官方申请对应意图权限,个人小服务器直接打开开关即可正常使用

内容的提问来源于stack exchange,提问作者ColdX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:33:16