如何解决discord.js v14机器人自定义活动状态不显示问题?
Discord机器人自定义活动状态无法显示的解决办法
使用ActivityType.Custom设置自定义状态时,不能通过name字段指定显示文本,必须遵循Discord API的特殊结构要求:
name字段必须固定为"Custom Status",不能修改- 实际要显示的自定义文本需要放在
state字段中
修改后的可用代码如下:
const { Client, GatewayIntentBits, ActivityType } = require ('discord.js'); const client = new Client ({ intents: [GatewayIntentBits.GUILDS] }); client.on ('ready', () => { console.log (`Logged in as ${client.user.tag}!`); client.user.setPresence ({ activities: [ { name: "Custom Status", // 此值必须固定 type: ActivityType.Custom, state: "你的自定义状态内容" // 这里替换成你要显示的文本 }, ], status: 'online', }); }); client.login ('token');
如果需要给自定义状态添加emoji,可以额外增加emoji字段:
{ name: "Custom Status", type: ActivityType.Custom, state: "正在摸鱼", emoji: { name: "🐟" } // 可以用emoji名称,也可以指定id }
之所以之前的代码不生效,是因为Discord把ActivityType.Custom对应的活动视为用户手动设置的“自定义状态”,这类活动的结构和游戏、流媒体等预定义类型完全不同,必须严格按照API要求的字段来配置。
内容的提问来源于stack exchange,提问作者SoRRoW.DaDa
相关产品推荐
相关产品推荐

