Discord.js:在类别中创建渠道

时间:2020-07-09 13:07:44

标签: node.js discord discord.js

我想制作一个设计服务器的机器人,以便它的工作是建立频道和角色,以便所有者不必浪费时间来设置服务器。这是我的代码:

  if (message.content === 'tchannel') {
      message.guild.channels.create('Important', {
        type: 'category',
        permissionOverwrites: [
          {
              id: message.guild.id,
              allow: ['VIEW_CHANNEL'],
          }]
      })
      
      message.guild.channels.create('Rules', {
          type: 'text',
          permissionOverwrites: [
              {
                  id: message.guild.id,
                  allow: ['VIEW_CHANNEL'],
              }]
          })
       
  message.channel.send("Channel Created!")
    }

我想知道的是,是否有一种方法可以使文本通道连接到类别而不是单独创建?

https://media.discordapp.net/attachments/730705963018879007/730771756784156752/lol.PNG

3 个答案:

答案 0 :(得分:1)

参数cat不需要具有cat.parentID。只需放入cat,就可以了。

示例代码:

message.guild.channels.create('Important ', {
                type: 'category',
                position: 1,
                permissionOverwrites: [
                    {
                        id: message.guild.id,
                        allow: ['VIEW_CHANNEL'],
                    }]
            }).then(cat => {
                message.guild.channels.create('Rules', {
                    type: 'text',
                    parent: cat,
                    permissionOverwrites: [
                        {
                            id: message.guild.id,
                            allow: ['VIEW_CHANNEL'],
                        }]
                })

答案 1 :(得分:0)

只需添加.then方法并从中获取parentID即可。您可以将类别分配给变量,然后再将其分配给其他人。

    message.guild.channels.create('Important', {
        type: 'category',
        permissionOverwrites: [
          {
              id: message.guild.id,
              allow: ['VIEW_CHANNEL'],
          }]
      }).then(cat => {
        message.guild.channels.create('Rules', {
            type: 'text',
            parent: cat.parentID,
            permissionOverwrites: [
                {
                    id: message.guild.id,
                    allow: ['VIEW_CHANNEL'],
                }]
            })
      })

答案 2 :(得分:0)

我认为您的意思是执行命令创建通道时,它必须在当前通道的类别下创建它。

如果是这样,您需要这样做:

const category = client.channels.cache.get(message.channel.parentID)