[{"data":1,"prerenderedAt":1031},["ShallowReactive",2],{"docs-navigation:\u002Fdocs\u002Frecipes\u002Fminigames\u002Fglobal-countdown-states":3,"docs-page-estimated-read-time:\u002Fdocs\u002Frecipes\u002Fminigames\u002Fglobal-countdown-states":399,"docs-page:\u002Fdocs\u002Frecipes\u002Fminigames\u002Fglobal-countdown-states":400},[4,9,41,69,282],{"title":5,"path":6,"stem":7,"icon":8},"Welcome to the Vital docs","\u002Fdocs\u002Fabout","docs\u002F1.about","i-lucide-info",{"title":10,"path":11,"stem":12,"children":13,"icon":40},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F2.getting-started\u002F1.index",[14,16,35],{"title":15,"path":11,"stem":12,"icon":8},"What is Vital?",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":34},"Installation","i-lucide-download","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F2.getting-started\u002F1.installation",[22,26,30],{"title":23,"path":24,"stem":25},"Using a starter project (~5 minutes)","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fstarter","docs\u002F2.getting-started\u002F1.installation\u002F2.starter",{"title":27,"path":28,"stem":29},"Manual configuration (~7-8 minutes)","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fmanual","docs\u002F2.getting-started\u002F1.installation\u002F3.manual",{"title":31,"path":32,"stem":33},"Using the initializer (~2-3 minutes)","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Finitializer","docs\u002F2.getting-started\u002F1.installation\u002F4.initializer",false,{"title":36,"path":37,"stem":38,"icon":39},"Main class","\u002Fdocs\u002Fgetting-started\u002Fmain-plugin-class","docs\u002F2.getting-started\u002F2.main-plugin-class","i-lucide-play","i-lucide-circle-play",{"title":42,"path":43,"stem":44,"children":45,"icon":68},"Conventions","\u002Fdocs\u002Fconventions","docs\u002F3.conventions\u002F1.index",[46,48,52,56,60,64],{"title":47,"path":43,"stem":44,"icon":8},"About",{"title":49,"path":50,"stem":51},"Spring","\u002Fdocs\u002Fconventions\u002Fspring","docs\u002F3.conventions\u002F2.spring",{"title":53,"path":54,"stem":55},"Platforms","\u002Fdocs\u002Fconventions\u002Fplatform-implementations","docs\u002F3.conventions\u002F3.platform-implementations",{"title":57,"path":58,"stem":59},"Metadata","\u002Fdocs\u002Fconventions\u002Fmetadata","docs\u002F3.conventions\u002F4.metadata",{"title":61,"path":62,"stem":63},"Lifecycles","\u002Fdocs\u002Fconventions\u002Flifecycles","docs\u002F3.conventions\u002F5.lifecycles",{"title":65,"path":66,"stem":67},"(Optional) Advanced class loading","\u002Fdocs\u002Fconventions\u002Fadvanced-classloading","docs\u002F3.conventions\u002F6.advanced-classloading","i-lucide-cog",{"title":70,"path":71,"stem":72,"children":73,"icon":281},"Modules","\u002Fdocs\u002Fmodules","docs\u002F4.modules\u002F1.index",[74,76,100,106,112,126,136,150,164,178,188,224,234,248,257,275],{"title":75,"path":71,"stem":72,"icon":8},"What are modules?",{"title":77,"path":78,"stem":79,"children":80,"icon":99},"vital-core","\u002Fdocs\u002Fmodules\u002Fvital-core","docs\u002F4.modules\u002F2.vital-core\u002F1.index",[81,83,87,91,95],{"title":82,"path":78,"stem":79,"icon":8},"About this module",{"title":84,"path":85,"stem":86},"Configuration","\u002Fdocs\u002Fmodules\u002Fvital-core\u002Fconfiguration","docs\u002F4.modules\u002F2.vital-core\u002F2.configuration",{"title":88,"path":89,"stem":90},"Listeners","\u002Fdocs\u002Fmodules\u002Fvital-core\u002Flisteners","docs\u002F4.modules\u002F2.vital-core\u002F3.listeners",{"title":92,"path":93,"stem":94},"Conditional beans","\u002Fdocs\u002Fmodules\u002Fvital-core\u002Fconditional-beans","docs\u002F4.modules\u002F2.vital-core\u002F4.conditional-beans",{"title":96,"path":97,"stem":98},"Repositories","\u002Fdocs\u002Fmodules\u002Fvital-core\u002Frepositories","docs\u002F4.modules\u002F2.vital-core\u002F5.repositories","",{"title":101,"path":102,"stem":103,"children":104,"icon":99},"vital-cloudnet4-bridge","\u002Fdocs\u002Fmodules\u002Fvital-cloudnet4-bridge","docs\u002F4.modules\u002Fvital-cloudnet4-bridge\u002F1.index",[105],{"title":82,"path":102,"stem":103,"icon":8},{"title":107,"path":108,"stem":109,"children":110,"icon":99},"vital-cloudnet4-driver","\u002Fdocs\u002Fmodules\u002Fvital-cloudnet4-driver","docs\u002F4.modules\u002Fvital-cloudnet4-driver\u002F1.index",[111],{"title":82,"path":108,"stem":109,"icon":8},{"title":113,"path":114,"stem":115,"children":116,"icon":99},"vital-commands","\u002Fdocs\u002Fmodules\u002Fvital-commands","docs\u002F4.modules\u002Fvital-commands\u002F1.index",[117,118,122],{"title":82,"path":114,"stem":115,"icon":8},{"title":119,"path":120,"stem":121},"Commands","\u002Fdocs\u002Fmodules\u002Fvital-commands\u002Fcommands","docs\u002F4.modules\u002Fvital-commands\u002Fcommands",{"title":123,"path":124,"stem":125},"Exception handling","\u002Fdocs\u002Fmodules\u002Fvital-commands\u002Fexception-handling","docs\u002F4.modules\u002Fvital-commands\u002Fexception-handling",{"title":127,"path":128,"stem":129,"children":130,"icon":99},"vital-configs","\u002Fdocs\u002Fmodules\u002Fvital-configs","docs\u002F4.modules\u002Fvital-configs\u002F1.index",[131,132],{"title":82,"path":128,"stem":129,"icon":8},{"title":133,"path":134,"stem":135},"Configs","\u002Fdocs\u002Fmodules\u002Fvital-configs\u002Fconfigs","docs\u002F4.modules\u002Fvital-configs\u002F2.configs",{"title":137,"path":138,"stem":139,"children":140,"icon":99},"vital-holograms","\u002Fdocs\u002Fmodules\u002Fvital-holograms","docs\u002F4.modules\u002Fvital-holograms\u002F1.index",[141,142,146],{"title":82,"path":138,"stem":139,"icon":8},{"title":143,"path":144,"stem":145},"Global holograms","\u002Fdocs\u002Fmodules\u002Fvital-holograms\u002Fglobal-holograms","docs\u002F4.modules\u002Fvital-holograms\u002F2.global-holograms",{"title":147,"path":148,"stem":149},"Player holograms","\u002Fdocs\u002Fmodules\u002Fvital-holograms\u002Fplayer-holograms","docs\u002F4.modules\u002Fvital-holograms\u002F3.player-holograms",{"title":151,"path":152,"stem":153,"children":154,"icon":99},"vital-inventories","\u002Fdocs\u002Fmodules\u002Fvital-inventories","docs\u002F4.modules\u002Fvital-inventories\u002F1.index",[155,156,160],{"title":82,"path":152,"stem":153,"icon":8},{"title":157,"path":158,"stem":159},"Normal inventories","\u002Fdocs\u002Fmodules\u002Fvital-inventories\u002Fnormal-inventories","docs\u002F4.modules\u002Fvital-inventories\u002F2.normal-inventories",{"title":161,"path":162,"stem":163},"Paged inventories","\u002Fdocs\u002Fmodules\u002Fvital-inventories\u002Fpaged-inventories","docs\u002F4.modules\u002Fvital-inventories\u002F3.paged-inventories",{"title":165,"path":166,"stem":167,"children":168,"icon":99},"vital-items","\u002Fdocs\u002Fmodules\u002Fvital-items","docs\u002F4.modules\u002Fvital-items\u002F1.index",[169,170,174],{"title":82,"path":166,"stem":167,"icon":8},{"title":171,"path":172,"stem":173},"Items","\u002Fdocs\u002Fmodules\u002Fvital-items\u002Fitems","docs\u002F4.modules\u002Fvital-items\u002F2.items",{"title":175,"path":176,"stem":177},"Item builders","\u002Fdocs\u002Fmodules\u002Fvital-items\u002Fitem-builders","docs\u002F4.modules\u002Fvital-items\u002F3.item-builders",{"title":179,"path":180,"stem":181,"children":182,"icon":99},"vital-localization","\u002Fdocs\u002Fmodules\u002Fvital-localization","docs\u002F4.modules\u002Fvital-localization\u002F1.index",[183,184],{"title":82,"path":180,"stem":181,"icon":8},{"title":185,"path":186,"stem":187},"Localization","\u002Fdocs\u002Fmodules\u002Fvital-localization\u002Flocalization","docs\u002F4.modules\u002Fvital-localization\u002F2.localization",{"title":189,"path":190,"stem":191,"children":192,"icon":99},"vital-minigames","\u002Fdocs\u002Fmodules\u002Fvital-minigames","docs\u002F4.modules\u002Fvital-minigames\u002F1.index",[193,194,208],{"title":82,"path":190,"stem":191,"icon":8},{"title":195,"path":196,"stem":197,"children":198,"icon":99},"Global games","\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Fglobal-games","docs\u002F4.modules\u002Fvital-minigames\u002F2.global-games\u002F1.index",[199,200,204],{"title":47,"path":196,"stem":197,"icon":8},{"title":201,"path":202,"stem":203},"States","\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Fglobal-games\u002Fstates","docs\u002F4.modules\u002Fvital-minigames\u002F2.global-games\u002F2.states",{"title":205,"path":206,"stem":207},"Countdown states","\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Fglobal-games\u002Fcountdown-states","docs\u002F4.modules\u002Fvital-minigames\u002F2.global-games\u002F3.countdown-states",{"title":209,"path":210,"stem":211,"children":212,"icon":99},"Instanced games","\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Finstanced-games","docs\u002F4.modules\u002Fvital-minigames\u002F3.instanced-games\u002F1.index",[213,214,218,221],{"title":47,"path":210,"stem":211,"icon":8},{"title":215,"path":216,"stem":217},"Instances","\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Finstanced-games\u002Finstances","docs\u002F4.modules\u002Fvital-minigames\u002F3.instanced-games\u002F2.instances",{"title":201,"path":219,"stem":220},"\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Finstanced-games\u002Fstates","docs\u002F4.modules\u002Fvital-minigames\u002F3.instanced-games\u002F3.states",{"title":205,"path":222,"stem":223},"\u002Fdocs\u002Fmodules\u002Fvital-minigames\u002Finstanced-games\u002Fcountdown-states","docs\u002F4.modules\u002Fvital-minigames\u002F3.instanced-games\u002F4.countdown-states",{"title":225,"path":226,"stem":227,"children":228,"icon":99},"vital-players","\u002Fdocs\u002Fmodules\u002Fvital-players","docs\u002F4.modules\u002Fvital-players\u002F1.index",[229,230],{"title":82,"path":226,"stem":227,"icon":8},{"title":231,"path":232,"stem":233},"Players","\u002Fdocs\u002Fmodules\u002Fvital-players\u002Fplayers","docs\u002F4.modules\u002Fvital-players\u002F2.players",{"title":235,"path":236,"stem":237,"children":238,"icon":99},"vital-scoreboards","\u002Fdocs\u002Fmodules\u002Fvital-scoreboards","docs\u002F4.modules\u002Fvital-scoreboards\u002F1.index",[239,240,244],{"title":82,"path":236,"stem":237,"icon":8},{"title":241,"path":242,"stem":243},"Global scoreboards","\u002Fdocs\u002Fmodules\u002Fvital-scoreboards\u002Fglobal-scoreboards","docs\u002F4.modules\u002Fvital-scoreboards\u002Fglobal-scoreboards",{"title":245,"path":246,"stem":247},"Player scoreboards","\u002Fdocs\u002Fmodules\u002Fvital-scoreboards\u002Fplayer-scoreboards","docs\u002F4.modules\u002Fvital-scoreboards\u002Fplayer-scoreboards",{"title":249,"path":250,"stem":251,"children":252,"icon":99},"vital-statistics","\u002Fdocs\u002Fmodules\u002Fvital-statistics","docs\u002F4.modules\u002Fvital-statistics\u002F1.index",[253,254],{"title":82,"path":250,"stem":251,"icon":8},{"title":84,"path":255,"stem":256},"\u002Fdocs\u002Fmodules\u002Fvital-statistics\u002Fconfiguration","docs\u002F4.modules\u002Fvital-statistics\u002F2.configuration",{"title":258,"path":259,"stem":260,"children":261,"icon":99},"vital-tasks","\u002Fdocs\u002Fmodules\u002Fvital-tasks","docs\u002F4.modules\u002Fvital-tasks\u002F1.index",[262,263,267,271],{"title":82,"path":259,"stem":260,"icon":8},{"title":264,"path":265,"stem":266},"Repeatable tasks","\u002Fdocs\u002Fmodules\u002Fvital-tasks\u002Frepeatable-tasks","docs\u002F4.modules\u002Fvital-tasks\u002F2.repeatable-tasks",{"title":268,"path":269,"stem":270},"Countdown tasks","\u002Fdocs\u002Fmodules\u002Fvital-tasks\u002Fcountdown-tasks","docs\u002F4.modules\u002Fvital-tasks\u002F3.countdown-tasks",{"title":272,"path":273,"stem":274},"Scheduled tasks","\u002Fdocs\u002Fmodules\u002Fvital-tasks\u002Fscheduled-tasks","docs\u002F4.modules\u002Fvital-tasks\u002F4.scheduled-tasks",{"title":276,"path":277,"stem":278,"children":279,"icon":99},"vital-utils (Also for non Vital projects)","\u002Fdocs\u002Fmodules\u002Fvital-utils","docs\u002F4.modules\u002Fvital-utils\u002F1.index",[280],{"title":82,"path":277,"stem":278,"icon":8},"i-lucide-package",{"title":283,"path":284,"stem":285,"children":286,"icon":398},"Recipes","\u002Fdocs\u002Frecipes","docs\u002F5.recipes\u002F1.index",[287,289,301,305,317,330,341,344,368,371,384],{"title":288,"path":284,"stem":285,"icon":8},"What are recipes?",{"title":119,"path":290,"stem":291,"children":292,"page":34},"\u002Fdocs\u002Frecipes\u002Fcommands","docs\u002F5.recipes\u002Fcommands",[293,297],{"title":294,"path":295,"stem":296},"Command with arg exception handler","\u002Fdocs\u002Frecipes\u002Fcommands\u002Fcommands","docs\u002F5.recipes\u002Fcommands\u002Fcommands",{"title":298,"path":299,"stem":300},"Global command exception handler","\u002Fdocs\u002Frecipes\u002Fcommands\u002Fglobal-exception-handler","docs\u002F5.recipes\u002Fcommands\u002Fglobal-exception-handler",{"title":302,"path":303,"stem":304},"Config","\u002Fdocs\u002Frecipes\u002Fconfig","docs\u002F5.recipes\u002Fconfig",{"title":306,"path":307,"stem":308,"children":309,"page":34},"Holograms","\u002Fdocs\u002Frecipes\u002Fholograms","docs\u002F5.recipes\u002Fholograms",[310,314],{"title":311,"path":312,"stem":313},"Global hologram","\u002Fdocs\u002Frecipes\u002Fholograms\u002Fglobal-holograms","docs\u002F5.recipes\u002Fholograms\u002Fglobal-holograms",{"title":147,"path":315,"stem":316},"\u002Fdocs\u002Frecipes\u002Fholograms\u002Fplayer-holograms","docs\u002F5.recipes\u002Fholograms\u002Fplayer-holograms",{"title":318,"path":319,"stem":320,"children":321,"page":34},"Inventories","\u002Fdocs\u002Frecipes\u002Finventories","docs\u002F5.recipes\u002Finventories",[322,326],{"title":323,"path":324,"stem":325},"Normal inventory","\u002Fdocs\u002Frecipes\u002Finventories\u002Fnormal-inventory","docs\u002F5.recipes\u002Finventories\u002Fnormal-inventory",{"title":327,"path":328,"stem":329},"Paged inventory","\u002Fdocs\u002Frecipes\u002Finventories\u002Fpaged-inventory","docs\u002F5.recipes\u002Finventories\u002Fpaged-inventory",{"title":171,"path":331,"stem":332,"children":333,"page":34},"\u002Fdocs\u002Frecipes\u002Fitems","docs\u002F5.recipes\u002Fitems",[334,338],{"title":335,"path":336,"stem":337},"Interactable items","\u002Fdocs\u002Frecipes\u002Fitems\u002Finteractable-items","docs\u002F5.recipes\u002Fitems\u002Finteractable-items",{"title":175,"path":339,"stem":340},"\u002Fdocs\u002Frecipes\u002Fitems\u002Fitem-builders","docs\u002F5.recipes\u002Fitems\u002Fitem-builders",{"title":185,"path":342,"stem":343},"\u002Fdocs\u002Frecipes\u002Flocalization","docs\u002F5.recipes\u002Flocalization",{"title":345,"path":346,"stem":347,"children":348,"page":34},"Minigames","\u002Fdocs\u002Frecipes\u002Fminigames","docs\u002F5.recipes\u002Fminigames",[349,353,357,361,365],{"title":350,"path":351,"stem":352},"Global minigame countdown states","\u002Fdocs\u002Frecipes\u002Fminigames\u002Fglobal-countdown-states","docs\u002F5.recipes\u002Fminigames\u002Fglobal-countdown-states",{"title":354,"path":355,"stem":356},"Global minigame states","\u002Fdocs\u002Frecipes\u002Fminigames\u002Fglobal-states","docs\u002F5.recipes\u002Fminigames\u002Fglobal-states",{"title":358,"path":359,"stem":360},"Instance countdown states","\u002Fdocs\u002Frecipes\u002Fminigames\u002Finstance-countdown-states","docs\u002F5.recipes\u002Fminigames\u002Finstance-countdown-states",{"title":362,"path":363,"stem":364},"Instance states","\u002Fdocs\u002Frecipes\u002Fminigames\u002Finstance-states","docs\u002F5.recipes\u002Fminigames\u002Finstance-states",{"title":215,"path":366,"stem":367},"\u002Fdocs\u002Frecipes\u002Fminigames\u002Finstances","docs\u002F5.recipes\u002Fminigames\u002Finstances",{"title":231,"path":369,"stem":370},"\u002Fdocs\u002Frecipes\u002Fplayers","docs\u002F5.recipes\u002Fplayers",{"title":372,"path":373,"stem":374,"children":375,"page":34},"Scoreboards","\u002Fdocs\u002Frecipes\u002Fscoreboards","docs\u002F5.recipes\u002Fscoreboards",[376,380],{"title":377,"path":378,"stem":379},"Global scoreboard","\u002Fdocs\u002Frecipes\u002Fscoreboards\u002Fglobal-scoreboard","docs\u002F5.recipes\u002Fscoreboards\u002Fglobal-scoreboard",{"title":381,"path":382,"stem":383},"Player scoreboard","\u002Fdocs\u002Frecipes\u002Fscoreboards\u002Fplayer-scoreboard","docs\u002F5.recipes\u002Fscoreboards\u002Fplayer-scoreboard",{"title":385,"path":386,"stem":387,"children":388,"page":34},"Tasks","\u002Fdocs\u002Frecipes\u002Ftasks","docs\u002F5.recipes\u002Ftasks",[389,392,395],{"title":268,"path":390,"stem":391},"\u002Fdocs\u002Frecipes\u002Ftasks\u002Fcountdown-tasks","docs\u002F5.recipes\u002Ftasks\u002Fcountdown-tasks",{"title":264,"path":393,"stem":394},"\u002Fdocs\u002Frecipes\u002Ftasks\u002Frepeatable-tasks","docs\u002F5.recipes\u002Ftasks\u002Frepeatable-tasks",{"title":272,"path":396,"stem":397},"\u002Fdocs\u002Frecipes\u002Ftasks\u002Fscheduled-tasks","docs\u002F5.recipes\u002Ftasks\u002Fscheduled-tasks","i-lucide-cooking-pot",2,{"id":401,"title":402,"body":403,"description":1024,"extension":1025,"meta":1026,"navigation":1027,"path":351,"rawbody":1028,"seo":1029,"stem":352,"__hash__":1030},"docs\u002Fdocs\u002F5.recipes\u002Fminigames\u002Fglobal-countdown-states.md","Recipe for global minigame countdown states",{"type":404,"value":405,"toc":1022},"minimark",[406,411,423,426,1018],[407,408,410],"h1",{"id":409},"global-mini-game-countdown-states","Global mini-game countdown states",[412,413,414,415,418,419,422],"p",{},"Below is an example for a global mini-game countdown state for the ",[416,417,189],"code",{}," module.",[420,421],"br",{},"\nIn a game, only one state can currently be active at a given time.",[412,424,425],{},"Only the currently active state will receive events, and the countdown will decrease.",[427,428,433],"pre",{"className":429,"code":430,"filename":431,"language":432,"meta":99,"style":99},"language-java shiki shiki-themes material-theme-lighter github-light github-dark","@GlobalMinigameState\npublic class MyCountdownMinigameState extends VitalGlobalMinigameCountdownState {\n    public MyCountdownMinigameState(JavaPlugin plugin) {\n        super(plugin);\n    }\n\n    @Override\n    public void onEnable() {\n        for (final var player : Bukkit.getOnlinePlayers()) {\n            player.sendMessage(\"This state was enabled.\");\n        }\n    }\n    \n    @Override\n    public void onDisable() {\n        for (final var player : Bukkit.getOnlinePlayers()) {\n            player.sendMessage(\"This state was disabled.\");\n        }\n    }\n\n    @Override\n    public void onStart() {\n        for (final var player : Bukkit.getOnlinePlayers()) {\n            player.sendMessage(\"This state's countdown was started.\");\n        }\n    }\n\n    @Override\n    public void onTick() {\n        for (final var player : Bukkit.getOnlinePlayers()) {\n            player.sendMessage(\"This state's countdown ticked.\");\n        }\n    }\n\n    @Override\n    public void onExpire() {\n        for (final var player : Bukkit.getOnlinePlayers()) {\n            player.sendMessage(\"This state’s countdown has expired.\");\n        }\n    }\n\n    @EventHandler\n    public void onPlayerJoin(PlayerJoinEvent e) {\n        e.getPlayer().sendMessage(\"You have joined the game during this active state.\");\n    }\n}\n","MyCountdownMinigameState.java","java",[416,434,435,448,469,494,510,516,523,532,548,584,609,615,620,626,633,647,672,692,697,702,707,714,728,753,773,778,783,788,795,809,834,854,859,864,869,876,890,915,935,940,945,950,958,980,1007,1012],{"__ignoreMap":99},[436,437,440,444],"span",{"class":438,"line":439},"line",1,[436,441,443],{"class":442},"sP7_E","@",[436,445,447],{"class":446},"sbsja","GlobalMinigameState\n",[436,449,450,453,456,460,463,466],{"class":438,"line":399},[436,451,452],{"class":446},"public",[436,454,455],{"class":446}," class",[436,457,459],{"class":458},"sbgvK"," MyCountdownMinigameState",[436,461,462],{"class":446}," extends",[436,464,465],{"class":458}," VitalGlobalMinigameCountdownState",[436,467,468],{"class":442}," {\n",[436,470,472,475,478,481,485,489,492],{"class":438,"line":471},3,[436,473,474],{"class":446},"    public",[436,476,459],{"class":477},"sGLFI",[436,479,480],{"class":442},"(",[436,482,484],{"class":483},"s_bVq","JavaPlugin",[436,486,488],{"class":487},"s99_P"," plugin",[436,490,491],{"class":442},")",[436,493,468],{"class":442},[436,495,497,501,503,507],{"class":438,"line":496},4,[436,498,500],{"class":499},"s_hVV","        super",[436,502,480],{"class":442},[436,504,506],{"class":505},"su5hD","plugin",[436,508,509],{"class":442},");\n",[436,511,513],{"class":438,"line":512},5,[436,514,515],{"class":442},"    }\n",[436,517,519],{"class":438,"line":518},6,[436,520,522],{"emptyLinePlaceholder":521},true,"\n",[436,524,526,529],{"class":438,"line":525},7,[436,527,528],{"class":442},"    @",[436,530,531],{"class":446},"Override\n",[436,533,535,537,540,543,546],{"class":438,"line":534},8,[436,536,474],{"class":446},[436,538,539],{"class":446}," void",[436,541,542],{"class":477}," onEnable",[436,544,545],{"class":442},"()",[436,547,468],{"class":442},[436,549,551,555,558,561,564,567,570,573,576,579,582],{"class":438,"line":550},9,[436,552,554],{"class":553},"sVHd0","        for",[436,556,557],{"class":442}," (",[436,559,560],{"class":446},"final",[436,562,563],{"class":446}," var",[436,565,566],{"class":505}," player ",[436,568,569],{"class":553},":",[436,571,572],{"class":505}," Bukkit",[436,574,575],{"class":442},".",[436,577,578],{"class":477},"getOnlinePlayers",[436,580,581],{"class":442},"())",[436,583,468],{"class":442},[436,585,587,590,592,595,597,601,605,607],{"class":438,"line":586},10,[436,588,589],{"class":505},"            player",[436,591,575],{"class":442},[436,593,594],{"class":477},"sendMessage",[436,596,480],{"class":442},[436,598,600],{"class":599},"sjJ54","\"",[436,602,604],{"class":603},"s_sjI","This state was enabled.",[436,606,600],{"class":599},[436,608,509],{"class":442},[436,610,612],{"class":438,"line":611},11,[436,613,614],{"class":442},"        }\n",[436,616,618],{"class":438,"line":617},12,[436,619,515],{"class":442},[436,621,623],{"class":438,"line":622},13,[436,624,625],{"class":505},"    \n",[436,627,629,631],{"class":438,"line":628},14,[436,630,528],{"class":442},[436,632,531],{"class":446},[436,634,636,638,640,643,645],{"class":438,"line":635},15,[436,637,474],{"class":446},[436,639,539],{"class":446},[436,641,642],{"class":477}," onDisable",[436,644,545],{"class":442},[436,646,468],{"class":442},[436,648,650,652,654,656,658,660,662,664,666,668,670],{"class":438,"line":649},16,[436,651,554],{"class":553},[436,653,557],{"class":442},[436,655,560],{"class":446},[436,657,563],{"class":446},[436,659,566],{"class":505},[436,661,569],{"class":553},[436,663,572],{"class":505},[436,665,575],{"class":442},[436,667,578],{"class":477},[436,669,581],{"class":442},[436,671,468],{"class":442},[436,673,675,677,679,681,683,685,688,690],{"class":438,"line":674},17,[436,676,589],{"class":505},[436,678,575],{"class":442},[436,680,594],{"class":477},[436,682,480],{"class":442},[436,684,600],{"class":599},[436,686,687],{"class":603},"This state was disabled.",[436,689,600],{"class":599},[436,691,509],{"class":442},[436,693,695],{"class":438,"line":694},18,[436,696,614],{"class":442},[436,698,700],{"class":438,"line":699},19,[436,701,515],{"class":442},[436,703,705],{"class":438,"line":704},20,[436,706,522],{"emptyLinePlaceholder":521},[436,708,710,712],{"class":438,"line":709},21,[436,711,528],{"class":442},[436,713,531],{"class":446},[436,715,717,719,721,724,726],{"class":438,"line":716},22,[436,718,474],{"class":446},[436,720,539],{"class":446},[436,722,723],{"class":477}," onStart",[436,725,545],{"class":442},[436,727,468],{"class":442},[436,729,731,733,735,737,739,741,743,745,747,749,751],{"class":438,"line":730},23,[436,732,554],{"class":553},[436,734,557],{"class":442},[436,736,560],{"class":446},[436,738,563],{"class":446},[436,740,566],{"class":505},[436,742,569],{"class":553},[436,744,572],{"class":505},[436,746,575],{"class":442},[436,748,578],{"class":477},[436,750,581],{"class":442},[436,752,468],{"class":442},[436,754,756,758,760,762,764,766,769,771],{"class":438,"line":755},24,[436,757,589],{"class":505},[436,759,575],{"class":442},[436,761,594],{"class":477},[436,763,480],{"class":442},[436,765,600],{"class":599},[436,767,768],{"class":603},"This state's countdown was started.",[436,770,600],{"class":599},[436,772,509],{"class":442},[436,774,776],{"class":438,"line":775},25,[436,777,614],{"class":442},[436,779,781],{"class":438,"line":780},26,[436,782,515],{"class":442},[436,784,786],{"class":438,"line":785},27,[436,787,522],{"emptyLinePlaceholder":521},[436,789,791,793],{"class":438,"line":790},28,[436,792,528],{"class":442},[436,794,531],{"class":446},[436,796,798,800,802,805,807],{"class":438,"line":797},29,[436,799,474],{"class":446},[436,801,539],{"class":446},[436,803,804],{"class":477}," onTick",[436,806,545],{"class":442},[436,808,468],{"class":442},[436,810,812,814,816,818,820,822,824,826,828,830,832],{"class":438,"line":811},30,[436,813,554],{"class":553},[436,815,557],{"class":442},[436,817,560],{"class":446},[436,819,563],{"class":446},[436,821,566],{"class":505},[436,823,569],{"class":553},[436,825,572],{"class":505},[436,827,575],{"class":442},[436,829,578],{"class":477},[436,831,581],{"class":442},[436,833,468],{"class":442},[436,835,837,839,841,843,845,847,850,852],{"class":438,"line":836},31,[436,838,589],{"class":505},[436,840,575],{"class":442},[436,842,594],{"class":477},[436,844,480],{"class":442},[436,846,600],{"class":599},[436,848,849],{"class":603},"This state's countdown ticked.",[436,851,600],{"class":599},[436,853,509],{"class":442},[436,855,857],{"class":438,"line":856},32,[436,858,614],{"class":442},[436,860,862],{"class":438,"line":861},33,[436,863,515],{"class":442},[436,865,867],{"class":438,"line":866},34,[436,868,522],{"emptyLinePlaceholder":521},[436,870,872,874],{"class":438,"line":871},35,[436,873,528],{"class":442},[436,875,531],{"class":446},[436,877,879,881,883,886,888],{"class":438,"line":878},36,[436,880,474],{"class":446},[436,882,539],{"class":446},[436,884,885],{"class":477}," onExpire",[436,887,545],{"class":442},[436,889,468],{"class":442},[436,891,893,895,897,899,901,903,905,907,909,911,913],{"class":438,"line":892},37,[436,894,554],{"class":553},[436,896,557],{"class":442},[436,898,560],{"class":446},[436,900,563],{"class":446},[436,902,566],{"class":505},[436,904,569],{"class":553},[436,906,572],{"class":505},[436,908,575],{"class":442},[436,910,578],{"class":477},[436,912,581],{"class":442},[436,914,468],{"class":442},[436,916,918,920,922,924,926,928,931,933],{"class":438,"line":917},38,[436,919,589],{"class":505},[436,921,575],{"class":442},[436,923,594],{"class":477},[436,925,480],{"class":442},[436,927,600],{"class":599},[436,929,930],{"class":603},"This state’s countdown has expired.",[436,932,600],{"class":599},[436,934,509],{"class":442},[436,936,938],{"class":438,"line":937},39,[436,939,614],{"class":442},[436,941,943],{"class":438,"line":942},40,[436,944,515],{"class":442},[436,946,948],{"class":438,"line":947},41,[436,949,522],{"emptyLinePlaceholder":521},[436,951,953,955],{"class":438,"line":952},42,[436,954,528],{"class":442},[436,956,957],{"class":446},"EventHandler\n",[436,959,961,963,965,968,970,973,976,978],{"class":438,"line":960},43,[436,962,474],{"class":446},[436,964,539],{"class":446},[436,966,967],{"class":477}," onPlayerJoin",[436,969,480],{"class":442},[436,971,972],{"class":483},"PlayerJoinEvent",[436,974,975],{"class":487}," e",[436,977,491],{"class":442},[436,979,468],{"class":442},[436,981,983,986,988,991,994,996,998,1000,1003,1005],{"class":438,"line":982},44,[436,984,985],{"class":505},"        e",[436,987,575],{"class":442},[436,989,990],{"class":477},"getPlayer",[436,992,993],{"class":442},"().",[436,995,594],{"class":477},[436,997,480],{"class":442},[436,999,600],{"class":599},[436,1001,1002],{"class":603},"You have joined the game during this active state.",[436,1004,600],{"class":599},[436,1006,509],{"class":442},[436,1008,1010],{"class":438,"line":1009},45,[436,1011,515],{"class":442},[436,1013,1015],{"class":438,"line":1014},46,[436,1016,1017],{"class":442},"}\n",[1019,1020,1021],"style",{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_bVq, html code.shiki .s_bVq{--shiki-light:#9C3EDA;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":99,"searchDepth":399,"depth":399,"links":1023},[],"This page defines a recipe (pre-written code snippet) for a global countdown game state, that can be copied by a developer instead of manually writing it.","md",{},{"title":350},"---\ntitle: Recipe for global minigame countdown states\ndescription: This page defines a recipe (pre-written code snippet) for a global countdown game state, that can be copied by a developer instead of manually writing it.\nnavigation:\n  title: Global minigame countdown states\n---\n\n# Global mini-game countdown states\n\nBelow is an example for a global mini-game countdown state for the `vital-minigames` module.  \nIn a game, only one state can currently be active at a given time.\n\nOnly the currently active state will receive events, and the countdown will decrease.\n\n```java [MyCountdownMinigameState.java]\n@GlobalMinigameState\npublic class MyCountdownMinigameState extends VitalGlobalMinigameCountdownState {\n\tpublic MyCountdownMinigameState(JavaPlugin plugin) {\n\t\tsuper(plugin);\n\t}\n\n\t@Override\n\tpublic void onEnable() {\n\t\tfor (final var player : Bukkit.getOnlinePlayers()) {\n\t\t\tplayer.sendMessage(\"This state was enabled.\");\n\t\t}\n\t}\n\t\n\t@Override\n\tpublic void onDisable() {\n\t\tfor (final var player : Bukkit.getOnlinePlayers()) {\n\t\t\tplayer.sendMessage(\"This state was disabled.\");\n\t\t}\n\t}\n\n\t@Override\n\tpublic void onStart() {\n\t\tfor (final var player : Bukkit.getOnlinePlayers()) {\n\t\t\tplayer.sendMessage(\"This state's countdown was started.\");\n\t\t}\n\t}\n\n\t@Override\n\tpublic void onTick() {\n\t\tfor (final var player : Bukkit.getOnlinePlayers()) {\n\t\t\tplayer.sendMessage(\"This state's countdown ticked.\");\n\t\t}\n\t}\n\n\t@Override\n\tpublic void onExpire() {\n\t\tfor (final var player : Bukkit.getOnlinePlayers()) {\n\t\t\tplayer.sendMessage(\"This state’s countdown has expired.\");\n\t\t}\n\t}\n\n\t@EventHandler\n\tpublic void onPlayerJoin(PlayerJoinEvent e) {\n\t\te.getPlayer().sendMessage(\"You have joined the game during this active state.\");\n\t}\n}\n```\n",{"title":402,"description":1024},"22LLFBRT7ei4G5rBU4hCAj8z4zJs0BBqJlkFjtfWlkU",1789308660732]