Я работал над этой очередью для бота discord.js. Что он делает, кто-то делает! Smm submit, а затем он добавит его в файл JSON следующим образом:
"1": "id",
"2": "anotherid"
Тогда, если кто-то сделает! Smm delete, он удалит первый элемент в списке. По какой-то причине, если я сделаю это, он сохранит то же количество объектов, но вместо этого он будет дублировать последний объект, поэтому, если мой файл JSON был таким
"1": "id",
"2": "anotherid",
"3": "thisid"
Это было бы в конце
"1": "anotherid",
"2": "thisid",
"3": "thisid"
Если у вас есть лучший способ для очереди, пожалуйста, скажите мне иначе, вот мой код для команды и ее подкоманд. Установлен api editJsonFile, поэтому, когда вы видите «queue.set (« foo »,« foobar »)», «foo» - это имя объекта, а «foobar» - это значение объекта:
if(cmd === `${prefix}smm`){
let type = args[0];
let a = args[1];
if(type === "submit"){
message.delete()
if(a){
if(a.charAt(4) === "-" && a.charAt(9) === "-" && a.charAt(14) === "-"){
for(x = 1; x < 10000; x++){
if(!file[x]){
console.log(x)
queue.set(`${x}`, `${a}`)
return;
}
}
}else{
message.author.send("Sorry but you typed in the ID wrong. Make sure you include these '-' to separate it.")
}
}
}
if(type === "delete"){
message.delete()
let arr = [];
for(x = 1; x < 10000; x++){
if(file[x]){
arr.push(file[x])
}else{
let arrr = arr.slice(1)
console.log(arrr)
fs.writeFile(`./queue.json`, '{\n \n}', (err) => {
if (err) {
console.error(err);
return;
};
});
setTimeout(function(){
console.log(arrr.length)
for(e = 0; e < arrr.length; e++){
console.log(`e: ${e} || arrr.length: ${arrr.length}`)
queue.set(`${e+1}`, `${arrr[e]}`)
}
return;
}, 3000)
return;
}
}
}
}