84 lines
2.1 KiB
Ruby
84 lines
2.1 KiB
Ruby
class Mod_Base < Vrobot4::Module::Module
|
|
def initialize info
|
|
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
|
|
register :c_info, "info", "Prints context info.", roles: ?o
|
|
end
|
|
|
|
def c_help m, argv
|
|
if argv.empty?
|
|
cmds = []
|
|
m.serv.each_mod do |mod|
|
|
cmds << mod.cmds(m).keys.join(", ")
|
|
end
|
|
cmds.delete ""
|
|
m.reply "Commands:", cmds.join(", ")
|
|
else
|
|
m.serv.each_mod do |mod|
|
|
if (cmd = mod.cmds(m)[argv])
|
|
return m.reply argv + ":", cmd.help_str
|
|
end
|
|
end
|
|
m.reply "Command not found:", argv
|
|
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",
|
|
"the orks insisted upon dying"].sample
|
|
exit
|
|
end
|
|
|
|
def c_modr m, argv
|
|
argv = argv.split
|
|
m.serv.drop_mod argv[0]
|
|
load argv[1], true if argv[1]
|
|
m.serv.load_mod argv[0]
|
|
end
|
|
|
|
def c_modl m, argv
|
|
m.serv.load_mod argv
|
|
end
|
|
|
|
def c_modu m, argv
|
|
m.serv.drop_mod argv
|
|
end
|
|
|
|
def c_dbg m, argv
|
|
check_args argv, "N"
|
|
Vrobot4.set_debug argv.to_i
|
|
end
|
|
|
|
def c_info m, argv
|
|
m.reply_b \
|
|
"chan.name: #{m.chan.name}\n" +
|
|
"chan.id: #{m.chan.id}\n" +
|
|
"user.name: #{m.user.name}\n" +
|
|
"user.id: #{m.user.id}\n" +
|
|
"user.roles: #{m.user.roles}\n" +
|
|
"serv.flags: #{m.serv.flags}\n" +
|
|
"serv.id: #{m.serv.id}\n" +
|
|
"serv.mprm: #{m.serv.mprm}"
|
|
end
|
|
|
|
def on_command m, cnam, argv
|
|
Vrobot4.log :DEBUGV, "command #{cnam.to_s} #{argv}"
|
|
super
|
|
end
|
|
end
|
|
|
|
## EOF
|