Дискорд-бот на JS Работает только одна команда из трёх
У меня написан бот на Java Script, Работает только команда "clear" - удаление сообщений, команды "say" - повтор сообщения и "test" - отправка тестового сообщения не работают Код:
const config = require('./config.json'); // Подключаем файл с параметрами и информацией
const Discord = require('discord.js'); // Подключаем библиотеку discord.js
const prefix = config.prefix; // «Вытаскиваем» префикс
// Команды //
function test(robot, mess, args) {
mess.channel.send('Test!')
}
function say(robot, mess, args) {
if (!mess.member.hasPermission("MANAGE_MESSAGES")) return mess.channel.send("У вас нет прав"); /* Если у исполнителя команды нету привилегии MANGAGE_MESSAGES, он не сможет её использовать */
args = mess.content.split(' ');
args.shift();
args = args.join(' ');
mess.delete().catch(); // Удаление сообщения пользователя после отправки
mess.channel.send(args)
}
function clear(robot, mess) {
const arggs = mess.content.split(' ').slice(1); // Все аргументы за именем команды с префиксом
const amount = arggs.join(' '); // Количество сообщений, которые должны быть удалены
if (!amount) return mess.channel.send('Вы не указали, сколько сообщений нужно удалить!'); // Проверка, задан ли параметр количества
if (isNaN(amount)) return mess.channel.send('Это не число!'); // Проверка, является ли числом ввод пользователя
if (amount > 100) return mess.channel.send('Вы не можете удалить 100 сообщений за раз'); // Проверка, является ли ввод пользователя числом больше 100
if (amount < 1) return mess.channel.send('Вы должны ввести число больше чем 1'); // Проверка, является ли ввод пользователя числом меньше 1
async function delete_messages() { // Объявление асинхронной функции
await mess.channel.messages.fetch({
limit: amount
}).then(messages => {
mess.channel.bulkDelete(messages)
mess.channel.send(`Удалено ${amount} сообщений!`)
})
};
delete_messages(); // Вызов асинхронной функции
}
// Список команд //
var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
}];
var comms_list = [{
name: "say",
out: say,
about: "Повтор сообщения"
}];
var comms_list = [{
name: "clear",
out: clear,
about: "удаление сообщений пользователей"
}];
// Name - название команды, на которую будет реагировать бот
// Out - название функции с командой
// About - описание команды
module.exports.comms = comms_list
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
А Вас не смущяет такое
var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
}];
var comms_list = [{
name: "say",
out: say,
about: "Повтор сообщения"
}];
var comms_list = [{
name: "clear",
out: clear,
about: "удаление сообщений пользователей"
}];
объявление 3 переменных с одиннаковым именем ....
может всё же так поможет
var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
}];
comms_list.push({
name: "say",
out: say,
about: "Повтор сообщения"
});
comms_list.push({
name: "clear",
out: clear,
about: "удаление сообщений пользователей"
});