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

vsi*_*010 6 javascript discord discord.js

我正在为我的朋友编写一个 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)
Run Code Online (Sandbox Code Playgroud)

一切都停在了guild变量上。它给了我空/未定义,当去时guild.roles.get(),它导致我的程序崩溃。我尝试使用.find()而不是.get()查找公会,但这也不起作用。

Y. *_*iev 14

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

var server = client.guilds.cache.get(serverID);
Run Code Online (Sandbox Code Playgroud)

这对我有用。希望能帮助到你!


Tom*_*tin 0

我无法给出为什么发生这种情况的原因,但我当前使用的方法是这样的:

var g = client.guilds.get("GUILD-ID");
var c = g.channels.get("CHANNEL-ID");
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

var c = client.guilds.get("GUILD-ID").channels.get("CHANNEL-ID");
Run Code Online (Sandbox Code Playgroud)