discord.js client.user.setPresence()破坏了bot

时间:2018-09-12 11:32:42

标签: javascript node.js discord discord.js

我的机器人目前运行良好。我决定为其添加“正在播放”状态。这是相关代码:

// 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"
}

添加此选项后,该漫游器不再起作用,并显示为脱机状态。有什么想法吗?

编辑: 信息来源:

index only scan

在示例部分:

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

3 个答案:

答案 0 :(得分:0)

您需要阅读配置,而不是

const config = require(...)

您需要

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

然后

game:{
    name:contest
}

答案 1 :(得分:0)

弄清楚了-必须将其放置在事件中,否则只是浮动代码。例如,我将其放置在 client.on('ready)事件。

答案 2 :(得分:0)

在新版本的discord.js中,您可以使用:

const config = require('./config.json');
client.user.setPresence({
  game:{
    name:config.contest
  },
  status:'online'
});