--[[ "cmd_managebans.lua" by Motnahp usage: [+!#]managebans showbans|deletebans v0.2 - name change to cmd_managebans.lua - added command managebans with parameters deltebans and showbans - removed command showbans v0.1 ( cmd_showbans.lua ) - on command "showbans" it shows all bans in pm msg ]]-- --[[ Settings ]]-- -- nicht Editieren -- do not edit -- local scriptname = "cmd_managebans" local scriptversion = "0.2" local hubcmd -- cmd -- local cmd = "managebans" -- parameters -- local prm1 = "showbans" local prm2 = "deltebans" -- caching table lookups -- local utf_format = utf.format local util_savearray = util.savearray local hub_bot = hub.getbot() -- local tabel and storage path -- local bans_path = "scripts/cmd_ban/bans.tbl" local t_bans = util.loadtable( bans_path ) or { } -- load lang file local scriptlang = cfg.get "language" local lang, err = cfg.loadlanguage(scriptlang, scriptname); err = err and hub.debug(err) -- functions -- local showbans local deletebans local unknown local get_timezone -- labels -- local lblNick = lang.lblNick or " Nick: " local lblCid = lang.lblCid or " CID: " local lblIp = lang.lblIp or " IP: " local lblReason = lang.lblReason or " Reason: " local lblBy = lang.lblBy or " banned by: " local lblTime = lang.lblTime or " banned till: " -->> nachfolgende Settings sind editierbar -->> you may edit the following settings -->> -- permissions -- local min_level_showbans = 60 local min_level_deletebans = 100 -- help -- local help_title = lang.help_title or "Manage bans" local help_usage = lang.help_usage or "[+!#]managebans showbans|deletebans" local help_desc = lang.help_desc or "Allows you to see all bans (level 60) or to delete all bans (level 100)" -- error msgs -- local msg_denied = lang.denied or "You are not allowed to use this command." local msg_unknown = "\n"..help_title.."\n"..help_usage.."\n"..help_desc -- msgs -- local msg_showbans = lang.msg_showbans or "\nThe bans:\n" local msg_deletebans = lang.msg_deletebans or "All bans were deleted." -- ucmd menu -- local ucmd_menu_prm1 = lang.ucmd_menu_prm1 or { "Hub", "Manage bans", "show banned users"} local ucmd_menu_prm2 = lang.ucmd_menu_prm2 or { "Hub", "Manage bans", "delete all bans"} --<< ende des editierbaren Teils --<< end of editable settings --<< --[[ Code ]]-- local onbmsg = function( user, adccmd, parameters) local user_level = user:level( ) local id = utf.match(parameters, "^(%S+)$") if id == prm1 then if user_level < min_level_showbans then user:reply( msg_denied, hub_bot ) else user:reply( showbans( ), hub_bot, hub_bot ) end elseif id == prm2 then if user_level < min_level_deletebans then user:reply( msg_denied, hub_bot ) else user:reply( deletebans( ), hub_bot ) hub.restartscripts( ) end else user:reply( unknown( ), hub_bot, hub_bot) end return PROCESSED end hub.setlistener( "onStart", { }, function( ) local help = hub.import "cmd_help" if help then help.reg( help_title, help_usage, help_desc, min_level_showbans ) -- reg help end local ucmd = hub.import "etc_usercommands" -- add usercommand if ucmd then ucmd.add( ucmd_menu_prm1, cmd, { prm1}, { "CT1" }, min_level_showbans ) ucmd.add( ucmd_menu_prm2, cmd, { prm2}, { "CT1" }, min_level_deletebans ) end hubcmd = hub.import "etc_hubcommands" -- add hubcommand assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) -- functions -- showbans = function ( ) local t_bans = util.loadtable( bans_path ) or { } local msg = msg_showbans for i, banstbl in ipairs( t_bans ) do local t = os.date("!*t", tonumber(banstbl.start + banstbl.time + get_timezone())) local endtime = string.format("%s.%s.%s / %s:%s", t.day, t.month, t.year, t.hour, t.min) msg = msg.."\n ["..i.."]\n\t".. lblNick.."\t"..banstbl.nick.."\n\t".. lblCid.."\t"..banstbl.cid.."\n\t".. lblIp.."\t"..banstbl.ip.."\n\t".. lblReason.."\t"..banstbl.reason.."\n\t".. lblBy.."\t"..banstbl.by_nick.."\n\t".. lblTime.."\t"..endtime.."\n" end return msg end deletebans = function ( ) local msg = msg_deletebans t_bans = { } util_savearray( t_bans, bans_path ) return msg end unknown = function( ) return msg_unknown end -- Compute the difference in seconds between local time and UTC. function get_timezone() local now = os.time() return os.difftime(os.time(os.date("*t", now)), os.time(os.date("!*t", now))) end hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" ) --[[ End ]]--