--[[ etc_cmdlog by pulsar Version: Lua 5.1x v0.1 - Script überwacht den Main auf die Eingabe gewisser Befehle und protokolliert (WANN, WER, WAS) diese dann in einer Datei v0.2 - Geringfügige optische Aufwertung - Wahlmöglichkeit ob das Log im Main oder als PM gesendet werden soll - Reihenfolge der Auflistung geändert: WANN, WAS, WER v0.3 - Code-Kosmetik - Hinzugefügt: Help Feature (hub.import "cmd_help") v0.4 - Hinzugefügt: Multilanguage Support v0.5 - Hinzugefügt: Das Skript überprüft nun um Fehlern vorzubeugen erstmal ob ein Logfile existiert v0.6 - Entfernt: Ausgabemöglichkeit im Main Wichtig: Das Script muss in der cfg.tbl über allen 'cmd_*.lua; etc_*.lua; ptx_*.lua' Scripten eingetragen werden! ]]-- -------------- --[SETTINGS]-- -------------- local scriptname = "etc_cmdlog" local scriptversion = "0.6" --> Befehl --> command local cmd = "cmdlog" --> Parameters --> command parameters local cmd_p_main = "showmain" local cmd_p_pm = "showpm" --> Dateiname --> filename local logfile = "log/cmd.log" --> Nutzungsrechte --> Who can use this command? local minlevel = 100 --> Befehle die mitgeloggt werden sollen --> logged commands local command_tbl = { ["reg"] = 1, ["delreg"] = 1, ["disconnect"] = 1, ["ban"] = 1, ["unban"] = 1, ["upgrade"] = 1, ["accinfo"] = 1, } local label_top = [[ ============================================================================================================== C O M M A N D L O G G E R ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ]] local label_bottom = [[ ============================================================================================================== ]] ---------- --[CODE]-- ---------- local scriptlang = cfg.get "language" local lang, err = cfg.loadlanguage( scriptlang, scriptname ); lang = lang or { }; err = err and hub.debug( err ) local help_title = lang.help_title or "Command Logger" local help_usage = lang.help_usage or "[+!#]cmdlog showmain / [+!#]cmdlog showpm" local help_desc = lang.help_desc or "Zeigt den Inhalt von Logdatein" local failmsg1 = lang.failmsg1 or "Du bist nicht befugt diesen Befehl zu nutzen!" local failmsg2 = lang.failmsg2 or "Keine 'cmd.log' Datei gefunden!" local msg1 = lang.msg1 or " --> Befehl: [+!#]" local msg2 = lang.msg2 or " / von: " local ucmd_menu = lang.ucmd_menu or { "Hub", "Zeige cmd.log" } hub.setlistener( "onBroadcast", {}, function( user, adccmd, txt ) local s1, s2 = utf.match( txt, "^[+!#](%a+) (.+)" ) for command, _ in pairs( command_tbl ) do if s1 == command and s2 then local f = io.open( logfile, "a" ) local user_nick = user:nick() f:write( " "..os.date("%d.%m.%y / %H:%M:%S Uhr")..msg1..s1.." "..s2..msg2..user_nick.."\n" ) f:close() end end end ) local onbmsg = function( user, adccmd, parameters, txt ) local id = utf.match( parameters, "^(%S+)$" ) local hub_getbot = hub.getbot() if id == cmd_p_main then if user:level() >= minlevel then local msg local file, err = io.open( logfile, "r" ) if file then msg = file:read( "*all" ) file:close() user:reply( "\n\n"..label_top.."\n"..msg.."\n"..label_bottom.."\n", hub_getbot ) else user:reply( failmsg2, hub_getbot ) end else user:reply( failmsg1, hub_getbot ) end return PROCESSED else if id == cmd_p_pm then if user:level() >= minlevel then local msg local file, err = io.open( logfile, "r" ) if file then msg = file:read( "*all" ) file:close() user:reply( "\n\n"..label_top.."\n"..msg.."\n"..label_bottom.."\n", hub_getbot, hub_getbot ) else user:reply( failmsg2, hub_getbot ) end else user:reply( failmsg1, hub_getbot ) end return PROCESSED end end end local hubcmd hub.setlistener("onStart", {}, function() local help = hub.import "cmd_help" if help then help.reg( help_title, help_usage, help_desc, minlevel ) end local ucmd = hub.import "etc_usercommands" if ucmd then ucmd.add( ucmd_menu, cmd, { cmd_p_pm }, { "CT1" }, minlevel ) end hubcmd = hub.import "etc_hubcommands" assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" ) --------- --[END]-- ---------