--[[ cmd_accinfo.lua v0.01 by blastbeat - this script adds a command "accinfo" get infos about a reguser - usage: [+!#]accinfo sid|nick|cid || ]]-- --// settings begin //-- local scriptname = "cmd_accinfo" local scriptlang = cfg.get "language" local minlevel = cfg.get "reg_level" or 20 -- min level to be a reguser local permission = { --// [ user_level = level means user_level can get info about regusers with level max //-- [ 60 ] = 20, -- operator to vip [ 80 ] = 40, -- admin to svip [ 100 ] = 100, -- hubowner can get info about all } local cmd = "accinfo" --// settings end //-- local utf_match = utf.match local hub_getbot = hub.getbot 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: [+!#]accinfo sid|nick|cid ||" local msg_off = lang.msg_off or "User not found/regged." local msg_god = lang.msg_god or "You cannot investigate gods." local msg_unknown = lang.msg_unknown or "" local msg_accinfo = lang.msg_accinfo or [[ Accinfo: Nick: %s CID: %s Level: %s Password: %s Regged by: %s Regged since: %s ]] local help_title = lang.help_title or "accinfo" local help_usage = lang.help_usage or "[+!#]accinfo sid|nick|cid ||" local help_desc = lang.help_desc or "get info about a reguser by sid, nick or cid; no arguments -> about yourself" local ucmd_nick = lang.ucmd_nick or "Nick:" local ucmd_cid = lang.ucmd_nick or "CID:" local ucmd_menu_ct0 = lang.ucmd_menu_ct0 or { "Accinfo", "yours" } local ucmd_menu_ct1 = lang.ucmd_menu_ct1 or { "Accinfo", "by Nick" } local ucmd_menu_ct2 = lang.ucmd_menu_ct2 or { "Accinfo", "by CID" } local ucmd_menu_ct3 = lang.ucmd_menu_ct3 or { "Accinfo" } local hubcmd local onbmsg = function( user, command, parameters ) local level = user:level( ) if level < minlevel then user:reply( msg_denied, hub.getbot( ) ) return PROCESSED end local by, id = utf_match( parameters, "^(%S+) (.*)" ) local target local _, regnicks, regcids = hub.getregusers( ) local _, usersids = hub.getusers( ) if not ( ( by == "sid" or by == "nick" or by == "cid" ) and id ) then local usercid, usernick = user:cid( ), user:firstnick( ) target = regnicks[ usernick ] or regcids.TIGR[ usercid ] else target = ( by == "nick" and regnicks[ id ] ) or ( by == "cid" and regcids.TIGR[ id ] ) or ( by == "sid" and ( usersids[ id ] and usersids[ id ]:isregged( ) and usersids[ id ]:profile( ) ) ) -- OMG end if not target then user:reply( msg_off, hub_getbot( ) ) return PROCESSED end local targetlevel = tonumber( target.level ) or 100 if not ( user.profile( ) == target ) and ( ( permission[ level ] or 0 ) < targetlevel ) then user:reply( msg_god, hub_getbot( ) ) return PROCESSED end local accinfo = utf.format( msg_accinfo, target.nick or msg_unknown, target.cid or msg_unknown, targetlevel, target.password or msg_unknown, target.by or msg_unknown, target.date or msg_unknown ) user:reply( accinfo, hub_getbot( ), hub_getbot( ) ) 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_ct0, cmd, { }, { "CT1" }, minlevel ) ucmd.add( ucmd_menu_ct1, cmd, { "nick", "%[line:" .. ucmd_nick .. "]" }, { "CT1" }, minlevel ) ucmd.add( ucmd_menu_ct2, cmd, { "cid", "%[line:" .. ucmd_cid .. "]" }, { "CT1" }, minlevel ) ucmd.add( ucmd_menu_ct3, cmd, { "sid", "%[userSID]" }, { "CT2" }, minlevel ) end hubcmd = hub.import "etc_hubcommands" -- add hubcommand assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) hub.debug( "** Loaded " .. scriptname .. ".lua **" )