我目前正在制造一个机器人,该机器人被用作排队等候的人的队列。我在删除用户发送的旧消息时遇到困难,该消息已添加到队列中(这样就不会引起混乱)。
从客户端访问和删除旧邮件的正确方法是什么?
!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?
}
答案 0 :(得分:2)
我会在您的评论中同意Syntle,您应该立即将其删除。
也就是说,如果您真的想这样做,这是问题的答案:
队列将需要某种多维存储。有多种选择,但是我将用一组对象进行演示。
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();
}
}