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

discord.py机器人亲吻指令无法正确提及用户问题求助

存在的问题

  • 指令函数命名为kiss2,实际触发指令为!kiss2,和你预期的!kiss触发规则不匹配
  • 输出消息的字符串没有添加f前缀,无法解析占位符中的变量,{target.mention}会原样输出不会替换为实际的@内容
  • 多余的单独发送target.mention逻辑会导致消息被拆分为多条,不符合预期效果
  • 未@用户的提示文案为法语,且整体输出文案和你预期的中文格式不一致

修正后代码

import discord
from discord.ext import commands

@bot.command()
async def kiss(ctx, target: discord.Member = None):
    # 最佳实践:None比较统一使用is
    if target is None:
        await ctx.send("你没有@任何用户哦!")
    else:
        # 字符串前加f启用变量插值,直接按预期格式输出
        await ctx.send(f"{target.mention} 吻了你!来自 {ctx.author.mention}")
        await ctx.send("https://tenor.com/view/cony-brown-flying-kiss-love-gif-14132471")

版本适配说明

如果你使用的是discord.py 2.0及以上版本,需要额外配置成员意图才能正常解析@的用户:

  1. 进入Discord开发者平台,找到对应机器人的设置页,在「Privileged Gateway Intents」板块开启Server Members Intent
  2. 代码初始化bot时添加意图配置:
intents = discord.Intents.default()
intents.members = True
# 替换你原本的bot初始化语句,保持命令前缀为!
bot = commands.Bot(command_prefix='!', intents=intents)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:30:04