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

如何编写Discord数数游戏Bot 实现错数检测及计数重置功能

问题排查与修复方案

原代码存在的问题

  • 错数判断逻辑完全无效:else if (count === count+++) 属于无意义的自比较逻辑,没有对用户输入的内容做正确性校验,完全无法触发错数提示。
  • 未校验输入内容合法性:如果用户发送的不是数字内容,Number(content) 会返回NaN,现有逻辑无法处理这类非法输入场景。
  • 错误场景覆盖不全:除了正确输入的情况外,其余所有错数、非法输入场景都没有对应的处理逻辑。

修复后完整代码

let count = 0
client.on('message', ({channel, content, member}) => {
  // 替换为你的目标频道ID
  if (channel.id === '') {
    // 过滤机器人发送的消息
    if (member.user.bot) return
    // 转换输入为数字,同时校验是否为有效正整数
    const inputNum = Number(content)
    const isValidNumber = !isNaN(inputNum) && Number.isInteger(inputNum) && inputNum > 0

    if (isValidNumber && inputNum === count + 1) {
      // 输入正确,计数自增
      count++
    } else {
      // 所有输入错误、内容非法的场景统一处理
      channel.send(`${member} messed up at ${count + 1}, I'm gonna reset the count to 0`).catch(console.error)
      count = 0
    }
  }
})

逻辑说明

  • 新增输入合法性校验,只有用户发送正整数时才会进入正确性判断,发送文字、符号、小数、负数都视为输入错误。
  • 只要不符合「输入等于当前计数+1」的要求,统一触发错误提示,同时将计数重置为0。
  • 错误提示中标注的错误数值为用户本该输入的正确数值,符合数数游戏的常规使用习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:06:01