--[[ cmd_upgrade.lua v0.04 by blastbeat - this script adds a command "upgrade" to set or change the level of an users by sid/nick/cid - usage: [+!#]upgrade sid|nick|cid || - changelog 0.04: - updated script api - regged hubcommand - changelog 0.03: - some clean ups, added language file, ucmd - changelog 0.02: - added language files and ucmd ]]-- --// settings begin //-- local scriptname = "cmd_upgrade" local scriptversion = "0.04" local scriptlang = cfg.get "language" local minlevel = 100 local permission = { --// [ user_level = level means user_level can upgrade users with level max //-- [ 100 ] = true, -- hubowner can upgrade all } local cmd = "upgrade" --// settings end //-- local utf_match = utf.match local hub_getbot = hub.getbot local hub_issidonline = hub.issidonline local hub_iscidonline = hub.iscidonline local hub_isnickonline = hub.isnickonline local lang, err = cfg.loadlanguage( scriptlang, scriptname ); lang = lang or { }; err = err and hub.debug( err ) local msg_denied = lang.msg_denied or "You are not allowed to use this command." local msg_usage = lang.msg_usage or "Usage: [+!#]upgrade sid|nick|cid || " local msg_off = lang.msg_off or "User not found." local msg_reg = lang.msg_reg or "User is not regged or a bot." local msg_ok = lang.msg_ok or "Level was changed to: " local help_title = lang.help_title or "upgrade" local help_usage = lang.help_usage or "[+!#]upgrade sid|nick|cid || " local help_desc = lang.help_desc or "sets level of user" local ucmd_menu = lang.ucmd_menu or { "Upgrade user" } local ucmd_level = lang.ucmd_level or "Level:" local hubcmd local onbmsg = function( user, command, parameters ) if not permission[ user:level( ) ] then user:reply( msg_denied, hub_getbot( ) ) return PROCESSED end local by, id, level = utf_match( parameters, "^(%S+) (%S+) (%d+)$" ) if not ( by == "sid" or by == "nick" or by == "cid" ) then user:reply( msg_usage, hub_getbot( ) ) return PROCESSED end local target = ( by == "nick" and hub_isnickonline( id ) ) or ( by == "sid" and hub_issidonline( id ) ) or ( by == "cid" and hub_iscidonline( id ) ) if not target then user:reply( msg_off, hub_getbot( ) ) return PROCESSED end if not target:isregged( ) or target:isbot( ) then user:reply( msg_reg, hub_getbot( ) ) return PROCESSED end local ret,msg = target:setlevel( tonumber( level ) ) if not ret then user:reply(msg,hub_getbot()) return PROCESSED end user:reply( msg_ok .. level, hub_getbot( ) ) local _ = not ( target == user ) and target:reply( msg_ok .. level, hub_getbot( ) ) target:kill("sorry") return PROCESSED end hub.setlistener( "onStart", { }, function( ) local help = hub.import "cmd_help" if help then help.reg( help_title, help_usage, help_desc, minlevel ) -- reg help end local ucmd = hub.import "etc_usercommands" -- add usercommand if ucmd then ucmd.add( ucmd_menu, cmd, { "sid", "%[userSID]", "%[line:" .. ucmd_level .. "]" }, { "CT2" }, minlevel ) end hubcmd = hub.import "etc_hubcommands" -- add hubcommand assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" )