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)
代替。
好的,所以我正在编写一个 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)
代替。