Paste #38436: Hub Script

Date: 2016/12/21 12:09:44 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


HubScript:
  type: world
  debug: true
  events:
    on player join:
    - adjust <player> 'location:l@-54.5,52.5,-94.5,0,0,MainLobby'
    - inventory clear
    - give i@Server_Selector to:<player.inventory> slot:1
    - give i@Player_Hider_Disabled quantity:1 to:<player.inventory> slot:2
    - if <player.is_op> {
      - give i@StaffHammer to:<player.inventory> slot:9
    }
    on player quit:
      - wait 1t
      - adjust <player> 'location:l@-54.5,52.5,-94.5,0,0,MainLobby'
    on server start:
    - run Player_Count_Refresh
    on system time[<05:00>]:
    - run safe_shutdown
    on system time[<11:00>]:
    - run safe_shutdown
    on system time[<17:00>]:
    - run safe_shutdown    
    on system time[<23:00>]:
    - run safe_shutdown 
Player_Count_Refresh:
  type: task
  debug: true
  script:
    - while true:
      - foreach <bungee.list_servers>:
        - ~bungeetag <server.list_online_players.size.as_int> server:<def[value].name> save:player_count
        - flag server playercount.<def[value].name>:<entry[player_count].result>
      - wait 60s
HelpCommand:
  type: command
  name: help
  script:
  - narrate "<&b>Did you find a hacker or rule breaker? Report them here:"
  - narrate "<&e>http://xpcraft.com/forums/ban-reports.9/"
  - narrate "<&b>Found a bug? Report it here:"
  - narrate "<&e>http://xpcraft.com/forums/bug-reports.3/"
  - narrate "<&b>For help with games and all other server features, visit our forums:"
  - narrate "<&e>http://xpcraft.com/forums/"
Reboot:
  type: world
  debug: false
  events:
    on restart command:
    - if <context.server> && !<player.is_op> queue clear
    - determine cancelled passively
    - run safe_shutdown
    on stop command:
    - if <context.server> && !<player.is_op> queue clear
    - determine cancelled passively
    - run safe_shutdown
    on shutdown command:
    - if <context.server> && !<player.is_op> queue clear
    - determine cancelled passively
    - run safe_shutdown
safe_shutdown:
  type: task
  debug: false
  speed: 0
  script:
    - if <server.has_flag[already_restarting]> queue clear
    - flag server already_restarting duration:2m
    - announce "<&a><&l>This server will be restarting in <&e><&l>one minute<&a><&l>."
    - repeat 3:
      - playsound sound:ENTITY_ARROW_HIT_PLAYER <server.list_online_players> colume:1.5 pitch:0.7
      - wait 3t
    - repeat 1:
      - actionbar "<&a>Restarting in<&e> 60 <&a>seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 10s
      - actionbar "<&a>Restarting in<&e> 50 <&a>seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 10s
      - actionbar "<&a>Restarting in<&e> 40 <&a>seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 10s
      - actionbar "<&a>Restarting in<&e> 30 <&a>seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 10s
      - actionbar "<&a>Restarting in<&e> 20 <&a>seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 10s
    - repeat 10:
      - actionbar "<&a>Restarting in<&co> <&e><el@10.sub[<def[value]>].as_int><&a> seconds." targets:<server.list_online_players>
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 1s
    - repeat 3:
      - playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
      - wait 3t
    - if <bungee.list_servers.contains[server@lobby]||false> && <bungee.server||null> != server@lobby {
      - announce "<&8>[<&7>server<&8>]<&a> This server is restarting.<&nl><&c>Please try again in a minute."
      - kick <server.list_online_players> "reason:<&8>[<&7>server<&8>]<&a> This server is restarting.<&nl><&c>Please try again in a minute.
      } else {
      - kick <server.list_online_players> "reason:<&8>[<&7>Server<&8>]<&a> This server is restarting.<&nl><&c>Please try again in a minute."
      }
    - flag server already_restarting:!
    - execute as_server "restart" 
Server_Selector:
  type: item
  material: i@compass
  display name: <&3>Server Selector
  bound: true
Player_Hider_Disabled:
  type: item
  material: i@347
  display name: <&b>Player Hider <&e>- <&c>Disabled
  bound: true
Player_Hider_Enabled:
  type: item
  material: i@347
  display name: <&b>Player Hider <&e>- <&a>Enabled
  bound: true 
