#javascript #mysql #discord.js
Вопрос:
База данных Это всего лишь набор тестов.
Не по теме: Если кто-то хочет сделать это намного чище, я был бы благодарен.
Тема:
Попытка настроить страницы для моей команды на рынке. БД выше.
Прямо сейчас я использую цикл FOR для выполнения первых 10.
Я ничего не сделал с Discord.Сообщения о реакции JS или страницы в целом.
Прямо сейчас я совершенно не обращаю внимания на то, что я должен пытаться сделать.
Команда полного списка в ссылке «первые 10«.
Если вам понадобятся еще изображения или другой блок кода, дайте мне знать. Я готов потратить на это время.
switch(args[1]) {
case 'common':
con.query(`SELECT * FROM market WHERE rarity = 'common'`, (err, rows) => {
if (err) throw err;
for (i = 0; i < rows.length; i ) {
if ((i 1) <= 10) {
Listing.addField(rows[i].username, `**[${rows[i].sellID}]**: **${rows[i].bun}**: ${rows[i].price}`);
}
}
message.channel.send(listing);
});
break;
}
Ответ №1:
Лучше использовать ловец реакций, но если это простая команда, вы также можете использовать обработчики. Нравится
let YourEmbed = //The embed
message.channel.send(YourEmbed).then(msg => {
message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] }).then( emojis => {
const reaction = emojis.first();
if (reaction.emoji.name === '➡️') {
let NewEmbed = //The previous embed but with changed data
msg.edit(NewEmbed);
}
});
});
Вам не нужно доставать все предметы. Вы можете получать 10 каждый раз. Нравится
con.query(`SELECT * FROM market WHERE rarity = 'common' LIMIT 10`, (err, rows) => {
//the rest
В следующий раз ты сможешь это сделать
con.query(`SELECT * FROM market WHERE rarity = 'common' LIMIT 10 OFFSET 10`, (err, rows) => {
//The rest
Вы должны поместить его в функцию, чтобы облегчить доступ к нему. Нравится:
getRows = (rarity, limit, min) => {
if(!min){min = 0}
con.query(`SELECT * FROM market WHERE rarity = ${rarity} LIMIT ${limit} OFFSET ${min}`, (err, rows) => {
if(!err){
return(rows);
}
}
Но после всего этого я предлагаю вам использовать кэшер реакции
Комментарии:
1. Извините за поздний ответ. Спасибо за ответ. Хотя мне бы хотелось немного помочь. Я не понимаю, как включить это в мой текущий код . Я думаю, что понимаю, как использовать смещение, но я хотел бы знать; как я мог бы поместить кэшер реакции в свой код, потому что я не вижу, как он будет работать в настоящее время, если я просто вставлю его. Возможно, я упускаю это из виду или просто не совсем понимаю. Еще раз спасибо за ответ, я постараюсь, чтобы это сработало.
2. @Lexy Я предлагаю добавить для этого отдельную функцию. Лучше, если вы поместите функцию в другой файл и импортируете ее. Таким образом, он будет выглядеть чище. например, в
query.js
вы можете поместить опцию запроса. Затем вызовите егоleaderboard.js
, откуда вы можете поместить функцию для отправки встраивания и его редактирования. Наконец, импортируйте его на свою главную страницу и поместите функцию внутриswitch..case
используемой вами. Кстати, пожалуйста, обратите внимание в своем коде, который вы используетеRichEmbed
, который устарел и заменен наMessageEmbed