Я пытаюсь заставить бота создать роль и перейти к указанному каналу в аргументах команды.
Код заставит бота перейти на указанный канал и добавить разрешения для роли, которую только что создал бот, и в этом проблема.
Консоль в VSC сообщает, что «роль / пользователь не указан» и пропускает это.
Я пытался изменить arole
на переменную и установить arole
(message.arole
) на arole.id
, и все равно это не сработало. Возиться и изменить настройки не удалось вообще.
let woaID = message.mentions.channels.first();
if (!woaID) return message.channel.send("Channel is nonexistant or command was not formatted properly. Please do s!woa #(channelname)");
let specifiedchannel = message.guild.channels.find(t => t.id == woaID.id);
var arole = message.guild.createRole({
name: `A marker v1.0`,
color: 0xcc3b3b,
hoist: false,
mentionable: false,
permissions: ['SEND_MESSAGES']
}).catch(console.error);
message.channel.send("Created role...");
message.channel.send("Role set up...");
/*const sbwrID = message.guild.roles.find(`null v1.0`);
let specifiedrole = message.guild.roles.find(r => r.id == sbwrID.id)*/
message.channel.send('Modified');
specifiedchannel.overwritePermissions(message.arole, {
VIEW_CHANNEL: true,
SEND_MESSAGES: false
})
.then(updated => console.log(updated.permissionOverwrites.get(arole.id)))
.catch(console.error);
Я ожидаю, что бот сможет получить доступ к указанному каналу в аргументах, создать роль и переопределить разрешения роли для этого канала.
Фактический вывод заключается в том, что бот делает все хорошо, но роль не имеет специальных разрешений для канала.