Во избежании спама в чате нужно сделать так, что бы пользователь который только что воспользовался данной командой, смог её использовать ещё раз только через 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Буду очень благодарен за помощь/совет! Спасибо! :)
Я новичок в JavaScript, только учусьНиже находится объект, который содержит контактную информацию
Как найти подстроку в начале строки, и убрать чувствительность к регистру?