client.guilds 即将成为 'undefined'

client.guilds coming up as 'undefined'

好的,所以我正在编写一个 discord 机器人,它输出公会(服务器)中的所有用户名。

这是我目前的代码。

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
    colorize: true
});
logger.level = 'debug';
// Initialize Discord client
var client = new Discord.Client({
   token: auth.token,
   autorun: true
});
client.on('ready', function (evt) {
    logger.info('Connected');
    logger.info('Logged in as: ');
    logger.info(client.username + ' - (' + client.id + ')');
    logger.info(client.guilds);
});
client.on('message', function (user, userID, channelID, message, evt) {
    // Our client needs to know if it will execute a command
    // It will listen for messages that will start with `!`
    if (message.substring(0, 1) == '.') {
        var args = message.substring(1).split(' ');
        var cmd = args[0];

        args = args.splice(1);
        switch(cmd) {
            case 'members':
                var memberList = [];
                const guild = client.guilds.get("610719306678009856");
                guild.members.forEach(member => memberList.push((member.user.username)));  
                client.sendMessage({
                    to: channelID,
                    message: memberList, 
                });
            break;
            // Just add any case commands if you want to..
         }
     }
});

我收到 client.guilds.get 的错误消息 TypeError: Cannot read property 'get' of undefined

然后我添加了 logger.info(client.guilds) 看它是否会输出,并且在启动时它输出 {"message":"undefined","level":"info"}

我一直在检查文档,但我不知道为什么这不起作用。

如文档所述,properties of Client 对象下没有 guilds,但 Client 下有一个 servers 属性。

所以你可以 client.servers.get(idOfServer) 代替。