NodeJS discord.js client.user.setPresence()中断bot

a7qyws3x  于 2023-05-22  发布在  Node.js
关注(0)|答案(2)|浏览(86)

我的机器人目前运行良好。我决定给它添加一个“正在玩”的状态。这是相关代码:

// Import the discord.js modules required
const Discord = require('discord.js');

// Create an instance of a Discord client
const client = new Discord.Client();

// Load config properties from 'config.json'
const config = require("./config.json");
const contest = config.contest;

// Set bots status to playing 'contest' defined in 'config.json'
client.user.setPresence({
  game:{
    name:contest
  },
  status:'online'
});

在'config.json'中:

{
  "contest": "Example Game"
}

当我添加这个时,机器人不再工作,并显示为离线。有什么想法吗
编辑:信息来源:
https://discord.js.org/#/docs/main/stable/class/ClientUser?scrollTo=setPresence
在示例部分中:

// Set the client user's presence
client.user.setPresence({ game: { name: 'with discord.js' }, status: 'idle' })
  .then(console.log)
  .catch(console.error);
e3bfsja2

e3bfsja21#

您需要阅读配置,而不是

const config = require(...)

你需要

const fs = require("fs");
const config = JSON.parse(fs.readFileSync("config.json"));
const contest = config.contest;

然后

game:{
    name:contest
}
beq87vna

beq87vna2#

解决了这个问题-这需要放置在一个事件中,否则它只是浮动代码。例如,我将其放置在client.on('ready)事件中。

相关问题