@ -20,37 +20,36 @@ def connect_callback(cli):
@@ -20,37 +20,36 @@ def connect_callback(cli):
cli . msg ( botconfig . CHANNEL , " \u0002 Wolfbot2 is here. \u0002 " )
def reset_game ( ) :
vars . GAME_STARTED = False
vars . ROLES = { " person " : [ ] }
vars . PHASE = " none "
# Command Handlers:
@cmd ( " !say " )
def say ( cli , raw nick, rest ) : # To be removed later
cli . msg ( botconfig . CHANNEL , " {0} says: {1} " . format ( parse_ nick( rawnick ) [ 0 ] , rest ) )
def say ( cli , nick , rest ) : # To be removed later
cli . msg ( botconfig . CHANNEL , " {0} says: {1} " . format ( nick , rest ) )
@pmcmd ( " !bye " )
@cmd ( " !bye " )
def forced_exit ( cli , raw nick, * rest ) : # Admin Only
if parse_ nick( rawnick ) [ 0 ] in botconfig . ADMINS :
def forced_exit ( cli , nick , * rest ) : # Admin Only
if nick in botconfig . ADMINS :
cli . quit ( " Forced quit from admin " )
raise SystemExit
@cmd ( " !exec " )
def py ( cli , raw nick, chan , rest ) :
if parse_ nick( rawnick ) [ 0 ] in botconfig . ADMINS :
def py ( cli , nick , chan , rest ) :
if nick in botconfig . ADMINS :
exec ( rest )
@cmd ( " !ping " )
def pinger ( cli , raw nick, chan , rest ) :
def pinger ( cli , nick , chan , rest ) :
vars . PINGING = True
TO_PING = [ ]
@hook ( " whoreply " )
def on_whoreply ( server , dunno , chan , dunno1 , dunno2 , dunno3 , user , status , dunno4 ) :
if not vars . PINGING : return
if user in ( botconfig . NICK , parse_ nick( rawnick ) [ 0 ] ) : return # Don't ping self.
if user in ( botconfig . NICK , nick ) : return # Don't ping self.
if vars . PINGING and ' G ' not in status and ' + ' not in status :
# TODO: check if the user has AWAY'D himself
@ -68,38 +67,37 @@ def pinger(cli, rawnick, chan, rest):
@@ -68,38 +67,37 @@ def pinger(cli, rawnick, chan, rest):
HOOKS . pop ( " endofwho " )
cli . send ( " WHO " + chan )
@cmd ( " !join " )
def join ( cli , rawnick , chan , rest ) :
if vars . PHASE != " none " :
return
vars . GAME_STARTED = True
nick = parse_nick ( rawnick ) [ 0 ]
cli . msg ( chan , ' {0} has started a game of Werewolf. \
def join ( cli , nick , chan , rest ) :
if vars . PHASE == " none " :
vars . ROLES [ " person " ] . append ( nick )
vars . PHASE = " join "
cli . msg ( chan , ' \u0002 {0} \u0002 has started a game of Werewolf. \
Type " !join " to join . Type " !start " to start the game . \
Type " !wait " to increase join wait time . ' .format(nick))
vars . ROLES [ " person " ] . append ( nick )
vars . PHASE = " join "
elif nick in list_players ( ) :
cli . notice ( nick , " You ' re already playing! " )
elif vars . PHASE != " join " :
cli . notice ( nick , " Sorry but the game is already running. Try again next time. " )
else :
vars . ROLES [ " person " ] . append ( nick )
cli . msg ( chan , ' \u0002 {0} \u0002 has joined the game. ' . format ( nick ) )
@cmd ( " !stats " )
def stats ( cli , raw nick, chan , rest ) :
def stats ( cli , nick , chan , rest ) :
if vars . PHASE == " none " :
return
nick = parse_nick ( rawnick ) [ 0 ]
pl = [ ]
for x in vars . ROLES . values ( ) : pl . extend ( x )
pl = list_players ( )
if len ( pl ) > 1 :
cli . msg ( chan , ' {0} : {1} players: {2} ' . format ( nick ,
len ( pl ) , " , " . join ( pl ) ) )
else :
cli . msg ( chan , ' {0} : 1 player: {1} ' . format ( nick , pl [ 0 ] ) )
if vars . PHASE == " join " :
return
msg = [ ]
for role in vars . ROLES . keys ( ) :
num = len ( vars . ROLES [ role ] )
@ -117,4 +115,11 @@ def stats(cli, rawnick, chan, rest):
@@ -117,4 +115,11 @@ def stats(cli, rawnick, chan, rest):
elif len ( msg ) == 1 :
cli . msg ( chan , " {0} : There is " . format ( nick ) + msg [ 0 ] + " . " )
# Game Logic Ends
@cmd ( " !start " )
def start ( cli , nick , chan , rest ) :
pl = list_players ( )
if ( len ( pl ) ) < 4 :
cli . msg ( chan , " {0} : Four or more players are required to play. " . format ( nick ) )
return