Так что у меня возникли проблемы с созданием моего бота. Все, что я пытаюсь сделать, это отслеживать список игроков, которые набирают команду «+ me», чтобы присоединиться к «списку ожидания», «-me» для удаления из списка и «? List"для отображения списка. Я планирую добавить другие команды позже.
Проблема, с которой я столкнулся, заключается в том, что команда отлично работает, чтобы добавить кого-то в список, однако после первой команды бот перестает отвечать на команды. Это оставляет меня в состоянии добавить себя в очередь, но затем не может выйти, никто не может присоединиться, не может перечислить его и т. Д. Также, если вы могли бы упомянуть способ перемещения цикла for, который я использую для отображениясписок в отдельную функцию я бы очень оценил. Я новичок в Javascript, и мои попытки почему-то терпят крах.
![Exmaple of issue](https://i.stack.imgur.com/MVHoo.png)
const Discord = require('discord.js');
const {prefix, token} = require('./config.json');
const client = new Discord.Client();
var rankedList = []; // Initialise an empty array
client.login(token);
client.once('ready', () =>{
console.log('Ready!');
})
client.once('message', message =>{
// Add to queue
if(message.content.startsWith(`${prefix}me`)){
console.log(message.author + "added to queue.");
message.channel.send(message.author + " added to queue.");
var temp = message.author;
rankedList.push(temp); // the array will dynamically grow
// Show queue after adding
//for (var i = 0; i < rankedList.length; i++) {
// message.channel.send(i+1 + "- " + rankedList[i]);
//}
message.channel.send(`${rankedList.map((player,index) => `${index+1} - ${player}`).join('n')}`);
}
// Remove from queue
if(message.content.startsWith(`-me`)){
console.log(message.author + "removed from queue.");
message.channel.send(message.author + " removed from queue.");
for( var i = 0; i < rankedList.length; i++){
if ( rankedList[i] === message.author) {
rankedList.splice(i, 1);
i--;
}
}
// Show queue after removing
for (var i = 0; i < rankedList.length; i++) {
message.channel.send(i+1 + "- " + rankedList[i]);
}
}
if(message.content.startsWith(`?list`)){
console.log(message.author + "displayed the queue.");
// Show list
for (var i = 0; i < rankedList.length; i++) {
message.channel.send(i+1 + "- " + rankedList[i]);
}
}
})