Получение разрешений из TextChannel - Discord.js - PullRequest
0 голосов
/ 14 июня 2019

По сути, мне нужно получить права доступа к текущему текстовому каналу, в котором находится пользователь. Я уже получил имя канала, если мне нужно получить идентификатор, который должен быть довольно простым.

const Discord = require("discord.js");

module.exports.run = async (client, message, args) => {
  let currentChannel = message.channel.name;
  let category = message.channel.parent;;
  message.guild.createChannel(currentChannel).then(mchannel => {
    mchannel.setParent(category).then(() => {
      message.channel.delete();
    });
  });
}

module.exports.help = {
    name: "a.cleanchannel"
}
// Need the channel permissions to overwrite the new channel's permissions with the old ones

Ожидаемые результаты состоят в том, что канал должен иметь те же разрешения, что и старый.

1 Ответ

1 голос
/ 14 июня 2019

Чтобы ответить на ваш вопрос напрямую, вы можете использовать GuildChannel.permissionOverwrites, чтобы создать новый канал с теми же разрешениями, что и у старого.Например ...

message.guild.createChannel(message.channel.name, {
  type: 'text',
  permissionOverwrites: message.channel.permissionOverwrites
});

Однако похоже, что вы пытаетесь клонировать канал.Чтобы облегчить эту задачу, в Discord.js встроен метод - GuildChannel.clone().Вы можете использовать его так ...

message.channel.clone(undefined, true, true) // Same name, same permissions, same topic 
  .then(async clone => {
    await clone.setParent(message.channel.parent);
    await clone.setPosition(message.channel.position);
    await message.channel.delete();

    console.log(`Cloned #${message.channel.name}`);
  })
  .catch(console.error);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...