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

使用tmi.js开发Twitch机器人时如何检测用户是否已执行过指定命令

实现方案

你可以通过一个全局对象缓存每个用户的历史IQ结果,每次触发命令时先查询缓存判断是否是首次调用,再对应生成返回内容即可,修改后代码如下:

// 全局作用域声明,用于存储所有用户的上一次IQ结果
const userIqHistory = {};

if (message === '!iq') {
    const userName = user['display-name'];
    const currentIq = Math.floor(Math.random() * 200) + 1;
    let replyText = `${userName} Your IQ is ${currentIq}`;

    // 检查用户是否有历史记录
    if (userIqHistory[userName] !== undefined) {
        const diff = currentIq - userIqHistory[userName];
        // 差值为正自动加+号,负数自带符号
        replyText += ` (${diff > 0 ? '+' : ''}${diff})`;
    }

    // 更新缓存里的用户最新IQ值
    userIqHistory[userName] = currentIq;
    client.action('jimmytag', replyText);
}

补充说明

  • 如果担心用户修改昵称导致记录错乱,可以替换user['display-name']为Twitch用户唯一的ID字段(通常是user['user-id'],具体看你使用的机器人SDK返回字段定义)
  • 如果服务重启后需要保留历史记录,可以把缓存对象的数据持久化存储到本地文件或数据库中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:45:03