--[[ cmd_reg.lua by blastbeat mod by pulsar - this script adds a command "reg" to reg users - usage: [+!#]reg nick - note: if you want to reg a nick with whitespaces, you have to escape them - note: be careful when using the nick prefix script: you should reg user nicks always WITHOUT prefix - TODO: reg by CID v0.07 - fix output style v0.06 - add keyprint feature v0.05: - small fix in language files and ucmd v0.04: - updated script api - renamed command - regged hubcommand v0.03: - added accinfo, language files, ucmd v0.02: - updated script api ]]-- --// settings begin //-- local scriptname = "cmd_reg" local scriptversion = "0.07" local minlevel = 40 -- min level to use this cmd (according permission table) local llevel = 60 -- minimum level to get a report local report = true -- send status report? local permission = { --// [ user_level = level means user_level can reg users with level max //-- [ 40 ] = 10, -- svip to guest [ 50 ] = 10, -- server to guest [ 60 ] = 20, -- operator to reg [ 70 ] = 30, -- supervisor to vip [ 80 ] = 60, -- admin to operator [ 100 ] = 100, -- hubowner can reg all } local cmd = "reg" --// settings end //-- local addy = "" 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" 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 utf_match = utf.match local utf_format = utf.format local scriptlang = cfg.get "language" 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_import = lang.msg_import or "Error while importing additional module." local msg_report = lang.msg_report or "User %s regged %s with level %d." local msg_level = lang.msg_level or "You are not allowed to reg this level." local msg_usage = lang.msg_usage or "Usage: +reg nick " local msg_error = lang.msg_error or "An error occured: " local msg_ok = lang.msg_ok or "User regged with following parameters: " local msg_accinfo = lang.msg_accinfo or "" local help_title = lang.help_title or "regnick" local help_usage = lang.help_usage or "[+!#]reg nick " local help_desc = lang.help_desc or "regs a new user" local ucmd_menu_ct1 = lang.ucmd_menu_ct1 or { "Reg user", "by nick" } local ucmd_menu_ct2 = lang.ucmd_menu_ct2 or { "Reg", "by nick" } local ucmd_passwort = lang.ucmd_passwort or "Password:" local ucmd_level = lang.ucmd_level or "Level:" local ucmd_nick = lang.ucmd_nick or "Nick:" local report_send local hubcmd local onbmsg = function( user, command, parameters ) local user_level = user:level( ) if not permission[ user_level ] then user:reply( msg_denied, hub.getbot( ) ) return PROCESSED end local by, id, password, level = utf.match( parameters, "^(%S+) (%S+) (%S+) (%d+)" ) level = tonumber( level ) if not ( by == "nick" and id ) or not ( password and level ) then user:reply( msg_usage, hub.getbot( ) ) return PROCESSED end local levels = cfg.get "levels" or { } if not levels[ level ] or ( permission[ user_level ] < level ) then user:reply( msg_level, hub.getbot( ) ) return PROCESSED end --// by = nick //-- local nick = id local bol, err = hub.reguser{ nick = nick, password = password, level = level, by = user:nick( ) } if not bol then user:reply( msg_error .. ( err or "" ), hub.getbot( ) ) else local message = utf_format( msg_report, user:nick( ), nick, level ) local _ = report and report_send( message, llevel, nil, hub.getbot( ), hub.getbot( ) ) user:reply( msg_ok .. nick .. " " .. password .. " " .. level, hub.getbot( ) ) user:reply( utf_format( msg_accinfo, nick, password, hname, addy ), hub.getbot( ), hub.getbot( ) ) end return PROCESSED end hub.setlistener( "onStart", { }, function( ) local etc_report = hub.import "etc_report" -- import the report tool if not etc_report and report then error( msg_import ) else report_send = etc_report.send end 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_ct1, cmd, { "nick", "%[line:" .. ucmd_nick .. "]", "%[line:" .. ucmd_passwort .. "]", "%[line:" .. ucmd_level .. "]" }, { "CT1" }, minlevel ) ucmd.add( ucmd_menu_ct2, cmd, { "nick", "%[userNI]", "%[line:" .. ucmd_passwort .. "]", "%[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.." **" )