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

Discord.js消息计数触发发信后不复位仅生效一次如何修复

问题修复方案

问题根因

当前逻辑中msgCount累加到100触发消息发送后,没有重置计数器的操作,msgCount会一直停留在100,后续永远无法再满足msgCount === 100的判断条件,所以只会触发一次消息发送。

修复后完整代码

let msgCount = 0; // 全局计数器放在事件外是正确的,用于跨事件累计消息数

// 消息接收事件
client.on("messageCreate", async(message)=>{
    if (message.author.bot) return;
    // 仅统计目标频道的非机器人消息
    if (message.channel.id === "替换为你的目标频道ID") {
        msgCount += 1;
    }
    if (msgCount === 100) {
        const channel = await client.channels.cache.get("替换为你的目标频道ID")
        await channel.send("hi")
        // 消息发送完成后重置计数器,开启下一轮计数
        msgCount = 0;
    }    
})

可选优化点

  • 可以将频道ID提取为公共常量,避免多处填写出现拼写错误
  • 发送消息前可以增加频道非空判断,避免获取频道失败导致代码报错
  • 如果需要支持多频道独立计数,可以将msgCount替换为以频道ID为键的对象存储,每个频道单独统计数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:06