【问题标题】:Client.guilds.get() not working as intendedClient.guilds.get() 未按预期工作
【发布时间】: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()) 告诉我你得到了什么

标签: javascript discord discord.js


【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 2022-01-24
      • 2015-05-11
      • 2020-05-15
      • 2014-10-31
      • 2018-02-12
      • 2014-01-20
      • 2015-01-13
      • 2013-08-01
      相关资源
      最近更新 更多