vrobot4/source/mod_base.rb

71 lines
1.9 KiB
Ruby

module Vrobot4::Server
class Mod_Base < Vrobot4::Module::Module
def initialize
super
register :c_help, "help", "Prints documentation for commands."
register :c_die, "die", "Kills all bot instances.", roles: "o"
register :c_modr, "modr", "Reloads a module.", roles: "o"
register :c_modl, "modl", "Loads a module.", roles: "o"
register :c_modu, "modu", "Unloads a module.", roles: "o"
register :c_dbg, "dbg", "Sets the debug level.", roles: "o"
end
def c_help m, argv
check_args argv, "", "S"
if argv.length == 0
cmds = []
m.serv.each_mod {|mod| cmds << mod.all_cmds(m).keys.join(", ")}
cmds.delete ""
m.reply "Commands:", cmds.join(", ")
else
name = argv[0]
m.serv.each_mod do |mod|
if (cmd = mod.get_cmd m, name)
return m.reply name + ":", cmd.help_str
end
end
m.reply "Command not found:", name
end
end
def c_die m, argv
m.serv.voice_quit m if m.serv.flags.include? "A"
m.reply \
["STATUS: DYING",
"ded",
"proceeding to die",
"bye",
"dedededed",
"Thanks, bye!",
"GOTTAGOBYE"].sample
exit
end
def c_modr m, argv
check_args argv, "S"
m.serv.drop_mod argv[0]
m.serv.load_mod argv[0]
end
def c_modl m, argv
check_args argv, "S"
m.serv.load_mod argv[0]
end
def c_modu m, argv
check_args argv, "S"
m.serv.drop_mod argv[0]
end
def c_dbg m, argv
check_args argv, "N"
Vrobot4.debug = argv[0].to_i
end
def onCommand m, cnam, argv
Vrobot4.log :DEBUGV, "command", cnam.to_s, argv.to_s
super
end
end
end