2011-11-20 10:23:31 +01:00
# Shitty plugin made by iloveportalz0r
# Broken by The Noodle
2012-02-20 04:29:46 +01:00
# Improved by Lukeroge
2011-11-20 10:23:31 +01:00
from util import hook
2012-02-20 04:29:46 +01:00
# Added to make the move to a new auth system a lot easier
2012-02-19 19:10:57 +01:00
def isadmin ( input ) :
if input . nick in input . bot . config [ " admins " ] :
return True
else :
return False
2012-02-20 04:29:46 +01:00
2011-11-20 10:23:31 +01:00
@hook.command
def join ( inp , input = None , db = None , notice = None ) :
" .join <channel> -- joins a channel "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2011-11-20 15:06:44 +01:00
notice ( " Attempting to join " + inp + " ... " )
2011-11-20 10:23:31 +01:00
input . conn . send ( " JOIN " + inp )
@hook.command
def cycle ( inp , input = None , db = None , notice = None ) :
" .cycle <channel> -- cycles a channel "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2011-11-20 15:06:44 +01:00
notice ( " Attempting to cycle " + inp + " ... " )
2011-11-20 10:23:31 +01:00
input . conn . send ( " PART " + inp )
input . conn . send ( " JOIN " + inp )
@hook.command
def part ( inp , input = None , notice = None ) :
" .part <channel> -- leaves a channel "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2011-11-20 15:06:44 +01:00
notice ( " Attempting to part from " + inp + " ... " )
2011-11-20 10:23:31 +01:00
input . conn . send ( " PART " + inp )
@hook.command
2012-02-19 03:26:19 +01:00
def nick ( inp , input = None , notice = None ) :
" .nick <nick> -- change the bots nickname to <nick> "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
notice ( " Changing nick to " + inp + " . " )
input . conn . send ( " NICK " + inp )
@hook.command
def raw ( inp , input = None , notice = None ) :
" .raw <command> - Send a RAW IRC command! "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
notice ( " Raw command sent. " )
input . conn . send ( inp )
@hook.command
def kick ( inp , input = None , notice = None ) :
" .kick [channel] <user> [reason] -- kick a user! "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2012-02-19 19:10:57 +01:00
split = inp . split ( " " )
if split [ 0 ] [ 0 ] == " # " :
chan = split [ 0 ]
user = split [ 1 ]
out = " KICK %s %s " % ( chan , user )
if len ( split ) > 2 :
2011-11-20 10:23:31 +01:00
reason = " "
2012-02-19 19:10:57 +01:00
for x in split [ 2 : ] :
2011-11-20 10:23:31 +01:00
reason = reason + x + " "
reason = reason [ : - 1 ]
out = out + " : " + reason
else :
2012-02-19 19:10:57 +01:00
chan = input . chan
user = split [ 0 ]
out = " KICK %s %s " % ( input . chan , split [ 0 ] )
if len ( split ) > 1 :
2011-11-20 10:23:31 +01:00
reason = " "
2012-02-19 19:10:57 +01:00
for x in split [ 1 : ] :
2011-11-20 10:23:31 +01:00
reason = reason + x + " "
reason = reason [ : - 1 ]
out = out + " : " + reason
2012-02-19 19:10:57 +01:00
notice ( " Attempting to kick %s from %s ... " % ( user , chan ) )
2011-11-20 10:23:31 +01:00
input . conn . send ( out )
@hook.command
def say ( inp , input = None , notice = None ) :
" .say [channel] <message> -- makes the bot say <message> in [channel]. if [channel] is blank the bot will say the <message> in the channel the command was used in. "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2012-02-19 19:10:57 +01:00
split = inp . split ( " " )
if split [ 0 ] [ 0 ] == " # " :
2011-11-20 10:23:31 +01:00
message = " "
2012-02-19 19:10:57 +01:00
for x in split [ 1 : ] :
2011-11-20 10:23:31 +01:00
message = message + x + " "
message = message [ : - 1 ]
2012-02-19 19:10:57 +01:00
out = " PRIVMSG %s : %s " % ( split [ 0 ] , message )
2011-11-20 10:23:31 +01:00
else :
message = " "
2012-02-19 19:10:57 +01:00
for x in split [ 0 : ] :
2011-11-20 10:23:31 +01:00
message = message + x + " "
message = message [ : - 1 ]
2012-02-19 19:10:57 +01:00
out = " PRIVMSG %s : %s " % ( input . chan , message )
2011-11-20 10:23:31 +01:00
input . conn . send ( out )
2012-02-20 04:29:46 +01:00
@hook.command ( " me " )
2012-02-19 03:20:25 +01:00
@hook.command
def act ( inp , input = None , notice = None ) :
" .act [channel] <action> -- makes the bot act <action> in [channel]. if [channel] is blank the bot will act the <action> in the channel the command was used in. "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2012-02-19 03:20:25 +01:00
notice ( " Only bot admins can use this command! " )
return
2012-02-19 19:10:57 +01:00
split = inp . split ( " " )
if split [ 0 ] [ 0 ] == " # " :
2012-02-19 03:20:25 +01:00
message = " "
2012-02-19 19:10:57 +01:00
for x in split [ 1 : ] :
2012-02-19 03:20:25 +01:00
message = message + x + " "
message = message [ : - 1 ]
2012-02-19 19:10:57 +01:00
out = " PRIVMSG %s : \x01 ACTION %s \x01 " % ( split [ 0 ] , message )
2012-02-19 03:20:25 +01:00
else :
message = " "
2012-02-19 19:10:57 +01:00
for x in split [ 0 : ] :
2012-02-19 03:20:25 +01:00
message = message + x + " "
message = message [ : - 1 ]
2012-02-19 19:10:57 +01:00
out = " PRIVMSG %s : \x01 ACTION %s \x01 " % ( input . chan , message )
2012-02-19 03:20:25 +01:00
input . conn . send ( out )
2011-11-20 10:23:31 +01:00
@hook.command
def topic ( inp , input = None , notice = None ) :
" .topic [channel] <topic> -- change the topic of a channel "
2012-02-19 19:10:57 +01:00
if not isadmin ( input ) :
2011-11-20 10:23:31 +01:00
notice ( " Only bot admins can use this command! " )
return
2012-02-19 19:10:57 +01:00
split = inp . split ( " " )
if split [ 0 ] [ 0 ] == " # " :
out = " PRIVMSG %s : %s " % ( split [ 0 ] , message )
2011-11-20 10:23:31 +01:00
else :
2012-02-19 19:10:57 +01:00
out = " TOPIC %s : %s " % ( input . chan , message )
2011-11-20 10:23:31 +01:00
input . conn . send ( out )