somewhat modified the anti-flood, and fixed some howl differences
This commit is contained in:
parent
e2afd41a69
commit
a98061e55e
@ -104,7 +104,7 @@ class IRCClient(object):
|
|||||||
self.blocking = True
|
self.blocking = True
|
||||||
self.lock = threading.RLock()
|
self.lock = threading.RLock()
|
||||||
|
|
||||||
self.tokenbucket = TokenBucket(3, 1.73)
|
self.tokenbucket = TokenBucket(28, 1.73)
|
||||||
self.last_messaged = ""
|
self.last_messaged = ""
|
||||||
|
|
||||||
self.__dict__.update(kwargs)
|
self.__dict__.update(kwargs)
|
||||||
@ -145,6 +145,9 @@ class IRCClient(object):
|
|||||||
msg = bytes(" ", "utf_8").join(bargs)
|
msg = bytes(" ", "utf_8").join(bargs)
|
||||||
logging.info('---> send "{0}"'.format(msg))
|
logging.info('---> send "{0}"'.format(msg))
|
||||||
|
|
||||||
|
while not self.tokenbucket.consume(1):
|
||||||
|
pass
|
||||||
|
|
||||||
self.socket.send(msg + bytes("\r\n", "utf_8"))
|
self.socket.send(msg + bytes("\r\n", "utf_8"))
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
@ -226,12 +229,6 @@ class IRCClient(object):
|
|||||||
raise SystemExit # lets exit
|
raise SystemExit # lets exit
|
||||||
def msg(self, user, msg):
|
def msg(self, user, msg):
|
||||||
for line in msg.split('\n'):
|
for line in msg.split('\n'):
|
||||||
if user == self.last_messaged:
|
|
||||||
while not self.tokenbucket.consume(1):
|
|
||||||
pass
|
|
||||||
else: # ?
|
|
||||||
while not self.tokenbucket.consume(0.37):
|
|
||||||
pass
|
|
||||||
self.send("PRIVMSG", user, ":{0}".format(line))
|
self.send("PRIVMSG", user, ":{0}".format(line))
|
||||||
self.last_messaged = user
|
self.last_messaged = user
|
||||||
privmsg = msg # Same thing
|
privmsg = msg # Same thing
|
||||||
|
2
var.py
2
var.py
@ -2,7 +2,7 @@ PING_WAIT = 300 # Seconds
|
|||||||
MINIMUM_WAIT = 60
|
MINIMUM_WAIT = 60
|
||||||
EXTRA_WAIT = 20
|
EXTRA_WAIT = 20
|
||||||
MAXIMUM_WAITED = 2 # limit for amount of !wait's
|
MAXIMUM_WAITED = 2 # limit for amount of !wait's
|
||||||
MAX_SHOTS = 2
|
SHOTS_MULTIPLIER = .12 # ceil(shots_multiplier * len_players) = bullets given
|
||||||
MAX_PLAYERS = 30
|
MAX_PLAYERS = 30
|
||||||
DRUNK_SHOTS_MULTIPLIER = 3
|
DRUNK_SHOTS_MULTIPLIER = 3
|
||||||
NIGHT_TIME_LIMIT = 90
|
NIGHT_TIME_LIMIT = 90
|
||||||
|
@ -22,6 +22,7 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import imp
|
import imp
|
||||||
|
import math
|
||||||
|
|
||||||
COMMANDS = {}
|
COMMANDS = {}
|
||||||
PM_COMMANDS = {}
|
PM_COMMANDS = {}
|
||||||
@ -1761,9 +1762,10 @@ def start(cli, nick, chan, rest):
|
|||||||
|
|
||||||
for gnr in random.sample(possible, len(var.ROLES["gunner"])):
|
for gnr in random.sample(possible, len(var.ROLES["gunner"])):
|
||||||
if var.ROLES["village drunk"] == gnr:
|
if var.ROLES["village drunk"] == gnr:
|
||||||
var.GUNNERS[gnr] = var.DRUNK_SHOTS_MULTIPLIER * var.MAX_SHOTS
|
var.GUNNERS[gnr] = (var.DRUNK_SHOTS_MULTIPLIER *
|
||||||
|
math.ceil(var.SHOTS_MULTIPLIER * len(var.list_players())))
|
||||||
else:
|
else:
|
||||||
var.GUNNERS[gnr] = var.MAX_SHOTS
|
var.GUNNERS[gnr] = math.ceil(var.SHOTS_MULTIPLIER * len(var.list_players()))
|
||||||
del var.ROLES["gunner"]
|
del var.ROLES["gunner"]
|
||||||
|
|
||||||
var.ROLES["villager"] = villagers
|
var.ROLES["villager"] = villagers
|
||||||
@ -2160,7 +2162,7 @@ if botconfig.DEBUG_MODE:
|
|||||||
if len(rolargs) == 2 and len(rolargs[1]) < 7 and rolargs[1].isdigit():
|
if len(rolargs) == 2 and len(rolargs[1]) < 7 and rolargs[1].isdigit():
|
||||||
var.GUNNERS[who] = int(rolargs[1])
|
var.GUNNERS[who] = int(rolargs[1])
|
||||||
else:
|
else:
|
||||||
var.GUNNERS[who] = var.MAX_SHOTS
|
var.GUNNERS[who] = math.ceil(var.SHOTS_MULTIPLIER * len(var.list_players()))
|
||||||
if who not in pl:
|
if who not in pl:
|
||||||
var.ROLES["villager"].append(who)
|
var.ROLES["villager"].append(who)
|
||||||
elif rol == "cursed":
|
elif rol == "cursed":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user