--[[ cmd_accinfo.lua by blastbeat mod by pulsar - this script adds a command "accinfo" get infos about a reguser - usage: [+!#]accinfo sid|nick|cid || v0.02 - Hinzugefügt: Anzeige von Hubname + Addy (inkl. Keyprint falls aktiviert) ]]-- --// settings begin //-- local scriptname = "cmd_accinfo" local scriptversion = "0.02" local scriptlang = cfg.get "language" local minlevel = cfg.get "reg_level" or 20 -- min level to be a reguser local oplevel = 60 -- to get an advanced rightklick local permission = { --// [ user_level = level means user_level can get info about regusers with level max //-- [ 60 ] = 50, -- operator to server [ 70 ] = 60, -- supervisor to operator [ 80 ] = 70, -- admin to supervisor [ 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 "" 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 { "User", "Accinfo", "yours" } local ucmd_menu_ct1 = lang.ucmd_menu_ct1 or { "User", "Accinfo", "by Nick" } local ucmd_menu_ct2 = lang.ucmd_menu_ct2 or { "User", "Accinfo", "by CID" } local ucmd_menu_ct3 = lang.ucmd_menu_ct3 or { "Accinfo" } local ucmd_menu_ct4 = lang.ucmd_menu_ct4 or "User" local ucmd_menu_ct5 = lang.ucmd_menu_ct5 or "Accinfo" local ucmd_menu_ct6 = lang.ucmd_menu_ct6 or "by Nick from List" local hubcmd local tcp = cfg.get "tcp_ports" local ssl = cfg.get "ssl_ports" local host = cfg.get "hub_hostaddress" local hname = cfg.get "hub_name" local use_keyprint = cfg.get "use_keyprint" local keyprint_type = cfg.get "keyprint_type" local keyprint_hash = cfg.get "keyprint_hash" local addy = "" if #tcp ~= 0 then addy = addy .. "adc://" .. host .. ":" .. table.concat( tcp, ", " ) .. " " end if #ssl ~= 0 then if use_keyprint then addy = addy .. "adcs://" .. host .. ":" .. table.concat( ssl, ", " ) .. keyprint_type .. keyprint_hash else addy = addy .. "adcs://" .. host .. ":" .. table.concat( ssl, ", " ) end end 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 or msg_unknown, target.password or msg_unknown, target.by or msg_unknown, target.date or msg_unknown, hname or msg_unknown, addy 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 ) local regusers, reggednicks, reggedcids = hub.getregusers( ) local usertbl = {} for i, user in ipairs( regusers ) do if ( user.is_bot ~=1 ) and user.nick then table.insert( usertbl, user.nick ) end end table.sort( usertbl ) for _, nick in pairs( usertbl ) do ucmd.add( { ucmd_menu_ct4, ucmd_menu_ct5, ucmd_menu_ct6, nick }, cmd, { "nick", nick }, { "CT1" }, oplevel ) end end hubcmd = hub.import "etc_hubcommands" -- add hubcommand assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" )