Client.guilds.get() 未按预期工作

Posted

技术标签:

【中文标题】Client.guilds.get() 未按预期工作【英文标题】:Client.guilds.get() not working as intended 【发布时间】:2019-04-13 23:32:53 【问题描述】:

我正在为我的朋友编写一个 Discord 机器人,当我为他制作彩虹色角色功能时,我遇到了一个大错误。

首先,这是我的代码:

var guild = client.guilds.get("493432486148177923")
var role = guild.roles.get("501752627709870080");
var role2 = guild.roles.get("493436150019784704");
setInterval(() => 
  role.setColor([Math.floor(Math.random() * 255), Math.floor(Math.random() * 255), Math.floor(Math.random() * 255)])
  role2.setColor([Math.floor(Math.random() * 255), Math.floor(Math.random() * 255), Math.floor(Math.random() * 255)])
, 8000)

所有都停在guild 变量上。它给了我 null/undefined,当转到 guild.roles.get() 时,它导致我的程序崩溃。我尝试使用.find() 而不是.get() 来寻找公会,但这也没有用。

【问题讨论】:

您使用的方法正确。你唯一能做的就是检查公会ID。请注意,机器人需要在公会中才能工作。 在公会里。 您确定该 ID 是正确的吗?你是怎么得到它的? 公会右键复制ID 试试console.log(client.guilds.keyArray()) 告诉我你得到了什么 【参考方案1】:

我不知道您是否还在寻找答案,但我刚刚遇到了同样的问题。经过一番调查,我想出了一个解决方案:

var server = client.guilds.cache.get(serverID);

这对我有用。希望对您有所帮助!

【讨论】:

【参考方案2】:

我无法说明为什么会发生这种情况,但我目前使用的方法是:

var g = client.guilds.get("GUILD-ID");
var c = g.channels.get("CHANNEL-ID");

或者在一行中:

var c = client.guilds.get("GUILD-ID").channels.get("CHANNEL-ID");

【讨论】:

以上是关于Client.guilds.get() 未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

Angular ngOnit () 未按预期工作

viewDidLoad 未按预期运行

PostAsJsonAsync 未按预期运行

$() 函数未按预期工作

UIStackView 未按预期显示

UIAlertController 未按预期运行