2019-07-11 20:28:05 +00:00
|
|
|
#--depends-on config
|
|
|
|
|
|
|
|
from src import ModuleManager, utils
|
|
|
|
|
2019-07-11 20:34:16 +00:00
|
|
|
DELAY = 5
|
|
|
|
|
2019-07-11 20:28:05 +00:00
|
|
|
@utils.export("serverset", utils.BoolSetting("kick-rejoin",
|
|
|
|
"Whether or not I should rejoin channels I get kicked from"))
|
2019-07-11 20:34:16 +00:00
|
|
|
@utils.export("serverset", utils.IntSetting("kick-rejoin-delay",
|
|
|
|
"Amount of seconds to wait before rejoining a channel"))
|
2019-07-11 20:28:05 +00:00
|
|
|
class Module(ModuleManager.BaseModule):
|
|
|
|
@utils.hook("self.kick")
|
|
|
|
def on_kick(self, event):
|
|
|
|
if event["server"].get_setting("kick-rejoin", False):
|
2019-07-11 20:34:16 +00:00
|
|
|
delay = event["server"].get_setting("kick-rejoin-delay", DELAY)
|
|
|
|
self.timers.add("kick-rejoin", delay, server=event["server"],
|
|
|
|
channel_name=event["channel"].name)
|
|
|
|
|
|
|
|
@utils.hook("timer.kick-rejoin")
|
|
|
|
def timer(self, event):
|
|
|
|
event["server"].send_join(event["channel_name"])
|