Server_Selector_Menu:
    type: world
    debug: true
    events:
      on player clicks Server_Selector:
      - inventory open d:in@Server_GUI_Menu  
      on player clicks Player_Hider_Disabled:
      - run Player_Hide_Task
      - take slot:2 from:<player.inventory>
      - give i@Player_Hider_Enabled quantity:1 to:<player.inventory> slot:2       
      on player clicks Player_Hider_Enabled:
      - run Player_Show_Task
      - take slot:2 from:<player.inventory>
      - give i@Player_Hider_Disabled quantity:1 to:<player.inventory> slot:2 
Player_Hide_Task:
    type: task
    debug: true
    script:
      - foreach <player.world.players.exclude[<player>].filter[is_op.not]> {
          - adjust <player> hide_entity:<def[value]>
        }   
Player_Show_Task:
    type: task
    debug: true
    script:
      - foreach <player.world.players.exclude[<player>].filter[is_op.not]> {
          - adjust <player> show_entity:<def[value]>
        }
Server_GUI_Menu:
    type: inventory
    title: <&3>Server List
    size: 9
    slots:
      - "[Filler] [Filler] [i@Survival[quantity=<server.flag[playercount.survival].as_int>;flags=li@hide_enchants]] [Filler] [i@Creative[quantity=<server.flag[playercount.creative].as_int>;flags=li@hide_enchants]] [Filler] [i@Shift[quantity=<server.flag[playercount.shift1].add[<server.flag[playercount.shift2]>].add[<server.flag[playercount.shift3]>].add[<server.flag[playercount.shift4]>].as_int>;flags=li@hide_enchants]] [Filler] [Filler]"     
Shift_GUI_Menu:
    type: inventory
    title: <&3>Server List
    size: 9
    Slots:
      - "[i@Shift_1[quantity=<server.flag[playercount.shift1]>;flags=li@hide_enchants]] [i@Shift_2[quantity=<server.flag[playercount.shift2]>;flags=li@hide_enchants]] [i@Shift_3[quantity=<server.flag[playercount.shift3]>;flags=li@hide_enchants]] [i@Shift_4[quantity=<server.flag[playercount.shift4]>;flags=li@hide_enchants]] [Filler] [Filler] [Filler] [Filler] [Filler]"
Server_GUI_Menu_handler:
    type: world
    events:
         on player clicks Filler in Server_GUI_Menu:
         - determine cancelled
         on player clicks Shift in Server_GUI_Menu:
         - inventory open d:in@Shift_GUI_Menu
         on player clicks Filler in Shift_GUI_Menu:
         - determine cancelled
         on player clicks Creative in Server_GUI_Menu:
         - adjust <player> send_to:server@creative
         on player clicks Survival in Server_GUI_Menu:
         - adjust <player> send_to:server@survival
         on player clicks Shift_1 in Shift_GUI_Menu:
         - adjust <player> send_to:server@shift1
         on player clicks Shift_2 in Shift_GUI_Menu:
         - adjust <player> send_to:server@shift2
         on player clicks Shift_3 in Shift_GUI_Menu:
         - adjust <player> send_to:server@shift3
         on player clicks Shift_4 in Shift_GUI_Menu:
         - adjust <player> send_to:server@shift4
Creative:
    type: item
    material: 271
    display name: <&2>Creative
    enchantments:
    - ARROW_INFINITE:1  
Survival:
    type: item
    material: 267
    display name: <&6>Survival
    enchantments:
    - ARROW_INFINITE:1
Shift:
    type: item
    material: quartz_ore
    display name: <&5>Shift
    enchantments:
    - ARROW_INFINITE:1  
Shift_1:
    type: item
    material: quartz_ore
    display name: <&5>Shift 1
    enchantments:
    - ARROW_INFINITE:1 
Shift_2:
    type: item
    material: quartz_ore
    display name: <&5>Shift 2
    enchantments:
    - ARROW_INFINITE:1
Shift_3:
    type: item
    material: quartz_ore
    display name: <&5>Shift 3
    enchantments:
    - ARROW_INFINITE:1  
Shift_4:
    type: item
    material: quartz_ore
    display name: <&5>Shift 4
    enchantments:
    - ARROW_INFINITE:1
Filler:
    type: item
    material: black_stained_glass_pane
StaffHammer:
    type: item
    material: diamond_axe
    display name: <&4>Staff Hammer