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