如何在discord.py机器人中向用户私信发送Embed富文本消息
实现方法
首先修正你提供的Embed代码的拼写错误:tittle 是错误拼写,需要改为 title 才能正常生效。
你只需要把原来踢人命令里发送普通文本的逻辑,替换为构造Embed后调用send方法时传入embed参数即可,完整修改后的代码如下:
@bot.command() @commands.has_any_role(admin, moderator, ghostluko) async def kick(ctx, member : discord.Member, *, arg): reason = arg # 构造Embed对象 em = discord.Embed(title = "Help", description = "**КИК**") em.add_field(name = "Вас было кикнуто из сервера 𝕲𝖍𝖔𝖘𝖙 𝕾𝖎𝖉𝖊 😿", value = "Причина: " + str(reason)) em.set_thumbnail(url = 'https://i.ibb.co/mvDpBsw/21321312312.png') # 私信发送Embed try: await member.send(embed=em) except discord.Forbidden: # 可选处理:如果用户关闭了陌生人私信,可在频道发提示 await ctx.send(f"无法向用户 {member.mention} 发送私信通知,已执行踢人操作") await member.kick(reason=reason)
补充说明:加try-except捕获异常是为了避免目标用户关闭了Discord的陌生人私信权限时,导致整条命令报错中断,你可以根据自己的需求选择是否保留这部分逻辑。
内容的提问来源于stack exchange,提问作者Maron
相关产品推荐
相关产品推荐

