--[[ cmd_disconnect by pulsar Version: Luadch_0.08 v0.1 - Simples Skript zum disconnecten von Usern ]]-- -------------- --[SETTINGS]-- -------------- --> Scriptname local scriptname = "cmd_disconnect" local scriptversion = "0.1" --> Befehl local cmd = "disconnect" --> Wer darf disconnecten? --> Who can use this command? local minlevel = 60 --> Soll eine Nachricht an alle im Main gesendet werden? (JA=true/NEIN=false) --> Send a main-message to all? (YES=true/NO=false) local sendmainmsg = true --> Soll eine Team Nachricht als PM gesendet werden? (JA=true/NEIN=false) --> Send a pm-message to the team? (YES=true/NO=false) local sendpmmsg = true --> Teamlevel local teamlevel = 60 ---------- --[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 "disconnect" local help_usage = lang.help_usage or "[+!#]disconnect " local help_desc = lang.help_desc or "disconnected einen User" local usermsg1 = lang.usermsg1 or "Du wurdest disconnected von: " local usermsg2 = lang.usermsg2 or " Begründung: " local mainmsg1 = lang.mainmsg1 or "Der User: " local mainmsg2 = lang.mainmsg2 or " wurde disconnected von: " local mainmsg3 = lang.mainmsg3 or " Begründung: " local pmmsg1 = lang.pmmsg1 or "Der User: " local pmmsg2 = lang.pmmsg2 or " wurde disconnected von: " local pmmsg3 = lang.pmmsg3 or " Begründung: " local msg_denied1 = lang.msg_denied1 or "Du bist nicht berechtigt diesen Befehl zu nutzen!" local msg_denied2 = lang.msg_denied2 or "Du kannst keinen disconnecten der ein höheres Level hat als du!" local msg_denied3 = lang.msg_denied3 or "Du kannst dich nicht selbst disconnecten!" local msg_denied4 = lang.msg_denied4 or "Der User ist offline!" local ucmd_target = lang.ucmd_target or "Username" local ucmd_reason = lang.ucmd_reason or "Begründung" local ucmd_menu1 = lang.ucmd_menu1 or {"User", "Disconnecten"} local ucmd_menu2 = lang.ucmd_menu2 or {"Disconnecten"} local hub_getbot = hub.getbot() local hub_broadcast = hub.broadcast local utf_match = utf.match local utf_format = utf.format local hub_isnickonline = hub.isnickonline local onbmsg = function(user, adccmd, parameters, txt) local user_level = user:level() local user_nick = user:nick() local target = utf_match(parameters, "^(%S+) .*") local reason = (target and utf_match(parameters, "^%S+ (.*)")) local targetuser = hub_isnickonline(target) if not targetuser then user:reply(msg_denied4, hub_getbot) return PROCESSED end local targetuser_level = targetuser:level() local targetuser_nick = targetuser:nick() if user_level < minlevel then user:reply(msg_denied1, hub_getbot) return PROCESSED end if user_level < targetuser_level then user:reply(msg_denied2, hub_getbot) return PROCESSED end if user_nick == targetuser_nick then user:reply(msg_denied3, hub_getbot) return PROCESSED end if targetuser and reason then user:reply(mainmsg1..targetuser_nick..mainmsg2..user_nick..mainmsg3..reason, hub_getbot) targetuser:reply(usermsg1..user_nick..usermsg2..reason, hub_getbot) targetuser:kill("sorry") if sendmainmsg then hub.broadcast(mainmsg1..targetuser_nick..mainmsg2..user_nick..mainmsg3..reason, hub_getbot, hub_getbot) return PROCESSED end if sendpmmsg then for sid, user in pairs(hub.getusers()) do local reportlevel = user:level() if reportlevel >= teamlevel then user:reply(pmmsg1..targetuser_nick..pmmsg2..user_nick..pmmsg3..reason, hub_getbot, hub_getbot) end end return PROCESSED end end return nil 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_menu1, cmd, {"%[line:"..ucmd_target.."]", "%[line:"..ucmd_reason.."]"}, {"CT1"}, minlevel) ucmd.add( ucmd_menu2, cmd, {"%[nick]", "%[line:"..ucmd_reason.."]"}, {"CT2"}, minlevel) end hubcmd = hub.import "etc_hubcommands" assert(hubcmd) assert(hubcmd.add(cmd, onbmsg)) return nil end ) hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" ) --------- --[END]-- ---------