Во избежании спама в чате нужно сделать так, что бы пользователь который только что воспользовался данной командой, смог её использовать ещё раз только через 30 минут например. Сразу извиняюсь за тривиальность вопроса, искал решение, но не нашел того решения, которое может мне помочь.
client.on('chat', function (channel, username, message, self) {
if (message === "!команда") {
действие
}
});
Я бы предложил сохранять время последнего сообщения с командой и в следующий раз проверять, может ли юзер использовать команду снова. Что-то вроде этого:
const lastCommandTime = {};
const getTimestamp = () => Math.floor(Date.now() / 1000);
const delay = 1800; // 1800 sec = 30 min
client.on('chat', function (channel, username, message, self) {
if (message === "!команда") {
if(lastCommandTime[username] && (lastCommandTime[username] > getTimestamp() - delay)) {
// нельзя использовать команду, таймаут
} else {
// действие
lastCommandTime[username] = getTimestamp();
}
}
});
Если будет много команд с таймаутом и/или юзеров, то желательно хранить время последнего сообщения не в памяти, а в чем-то типо Redis
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Буду очень благодарен за помощь/совет! Спасибо! :)
Я новичок в JavaScript, только учусьНиже находится объект, который содержит контактную информацию
Как найти подстроку в начале строки, и убрать чувствительность к регистру?