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

如何在Discord ready.js中设置自定义状态?配置未生效求助

Discord Bot自定义状态无法生效的排查与解决

你遇到的client.user.setActivity不生效问题,主要有几个核心原因,对应解决方案如下:

1. STREAMING类型缺少必填URL参数

Discord的STREAMING状态类型强制要求传入合法的直播平台URL(仅支持Twitch或YouTube),没有这个参数的话,状态不会被Discord服务器接受。修改代码:

client.user.setActivity('test', { 
  type: 'STREAMING',
  url: 'https://www.twitch.tv/your_channel' // 替换为你的直播链接
});

2. 未开启必要的Gateway Intents

Discord Bot需要开启Presence Intent和Server Members Intent才能修改自身状态。操作步骤:

  • 打开Discord开发者门户,找到你的应用
  • 切换到「Bot」标签页
  • 在「Privileged Gateway Intents」区域,开启Presence Intent和Server Members Intent
  • 保存设置后重启Bot

3. 确保client.user已就绪

虽然ready事件触发时client.user应该已初始化,但极端场景下可能存在延迟,可添加判断避免无意义调用:

if (client.user) {
  client.user.setActivity('test', { 
    type: 'STREAMING',
    url: 'https://www.twitch.tv/your_channel'
  });
}

4. 等待命令设置完成再执行状态修改

你的代码中设置全局命令是异步操作,虽然不影响状态设置,但可以明确等待其完成后再执行,避免潜在的时序问题:

await client.application.commands.set(commandsArray);
console.log(`Successfully logged in as ${client.user.tag}!`);

// 等待命令设置完成后再设置状态
if (client.user) {
  client.user.setActivity('test', { 
    type: 'STREAMING',
    url: 'https://www.twitch.tv/your_channel'
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:45:23