如何定义要在其上使用“ .channels”的行会?

时间:2018-12-29 20:55:25

标签: javascript node.js discord.js

我正在为我的不和谐机器人的支持服务器建立一个机器人分析人员通道。
我希望该机器人能够发送消息,然后每分钟对其进行编辑。但是,当我尝试执行此操作时,出现一条错误消息,提示我没有定义要使用.channels的行会。确切的错误是TypeError: Cannot read property 'channels' of undefined.

我曾尝试以多种不同方式定义行会,包括将其变成变量并将其与找到行会本身的函数组合。但是,这些可能的解决方案中没有一个对我有用。其中一些来自一些相关的Stack Overflow帖子。
我也尝试过看一些教程,但是它们也都没有用:代码总是说我没有正确定义公会。

//Stats For Staff Channel
let serverchannel = bot.guilds.get("498548588318556210").channels.get("528288924917825556");
let servercount = bots.guilds.size
let uptimetotalseconds = (bot.uptime / 1000);
let uptimehours = Math.floor(uptimetotalseconds / 360);
uptimeseconds %= 3600;
let uptimeminutes = Math.floor(uptimetotalseconds / 60);
let uptimeseconds = uptimetotalseconds % 60;
let uptime = "Total Uptime: \n \n Hours: " + uptimehours + "\n Minutes: " + uptimeminutes + "\n Seconds: " + uptimeseconds + "\n Total Uptime In Seconds: " + uptimetotalseconds + "\n Total Uptime In MiliSeconds " + bot.upTime + "\n \n \n \n"
let messagetobesent = "**Bot Status** \n \n" + "Server Count: **" + servercount + " guilds** \n \n" + "Total Uptime: \n Hours: **" + uptimehours + "** \n" + "Minutes: **" + uptimeminutes + "** \n \n **Thats it!These stats are updated every minute and more are being added soon. ** "
serverchannel.send(messagetobesent)
while (true) {
  setTimeout(function() {
    message.edit(messagetobesent)
  }, 60000);
}

机器人应使用其ID来获取我希望将消息发送至的支持服务器和渠道。然后,它应该发送在该通道中存储为变量的消息。最后,它会每分钟使用该变量的新值来编辑该消息。

1 个答案:

答案 0 :(得分:0)

TypeError: Cannot read property 'channels' of undefined.

此错误实际上意味着它找不到您要获取的公会,您确定bot.guilds.get("498548588318556210")实际上返回了公会吗?也许bot是由您代码中的另一个Discord.js客户端定义的,而该客户端不在您尝试获取的行会中?还是实际上有那个ID的公会?还是您的客户实际上是该行会的成员?