【问题标题】:How does a bot create a category with channels in it?机器人如何创建一个包含频道的类别?
【发布时间】:2020-11-05 17:27:13
【问题描述】:
      if(!args[0]) return message.channel.send("Missing Parameter: `guild`")
      if(args[0] === "guild") {
      const loggingChannel = message.guild.channels.cache.find(ch => ch.name === "katsu-member-logs");
      const katsuCategory = "Chika Logs";
      if(!loggingChannel) {
      const channelName = "katsu-member-logs";
          message.guild.channels.create(channelName, { parent: katsuCategory.id, topic: "Katsu Member Logs" }).then(c => {
              const allUsers = message.guild.roles.cache.find(r => r.name === "@everyone")
              c.updateOverwrite(allUsers, {
                  SEND_MESSAGES: false
              })
          });
        } else {
            await message.channel.send("Oops, it looks like `katsu-member-logs` channel already exist in this server");
        }
      }
    }

我有这段代码。它在创建频道时工作正常,但是,它没有创建频道应该去的文本类别。我不太确定如何解决此问题。 Discord.JS v12.2.0

【问题讨论】:

  • 看起来您正在将katsuCategory 设置为值为“Chika Logs”的字符串,因为这是一个简单的字符串,而不是对该类别的通道对象的引用,它具有没有id 值,不能设置为通道的父级。您需要做的是单独创建类别(或者如果已创建类别,则获取该类别的对象),然后使用它为新通道设置父级。

标签: javascript node.js discord bots discord.js


【解决方案1】:

您需要将此语句替换为以下内容:

const katsuCategory = "Chika Logs";

应该是:

const katsuCategory = message.guild.channels.cache.find(c => c.name === 'Chika Logs' && c.type === 'category');

您现在应该能够访问它的 ID 并使用该 ID 作为父频道创建一个频道 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-28
    • 2019-11-16
    • 2023-04-10
    • 2020-12-01
    • 2017-03-18
    • 2021-04-04
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多