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 <<~_end_ chan.name: #{m.chan.name} chan.id: #{m.chan.id} user.name: #{m.user.name} user.id: #{m.user.id} user.roles: #{m.user.roles} serv.flags: #{m.serv.flags} serv.id: #{m.serv.id} serv.mprm: #{m.serv.mprm} _end_ end def on_command m, cnam, argv Vrobot4.log :DEBUGV, "command #{cnam.to_s} #{argv}" super end end ## EOF