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

Discord石头剪刀布机器人随机表情重复问题求助

石头剪刀布Discord机器人随机表情问题解决
  • 问题1:随机值仅初始化一次
    你把randomemoji定义在全局作用域,程序启动时只会计算一次随机表情,后续所有按钮点击都会复用这个固定值。

  • 问题2:条件判断逻辑错误
    interaction.customId === "Pierre" || "Papier" || "Ciseaux"的写法不符合语法规则,这个表达式永远返回true(非空字符串属于真值),会导致所有按钮点击都触发回复。


修正后的完整代码:

const emoji = [
    "✊", 
    "✋", 
    "✌"
];

client.on("interactionCreate", async interaction => {
    if(interaction.isButton()){
        // 用数组includes方法简化条件判断,精准匹配指定按钮ID
        if(["Pierre", "Papier", "Ciseaux"].includes(interaction.customId)){
            // 每次点击按钮时重新生成随机表情
            const randomemoji = emoji[Math.floor(Math.random() * emoji.length)];
            await interaction.reply(randomemoji);
        }
    }
});

核心修改说明:

  1. 将随机表情的生成逻辑移到按钮交互的回调函数内部,确保每次用户点击按钮时,都会重新执行随机计算,生成新的表情。
  2. 替换错误的条件判断写法,用Array.includes()准确匹配目标按钮ID,避免无效触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:24:18