我目前正在制作一个机器人,用作排队等候的人的队列。我在删除用户发送的旧消息时遇到困难,该消息已添加到队列中(这样就不会造成混乱)。
从客户端访问和删除旧邮件的正确方法是什么?
!next->将人员添加到队列中,!remove->应该删除队列中的第一个人,并删除用户在聊天中输入的“!next”呼叫。
client.on('message', message => {
user = message.member;
user = user.toString();
idNumber = message.member.id;
if (message.content === '!next') {
x++;
message.reply('Added to waiting queue. Position ' + x);
arrayName.push(user);
idName.push(idNumber);
}
else if (message.content === '!remove') {
x--;
arrayName.shift();
idName.shift();
message.reply('Removed Top User from Queue. Users Left: ' + x);
//how to remove !next call from user that called it?
}
您将需要某种多维存储空间来存储队列。有多种选择,但我将用一组对象进行演示。
if (message.content === '!next') {
array.push({Id: idNumber, User: user, Message: message});
message.reply('Added to waiting queue. Position ' + array.length);
} else if (message.content === '!remove') {
let record = array.shift();
message.reply('Removed Top User from Queue. Users Left: ' + array.length);
if(!record.Message.deleted) {
record.Message.delete();
}
}