wait: Add per-user rate limit
This commit is contained in:
parent
54fe9b347b
commit
431ebe86d3
@ -61,6 +61,7 @@ var.LAST_GSTATS = None
|
|||||||
var.LAST_PSTATS = None
|
var.LAST_PSTATS = None
|
||||||
var.LAST_TIME = None
|
var.LAST_TIME = None
|
||||||
var.LAST_START = {}
|
var.LAST_START = {}
|
||||||
|
var.LAST_WAIT = {}
|
||||||
|
|
||||||
var.USERS = {}
|
var.USERS = {}
|
||||||
|
|
||||||
@ -5879,11 +5880,17 @@ def wait(cli, nick, chan, rest):
|
|||||||
|
|
||||||
if chan != botconfig.CHANNEL:
|
if chan != botconfig.CHANNEL:
|
||||||
return
|
return
|
||||||
|
if (var.LAST_WAIT and nick in var.LAST_WAIT and var.LAST_WAIT[nick] +
|
||||||
|
timedelta(seconds=var.WAIT_RATE_LIMIT) > datetime.now()):
|
||||||
|
cli.notice(nick, ("This command is rate-limited. Please wait a while "
|
||||||
|
"before using it again."))
|
||||||
|
return
|
||||||
if var.WAITED >= var.MAXIMUM_WAITED:
|
if var.WAITED >= var.MAXIMUM_WAITED:
|
||||||
cli.msg(chan, "Limit has already been reached for extending the wait time.")
|
cli.msg(chan, "Limit has already been reached for extending the wait time.")
|
||||||
return
|
return
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
var.LAST_WAIT[nick] = now
|
||||||
if now > var.CAN_START_TIME:
|
if now > var.CAN_START_TIME:
|
||||||
var.CAN_START_TIME = now + timedelta(seconds=var.EXTRA_WAIT)
|
var.CAN_START_TIME = now + timedelta(seconds=var.EXTRA_WAIT)
|
||||||
else:
|
else:
|
||||||
|
@ -14,6 +14,7 @@ GSTATS_RATE_LIMIT = 0
|
|||||||
PSTATS_RATE_LIMIT = 0
|
PSTATS_RATE_LIMIT = 0
|
||||||
TIME_RATE_LIMIT = 10
|
TIME_RATE_LIMIT = 10
|
||||||
START_RATE_LIMIT = 10 # (per-user)
|
START_RATE_LIMIT = 10 # (per-user)
|
||||||
|
WAIT_RATE_LIMIT = 10 # (per-user)
|
||||||
SHOTS_MULTIPLIER = .12 # ceil(shots_multiplier * len_players) = bullets given
|
SHOTS_MULTIPLIER = .12 # ceil(shots_multiplier * len_players) = bullets given
|
||||||
SHARPSHOOTER_MULTIPLIER = 0.06
|
SHARPSHOOTER_MULTIPLIER = 0.06
|
||||||
MIN_PLAYERS = 4
|
MIN_PLAYERS = 4
|
||||||
|
Loading…
Reference in New Issue
Block a user