--[[ cmd_restart.lua by blastbeat mod by pulsar - this script adds a command "restart" to restart the hub - usage: [+!#]restart v0.02 - updated script api v0.03 - added language files and ucmd v0.04 - updated script api - renamed command - regged hubcommand v0.05 - add ascii countdown mode - toggle countown on/off ]]-- --// settings begin //-- local scriptname = "cmd_restart" local scriptversion = "0.05" local scriptlang = cfg.get "language" local minlevel = 80 local permission = { -- who is allowed to use this command? [ 0 ] = false, -- unreg [ 10 ] = false, -- guest [ 20 ] = false, -- reg [ 30 ] = false, -- vip [ 40 ] = false, -- svip [ 50 ] = false, -- server [ 60 ] = false, -- operator [ 70 ] = false, -- supervisor [ 80 ] = true, -- admin [ 100 ] = true, -- hubowner } local cmd = "restart" --> aktivate countdown mode? (YES=true/NO=false) local toggle_countdown = true --// settings end //-- local utf_match = utf.match local lang, err = cfg.loadlanguage( scriptlang, scriptname ); lang = lang or { }; err = err and hub.debug( err ) local help_title = lang.help_title or "restart" local help_usage = lang.help_usage or "[+!#]restart" local help_desc = lang.help_desc or "restarts hub" local ucmd_menu = lang.ucmd_menu or { "Restart hub" } local msg_denied = lang.msg_denied or "You are not allowed to use this command." local msg_ok = lang.msg_ok or "Hub restarted." local msg_countdown = lang.msg_countdown or "*** Hubrestart in ***" local hubcmd local digital = { [0] = [[ #### # # # # # # #### ]], [1] = [[ # # # # # ]], [2] = [[ #### # #### # #### ]], [3] = [[ #### # #### # #### ]], [4] = [[ # # # # #### # # ]], [5] = [[ #### # #### # #### ]], [6] = [[ #### # #### # # #### ]], [7] = [[ #### # # # # ]], [8] = [[ #### # # #### # # #### ]], [9] = [[ #### # # #### # # ]], } local hub_getbot = hub.getbot() local list = { } local delay = 9 --> delay in sec (max. 9) local countdown = delay - 1 local onbmsg = function( user, command ) if not permission[ user:level() ] then user:reply( msg_denied, hub_getbot ) return PROCESSED end if toggle_countdown then list[ os.time() ] = function() hub.restart() end else user:reply( msg_ok, hub_getbot ) hub.restart() end return PROCESSED end hub.setlistener("onTimer", {}, function() for time, func in pairs( list ) do if os.difftime( os.time() - time ) >= delay then func() list[ time ] = nil end if digital[ countdown ] then hub.broadcast( msg_countdown.."\n\n"..digital[ countdown ], hub_getbot ) countdown = countdown - 1 end if digital[ countdown ] == nil then countdown = countdown - 1 end end return nil end ) 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" -- add usercommand if ucmd then ucmd.add( ucmd_menu, cmd, { }, { "CT1" }, minlevel ) end hubcmd = hub.import "etc_hubcommands" -- add hubcommand assert( hubcmd ) assert( hubcmd.add( cmd, onbmsg ) ) return nil end ) hub.debug( "** Loaded "..scriptname.." "..scriptversion.." **" )