Browse Source

make !frehash more powerful

master
jcao219 12 years ago
parent
commit
02171c2875
  1. 42
      modules/common.py
  2. 48
      modules/wolfgame.py

42
modules/common.py

@ -7,6 +7,7 @@ import tools.moduleloader as ld @@ -7,6 +7,7 @@ import tools.moduleloader as ld
import traceback
from settings import common as var
from base64 import b64encode
import imp
def on_privmsg(cli, rawnick, chan, msg, notice = False):
currmod = ld.MODULES[ld.CURRENT_MODULE]
@ -102,7 +103,10 @@ def connect_callback(cli): @@ -102,7 +103,10 @@ def connect_callback(cli):
cli.cap("REQ", "extended-join")
cli.cap("REQ", "account-notify")
ld.MODULES[ld.CURRENT_MODULE].connect_callback(cli)
try:
ld.MODULES[ld.CURRENT_MODULE].connect_callback(cli)
except AttributeError:
pass # no connect_callback for this one
cli.nick(botconfig.NICK) # very important (for regain/release)
@ -158,7 +162,43 @@ def connect_callback(cli): @@ -158,7 +162,43 @@ def connect_callback(cli):
@hook("ping")
def on_ping(cli, prefix, server):
cli.send('PONG', server)
@cmd("frehash", admin_only = True)
def reload_modules(cli, nick, chan, rest):
error = False
try:
imp.reload(var)
imp.reload(botconfig)
imp.reload(decorators.botconfig)
except SyntaxError as e:
logging.error(traceback.format_exc())
cli.msg(chan, "Syntax error.")
error = True
for nam, mod in ld.MODULES.items():
if nam == ld.CURRENT_MODULE:
try:
mod.quit_callback(cli)
except AttributeError:
pass # no quit_callback
print("Reloading module {0}....".format(nam))
try:
imp.reload(mod)
imp.reload(mod.var)
imp.reload(mod.botconfig)
imp.reload(mod.decorators.botconfig)
except AttributeError:
pass
except SyntaxError as e:
logging.error(traceback.format_exc())
cli.msg(chan, "Syntax error in module {0}".format(nam))
error = True
if not error:
cli.msg(chan, "Operation successful.")
if botconfig.DEBUG_MODE:
@cmd("module", admin_only = True)

48
modules/wolfgame.py

@ -116,7 +116,13 @@ def connect_callback(cli): @@ -116,7 +116,13 @@ def connect_callback(cli):
cli.mode(botconfig.CHANNEL, "q") # unquiet all
cli.who(botconfig.CHANNEL, "%nuhaf")
def quit_callback(cli):
# clean up
if var.PHASE in ("day", "night"):
stop_game(cli)
else:
reset(cli)
@ -217,24 +223,24 @@ def restart_program(cli, nick, *rest): @@ -217,24 +223,24 @@ def restart_program(cli, nick, *rest):
@cmd("frehash", admin_only=True)
def frehash(cli, nick, chan, rest):
if var.PHASE in ("day", "night"):
stop_game(cli)
else:
reset(cli)
imp.reload(botconfig)
imp.reload(var)
imp.reload(decorators.botconfig)
if botconfig.DEBUG_MODE:
var.NIGHT_TIME_LIMIT = 0 # 90
var.DAY_TIME_LIMIT_WARN = 0
var.DAY_TIME_LIMIT_CHANGE = 0
var.KILL_IDLE_TIME = 0 #300
var.WARN_IDLE_TIME = 0 #180
cli.msg(chan, "Operation successful.")
# @cmd("frehash", admin_only=True)
# def frehash(cli, nick, chan, rest):
# if var.PHASE in ("day", "night"):
# stop_game(cli)
# else:
# reset(cli)
# imp.reload(botconfig)
# imp.reload(var)
# imp.reload(decorators.botconfig)
# if botconfig.DEBUG_MODE:
# var.NIGHT_TIME_LIMIT = 0 # 90
# var.DAY_TIME_LIMIT_WARN = 0
# var.DAY_TIME_LIMIT_CHANGE = 0
# var.KILL_IDLE_TIME = 0 #300
# var.WARN_IDLE_TIME = 0 #180
# cli.msg(chan, "Operation successful.")
@ -785,9 +791,7 @@ def stop_game(cli, winner = ""): @@ -785,9 +791,7 @@ def stop_game(cli, winner = ""):
cli.msg(chan, "PING! " + var.ADMIN_TO_PING)
var.ADMIN_TO_PING = None
return True
return True
def chk_win(cli):
""" Returns True if someone won """

Loading…
Cancel
Save