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

Discord.js Node V12 如何在机器人状态中展示活动已运行时长

实现机器人状态动态展示活动运行时长方案

注意:你描述的是Node.js环境下的Discord.js v12库,但贴出的代码属于Python环境的discord.py库,下面分别给出两种环境的实现方案。


Discord.js v12(Node.js环境)实现

实现逻辑:先记录机器人启动的时间戳,定时计算当前时间与启动时间的差值,格式化后拼接进活动名称更新状态即可。

// 记录机器人启动时间戳
const startTime = Date.now();

client.on('ready', () => {
  console.log(`登录成功:${client.user.tag}`);
  // 每10秒更新一次状态,可自行调整间隔
  setInterval(() => {
    const uptime = Date.now() - startTime;
    // 毫秒转天/时/分/秒格式
    const days = Math.floor(uptime / 86400000);
    const hours = Math.floor((uptime % 86400000) / 3600000);
    const minutes = Math.floor((uptime % 3600000) / 60000);
    const seconds = Math.floor((uptime % 60000) / 1000);
    
    let timeStr = '';
    if (days > 0) timeStr += `${days}天`;
    if (hours > 0) timeStr += `${hours}时`;
    timeStr += `${minutes}分${seconds}秒`;

    // 刷新机器人状态
    client.user.setPresence({
      status: 'dnd',
      activity: {
        name: `VALORANT 已运行${timeStr}`,
        type: 'PLAYING'
      }
    });
  }, 10000);
});

discord.py(Python环境)实现

对应你贴出的代码环境的适配方案:

import discord
from discord.ext import tasks
import time

client = discord.Client()
# 记录启动时间戳
start_time = time.time()

@tasks.loop(seconds=10) # 每10秒更新一次状态
async def update_presence():
    uptime = time.time() - start_time
    # 转换时间格式
    days = int(uptime // 86400)
    hours = int((uptime % 86400) // 3600)
    minutes = int((uptime % 3600) // 60)
    seconds = int(uptime % 60)
    
    time_str = ""
    if days > 0:
        time_str += f"{days}天"
    if hours > 0:
        time_str += f"{hours}时"
    time_str += f"{minutes}分{seconds}秒"
    
    await client.change_presence(
        status=discord.Status.dnd,
        activity=discord.Game(name=f"VALORANT 已运行{time_str}")
    )

@client.event
async def on_connect():
    update_presence.start() # 连接成功后启动状态更新循环

注意事项

  • 状态更新间隔不要设置过短,推荐10秒及以上,避免触发Discord接口限流导致机器人掉线
  • 可根据需求修改活动类型,比如切换为收听、观看类状态,对应调整名称描述即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:36:03