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

Discord.js Bot如何实现每隔5-7秒自动循环切换在线活动状态

实现方案

你可以通过setInterval定时器配合状态列表实现循环切换,完整可运行代码如下:

client.on('ready', () => {
  // 自定义需要循环的状态列表
  const activityList = [
    "It's frosty out there",
    "420 servers",
    "?help | dsc.gg/ultraa"
  ];
  // 记录当前展示的状态索引
  let activityIndex = 0;

  // 设置初始状态
  client.user.setActivity(activityList[activityIndex], { type: 'WATCHING' });
  activityIndex += 1;

  // 定时切换:此处设置为6秒切换一次,符合你要求的5-7秒区间
  setInterval(() => {
    // 索引越界时重置为0,实现循环
    if (activityIndex >= activityList.length) {
      activityIndex = 0;
    }
    client.user.setActivity(activityList[activityIndex], { type: 'WATCHING' });
    activityIndex += 1;
  }, 6000);
});

可选调整项

  • 如果你需要不同状态对应不同的活动类型(如PLAYING/LISTENING/STREAMING),可以把状态列表改为对象格式:
    const activityList = [
      { name: "It's frosty out there", type: 'WATCHING' },
      { name: "420 servers", type: 'PLAYING' },
      { name: "?help | dsc.gg/ultraa", type: 'LISTENING' }
    ];
    
    切换时调用方式改为:
    client.user.setActivity(activityList[activityIndex].name, { type: activityList[activityIndex].type });
    
  • 如果你需要每次切换的间隔在5-7秒随机波动,把setInterval的第二个参数6000替换为Math.floor(Math.random() * 2000 + 5000)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:24:04