Я пытаюсь сделать так, чтобы мой бот мог просто проверить, выполнено ли одно разрешение, и я попробовал метод, где окружение разрешения с ['Permission']
и до сих пор работает, проблема в том, что еслиразрешения не соблюдаются, тогда бот выдает ошибку.
TypeError: Cannot read property 'edit' of undefined
Бот по-прежнему работает нормально, но он должен выдать сообщение типа «У меня нет прав» (который я добавил)вместо этого он просто выдает ошибку
An error occurred while running the command: TypeError: Cannot read property 'edit' of undefined
You shouldn't ever receive an error like this.
Please contact the bot owner.
.
Я попытался изменить расположение кода доступа, и я попытался найти другие посты об этом, но этобыл просто нормальный javascript, а не discord.js.
Я использовал метод, где он hasPermission("MANAGE_WEBHOOKS", "ADMINISTRATOR")
, но он проверяет, выполнены ли ОБА разрешения, для меня это нормально, если встречается только ОДНО разрешение, и я нене хочу, чтобы бот запрашивал, если у него самого и у автора сообщения есть оба разрешения.
const Discord = require('discord.js');
const commando = require('discord.js-commando');
class pingy2 extends commando.Command
{
constructor(client) {
super(client, {
name: 'pinghook2',
group: 'help',
memberName: 'pinghook2',
description: 'This is where you can set the pinghook.',
aliases: ['ph2'],
})
}
async run(message, args){
if(message.member.guild.me.hasPermission(["MANAGE_WEBHOOKS"], ["ADMINISTRATOR"]))
return message.channel.send("I don't have the permissions to make webhooks, please contact an admin or change my permissions!")
if (!message.member.hasPermission(["MANAGE_WEBHOOKS"], ["ADMINISTRATOR"]))
return message.channel.send("You need to be an admin or webhook manager to use this command.")
const avatar = `https://cdn.discordapp.com/attachments/515307677656678420/557050444954992673/Generic5.png`;
const name2 = "PingBot";
const hook = await message.channel.createWebhook(name2, avatar).catch(error => console.log(error))
await hook.edit(name2, avatar).catch(error => console.log(error))
message.channel.send("Your webhook is now created! You can delete it at any time and can be re-added by using this command! You can also edit the webhook's name or avatar.")
setInterval(() => {
hook.send("success!")
}, 1200);
}};
module.exports = pingy2;
Я ожидаю, что бот создаст веб-крючок при отправке команды в чате, и если бот обнаружит, чтотолько одно разрешение встречено, этовсе еще продолжает выполнение команды.
На самом деле произошло то, что бот создает веб-крючок без каких-либо ошибок, но когда вы лишаете бота разрешения ADMINISTRATOR
и MANAGE_WEBHOOKS
, он выдает «Anпроизошла ошибка во время выполнения команды. "ошибка, а не ошибка, введенная в код команды.