#javascript #node.js #discord.js
#javascript #node.js #discord.js
Вопрос:
Я программирую бота discord и выполняю команду запрета: запуск бота работает нормально, но как только я запускаю ‘/ ban’, я получаю сообщение об ошибке в консоли. Какое-либо исправление? Код:
module.exports = {
name: "ban",
description: "Bans a member from the server",
execute(message) {
if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('You can't use that!');
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('I don't have the right permissions.');
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if (!args[0]) {
return message.channel.send('Please specify a user!');
}
if (!member) {
return message.channel.send('Cant find that user');
}
if (!member.bannable) {
return message.channel.send('Cant ban that user');
}
let reason = args.slice(1).join(" ");
if (!reason) {
reason = 'Unspecified';
}
member.ban({ days: 7, reason: '${reason}' }).catch(err => {
message.channel.send('Something went wrong');
console.log(err);
});
const banembed = new Discord.MessageEmbed()
.setTitle('Member Banned')
.setThumbnail(member.user.displayAvatarURL())
.addField('User Banned', member)
.addField('Kicked by', message.author)
.addField('Reason', reason)
.setFooter('Time kicked', client.user.displayAvatarURL())
.setTimestamp();
message.channel.send(banembed);
}
};
И вот ошибка:
ReferenceError: args is not defined
at Object.execute (C:UsersawesoDocumentsProjectsVatox-BOTcommandsban2.js:8:92)
at Client.<anonymous> (C:UsersawesoDocumentsProjectsVatox-BOTindex.js:67:11)
at Client.emit (node:events:327:20)
at MessageCreateAction.handle (C:UsersawesoDocumentsProjectsVatox-BOTnode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:UsersawesoDocumentsProjectsVatox-BOTnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UsersawesoDocumentsProjectsVatox-BOTnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:UsersawesoDocumentsProjectsVatox-BOTnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:UsersawesoDocumentsProjectsVatox-BOTnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10)
at WebSocket.onMessage (C:UsersawesoDocumentsProjectsVatox-BOTnode_moduleswslibevent-target.js:132:16)
at WebSocket.emit (node:events:327:20)
Я знаю, что очевидным решением является определение «аргументов», но это выполняется из Index.js который уже определил аргументы.
Комментарии:
1. Переменные не переносятся из файла в файл. Вам нужно передать
args
массивexecute
функции в вашем обработчике команд.
Ответ №1:
попробуйте добавить аргументы здесь и внутри вашего родительского элемента в вашем index.js : выполнить(сообщение, аргументы)
Комментарии:
1. Добро пожаловать в SOF, пожалуйста, прокомментируйте однострочные ответы, спасибо