Во избежании спама в чате нужно сделать так, что бы пользователь который только что воспользовался данной командой, смог её использовать ещё раз только через 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
Продвижение своими сайтами как стратегия роста и независимости