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
相关产品推荐
相关产品推荐

