为什么 .get() 在我的不和谐机器人代码中不起作用?
Why is .get() not working in my discord bot code?
我正在尝试更改频道名称以显示公会中的用户数量。但是,当我启动我的机器人时,它在控制台中显示以下内容:
Cannot read property 'edit' of undefined
我将问题缩小到这一行:bot.channels.get("533334637163053077");
以防万一你需要它,这是我的代码:
const Discord=require('discord.js');
const fs = require("fs");
const bot = new Discord.Client();
const PREFIX = "-";
const guildID = "418505146876559371";
let ref = require("./ref.json");
let request = require(`request`);
const memberCountChannel = bot.channels.get("533334637163053077"); //This one is the one
//that is not working I think
bot.commands = new Discord.Collection();
var servers = {};
bot.on('warn', console.warn);
bot.on('error', console.error);
bot.on('ready', function(guild)
{
console.log(`${bot.user.username} is online with ${bot.users.size}
members.\n\n\n\n\n\n\n\n\n`);
bot.user.setActivity('with the server. Type -help for info.');
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000); //Change name of channel
});
bot.on("guildMemberAdd", function(member){
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});
bot.on("guildMemberRemove", async function(member){
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});
bot.login('TOKEN HERE');
编辑:该频道确实存在,并且机器人确实有权使用该频道做任何事情。
问题本质上是,正如您在
中正确推测的那样
const memberCountChannel = bot.channels.get("533334637163053077");
这是因为您正试图在触发 .on('ready') 事件之前不存在的对象(通道)上调用方法(.get)。
我正在尝试更改频道名称以显示公会中的用户数量。但是,当我启动我的机器人时,它在控制台中显示以下内容:
Cannot read property 'edit' of undefined
我将问题缩小到这一行:bot.channels.get("533334637163053077");
以防万一你需要它,这是我的代码:
const Discord=require('discord.js');
const fs = require("fs");
const bot = new Discord.Client();
const PREFIX = "-";
const guildID = "418505146876559371";
let ref = require("./ref.json");
let request = require(`request`);
const memberCountChannel = bot.channels.get("533334637163053077"); //This one is the one
//that is not working I think
bot.commands = new Discord.Collection();
var servers = {};
bot.on('warn', console.warn);
bot.on('error', console.error);
bot.on('ready', function(guild)
{
console.log(`${bot.user.username} is online with ${bot.users.size}
members.\n\n\n\n\n\n\n\n\n`);
bot.user.setActivity('with the server. Type -help for info.');
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000); //Change name of channel
});
bot.on("guildMemberAdd", function(member){
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});
bot.on("guildMemberRemove", async function(member){
memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});
bot.login('TOKEN HERE');
编辑:该频道确实存在,并且机器人确实有权使用该频道做任何事情。
问题本质上是,正如您在
中正确推测的那样const memberCountChannel = bot.channels.get("533334637163053077");
这是因为您正试图在触发 .on('ready') 事件之前不存在的对象(通道)上调用方法(.get)。