#javascript #node.js #asynchronous #discord #discord.js
#javascript #node.js #асинхронный #Discord #discord.js
Вопрос:
В настоящее время я создаю бота discord, но у меня есть проблема. Я все еще новичок в discord.js и node.js . Это мой код:
module.exports.run = async (bot, message, args) => {
function getMenu() {
var hpmenu = {};
return new Promise(function(resolve, reject) {
dashboard.readServerBoundValue(
`${message.guild.id}`,
'PREFIX',
async function(output) {
if (output) {
var prefixxx = output;
} else {
var prefixxx = config.botPrefix;
}
//=====================================================================================================
fs.readdir('./src/commands/', (err2, files2) => {
files2.forEach((f2, i2) => {
hpmenu[f2] = new discord.MessageEmbed();
hpmenu[f2].setTitle(`${f2}`);
console.log('Added catagory ' f2);
//=========================================================================================
fs.readdir(`./src/commands/${f2}`, (err, files) => {
files.forEach((f, i) => {
const cmd = f.replace('.js', '');
hpmenu[f2].addField(cmd, 'test');
console.log('Added command ' cmd);
//=====================================================================================================
});
resolve(hpmenu);
});
});
});
}
);
});
}
async function main() {
var output = await getMenu();
message.channel.send(output['developer']);
}
main();
};
В этом коде нет ошибок, но это проблема, с которой я сталкиваюсь:
Проблема в том, что она запускает основную функцию до завершения getMenu
функции. Как это решить? Я прочитал несколько сообщений об этом. Спасибо всем за чтение!
Ответ №1:
После большого количества кодирования я достиг своей цели; Создание динамического меню справки с нумерацией страниц. Это код:
Он работает хорошо. Единственное, что вам нужно, это создать файл с именем config.json в корневом каталоге бота, где index.js находится и добавьте ключ с именем «embedColor», поместите ваши команды в
./src/commands/CATAGORY/COMMAND.js
и это результат:
извините за плохой английский. Обратите внимание, что если вы используете его, вам все равно придется самостоятельно реализовать префикс и описание, это зависит от обработчика команд и ядра базы данных. Вы можете изменить код описания и имя команды в строке 19 в pastebin. если вам нужно изображение, вы можете добавить новую строку после строки 13:
hmu[i].setImage("IMAGE");
Это просто вставка discord, и она будет работать нормально, добавлять эскизы, авторов и изменять, как вам нравится. Вам не нужно доверять мне, если вы используете его
Извините за мой плохой английский и спасибо Lioness100 за редактирование текста. Английский не мой родной язык 🙂 Всем хорошего дня, пока!