[{"data":1,"prerenderedAt":1016},["ShallowReactive",2],{"docs-navigation:\u002Fdocs\u002Frecipes\u002Fconfig":3,"docs-page-estimated-read-time:\u002Fdocs\u002Frecipes\u002Fconfig":399,"docs-page:\u002Fdocs\u002Frecipes\u002Fconfig":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":1009,"extension":1010,"meta":1011,"navigation":1012,"path":303,"rawbody":1013,"seo":1014,"stem":304,"__hash__":1015},"docs\u002Fdocs\u002F5.recipes\u002Fconfig.md","Recipe for a config",{"type":404,"value":405,"toc":1007},"minimark",[406,410,418,421,826,1003],[407,408,302],"h1",{"id":409},"config",[411,412,413,414,417],"p",{},"Below is an example for a YAML and a Properties config.",[415,416],"br",{},"\nYAML configs can be used to store more complex data, like your custom classes for other constructs.",[411,419,420],{},"Property configs can only store simple data like strings, booleans, numbers, etc.",[422,423,428],"pre",{"className":424,"code":425,"filename":426,"language":427,"meta":99,"style":99},"language-java shiki shiki-themes material-theme-lighter github-light github-dark","@VitalConfig.Info(name = \"myconfig.yaml\", processor = VitalYAMLConfigProcessor.class)\npublic class MyYamlConfig extends VitalConfig {\n    @Property(types = {String.class})\n    private String myString;\n\n    \u002F\u002F You always have to explicitly define the generic parameters here \n    @Property(types = {String.class})\n    private List\u003CString> myStringList;\n\n    @Property(types = {MyClass.class})\n    private MyClass myClass;\n\n    @Property(types = {String.class, MyClass.class})\n    private Map\u003CString, MyClass> myClassMap;\n\n    \u002F\u002F Getters and setters\n\n    public class MyClass {\n        @Property(types = {String.class})\n        private String myClassString;\n\n        \u002F\u002F Custom config objects must have a default constructor\n        public MyClass() {}\n\n        \u002F\u002F Getters and setters\n    }\n}\n","MyYamlConfig.java","java",[429,430,431,487,508,537,553,560,567,590,611,616,640,653,658,689,712,717,723,728,740,764,777,782,788,803,808,814,820],"code",{"__ignoreMap":99},[432,433,436,440,444,447,451,455,459,463,466,469,472,474,478,481,484],"span",{"class":434,"line":435},"line",1,[432,437,439],{"class":438},"sP7_E","@",[432,441,443],{"class":442},"sbsja","VitalConfig.Info",[432,445,446],{"class":438},"(",[432,448,450],{"class":449},"sZMiF","name",[432,452,454],{"class":453},"smGrS"," =",[432,456,458],{"class":457},"sjJ54"," \"",[432,460,462],{"class":461},"s_sjI","myconfig.yaml",[432,464,465],{"class":457},"\"",[432,467,468],{"class":438},",",[432,470,471],{"class":449}," processor",[432,473,454],{"class":453},[432,475,477],{"class":476},"su5hD"," VitalYAMLConfigProcessor",[432,479,480],{"class":438},".",[432,482,483],{"class":476},"class",[432,485,486],{"class":438},")\n",[432,488,489,492,495,499,502,505],{"class":434,"line":399},[432,490,491],{"class":442},"public",[432,493,494],{"class":442}," class",[432,496,498],{"class":497},"sbgvK"," MyYamlConfig",[432,500,501],{"class":442}," extends",[432,503,504],{"class":497}," VitalConfig",[432,506,507],{"class":438}," {\n",[432,509,511,514,517,519,522,524,527,530,532,534],{"class":434,"line":510},3,[432,512,513],{"class":438},"    @",[432,515,516],{"class":442},"Property",[432,518,446],{"class":438},[432,520,521],{"class":449},"types",[432,523,454],{"class":453},[432,525,526],{"class":438}," {",[432,528,529],{"class":476},"String",[432,531,480],{"class":438},[432,533,483],{"class":476},[432,535,536],{"class":438},"})\n",[432,538,540,543,547,550],{"class":434,"line":539},4,[432,541,542],{"class":442},"    private",[432,544,546],{"class":545},"s_bVq"," String",[432,548,549],{"class":476}," myString",[432,551,552],{"class":438},";\n",[432,554,556],{"class":434,"line":555},5,[432,557,559],{"emptyLinePlaceholder":558},true,"\n",[432,561,563],{"class":434,"line":562},6,[432,564,566],{"class":565},"sutJx","    \u002F\u002F You always have to explicitly define the generic parameters here \n",[432,568,570,572,574,576,578,580,582,584,586,588],{"class":434,"line":569},7,[432,571,513],{"class":438},[432,573,516],{"class":442},[432,575,446],{"class":438},[432,577,521],{"class":449},[432,579,454],{"class":453},[432,581,526],{"class":438},[432,583,529],{"class":476},[432,585,480],{"class":438},[432,587,483],{"class":476},[432,589,536],{"class":438},[432,591,593,595,598,601,603,606,609],{"class":434,"line":592},8,[432,594,542],{"class":442},[432,596,597],{"class":545}," List",[432,599,600],{"class":438},"\u003C",[432,602,529],{"class":442},[432,604,605],{"class":438},">",[432,607,608],{"class":476}," myStringList",[432,610,552],{"class":438},[432,612,614],{"class":434,"line":613},9,[432,615,559],{"emptyLinePlaceholder":558},[432,617,619,621,623,625,627,629,631,634,636,638],{"class":434,"line":618},10,[432,620,513],{"class":438},[432,622,516],{"class":442},[432,624,446],{"class":438},[432,626,521],{"class":449},[432,628,454],{"class":453},[432,630,526],{"class":438},[432,632,633],{"class":476},"MyClass",[432,635,480],{"class":438},[432,637,483],{"class":476},[432,639,536],{"class":438},[432,641,643,645,648,651],{"class":434,"line":642},11,[432,644,542],{"class":442},[432,646,647],{"class":545}," MyClass",[432,649,650],{"class":476}," myClass",[432,652,552],{"class":438},[432,654,656],{"class":434,"line":655},12,[432,657,559],{"emptyLinePlaceholder":558},[432,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687],{"class":434,"line":660},13,[432,662,513],{"class":438},[432,664,516],{"class":442},[432,666,446],{"class":438},[432,668,521],{"class":449},[432,670,454],{"class":453},[432,672,526],{"class":438},[432,674,529],{"class":476},[432,676,480],{"class":438},[432,678,483],{"class":476},[432,680,468],{"class":438},[432,682,647],{"class":476},[432,684,480],{"class":438},[432,686,483],{"class":476},[432,688,536],{"class":438},[432,690,692,694,697,699,701,703,705,707,710],{"class":434,"line":691},14,[432,693,542],{"class":442},[432,695,696],{"class":545}," Map",[432,698,600],{"class":438},[432,700,529],{"class":442},[432,702,468],{"class":438},[432,704,647],{"class":442},[432,706,605],{"class":438},[432,708,709],{"class":476}," myClassMap",[432,711,552],{"class":438},[432,713,715],{"class":434,"line":714},15,[432,716,559],{"emptyLinePlaceholder":558},[432,718,720],{"class":434,"line":719},16,[432,721,722],{"class":565},"    \u002F\u002F Getters and setters\n",[432,724,726],{"class":434,"line":725},17,[432,727,559],{"emptyLinePlaceholder":558},[432,729,731,734,736,738],{"class":434,"line":730},18,[432,732,733],{"class":442},"    public",[432,735,494],{"class":442},[432,737,647],{"class":497},[432,739,507],{"class":438},[432,741,743,746,748,750,752,754,756,758,760,762],{"class":434,"line":742},19,[432,744,745],{"class":438},"        @",[432,747,516],{"class":442},[432,749,446],{"class":438},[432,751,521],{"class":449},[432,753,454],{"class":453},[432,755,526],{"class":438},[432,757,529],{"class":476},[432,759,480],{"class":438},[432,761,483],{"class":476},[432,763,536],{"class":438},[432,765,767,770,772,775],{"class":434,"line":766},20,[432,768,769],{"class":442},"        private",[432,771,546],{"class":545},[432,773,774],{"class":476}," myClassString",[432,776,552],{"class":438},[432,778,780],{"class":434,"line":779},21,[432,781,559],{"emptyLinePlaceholder":558},[432,783,785],{"class":434,"line":784},22,[432,786,787],{"class":565},"        \u002F\u002F Custom config objects must have a default constructor\n",[432,789,791,794,797,800],{"class":434,"line":790},23,[432,792,793],{"class":442},"        public",[432,795,647],{"class":796},"sGLFI",[432,798,799],{"class":438},"()",[432,801,802],{"class":438}," {}\n",[432,804,806],{"class":434,"line":805},24,[432,807,559],{"emptyLinePlaceholder":558},[432,809,811],{"class":434,"line":810},25,[432,812,813],{"class":565},"        \u002F\u002F Getters and setters\n",[432,815,817],{"class":434,"line":816},26,[432,818,819],{"class":438},"    }\n",[432,821,823],{"class":434,"line":822},27,[432,824,825],{"class":438},"}\n",[422,827,830],{"className":424,"code":828,"filename":829,"language":427,"meta":99,"style":99},"@VitalConfig.Info(name = \"myconfig.properties\", processor = VitalPropertiesConfigProcessor.class)\npublic class MyPropertiesConfig extends VitalConfig {\n    @Property(types = {String.class})\n    private String myString;\n\n    @Property(types = {Boolean.class})\n    private boolean myBoolean;\n\n    @Property(types = {Integer.class})\n    private int myInt;\n\n    \u002F\u002F Getters and setters\n}\n","MyPropertiesConfig.java",[429,831,832,866,881,903,913,917,940,952,956,979,991,995,999],{"__ignoreMap":99},[432,833,834,836,838,840,842,844,846,849,851,853,855,857,860,862,864],{"class":434,"line":435},[432,835,439],{"class":438},[432,837,443],{"class":442},[432,839,446],{"class":438},[432,841,450],{"class":449},[432,843,454],{"class":453},[432,845,458],{"class":457},[432,847,848],{"class":461},"myconfig.properties",[432,850,465],{"class":457},[432,852,468],{"class":438},[432,854,471],{"class":449},[432,856,454],{"class":453},[432,858,859],{"class":476}," VitalPropertiesConfigProcessor",[432,861,480],{"class":438},[432,863,483],{"class":476},[432,865,486],{"class":438},[432,867,868,870,872,875,877,879],{"class":434,"line":399},[432,869,491],{"class":442},[432,871,494],{"class":442},[432,873,874],{"class":497}," MyPropertiesConfig",[432,876,501],{"class":442},[432,878,504],{"class":497},[432,880,507],{"class":438},[432,882,883,885,887,889,891,893,895,897,899,901],{"class":434,"line":510},[432,884,513],{"class":438},[432,886,516],{"class":442},[432,888,446],{"class":438},[432,890,521],{"class":449},[432,892,454],{"class":453},[432,894,526],{"class":438},[432,896,529],{"class":476},[432,898,480],{"class":438},[432,900,483],{"class":476},[432,902,536],{"class":438},[432,904,905,907,909,911],{"class":434,"line":539},[432,906,542],{"class":442},[432,908,546],{"class":545},[432,910,549],{"class":476},[432,912,552],{"class":438},[432,914,915],{"class":434,"line":555},[432,916,559],{"emptyLinePlaceholder":558},[432,918,919,921,923,925,927,929,931,934,936,938],{"class":434,"line":562},[432,920,513],{"class":438},[432,922,516],{"class":442},[432,924,446],{"class":438},[432,926,521],{"class":449},[432,928,454],{"class":453},[432,930,526],{"class":438},[432,932,933],{"class":476},"Boolean",[432,935,480],{"class":438},[432,937,483],{"class":476},[432,939,536],{"class":438},[432,941,942,944,947,950],{"class":434,"line":569},[432,943,542],{"class":442},[432,945,946],{"class":442}," boolean",[432,948,949],{"class":476}," myBoolean",[432,951,552],{"class":438},[432,953,954],{"class":434,"line":592},[432,955,559],{"emptyLinePlaceholder":558},[432,957,958,960,962,964,966,968,970,973,975,977],{"class":434,"line":613},[432,959,513],{"class":438},[432,961,516],{"class":442},[432,963,446],{"class":438},[432,965,521],{"class":449},[432,967,454],{"class":453},[432,969,526],{"class":438},[432,971,972],{"class":476},"Integer",[432,974,480],{"class":438},[432,976,483],{"class":476},[432,978,536],{"class":438},[432,980,981,983,986,989],{"class":434,"line":618},[432,982,542],{"class":442},[432,984,985],{"class":442}," int",[432,987,988],{"class":476}," myInt",[432,990,552],{"class":438},[432,992,993],{"class":434,"line":642},[432,994,559],{"emptyLinePlaceholder":558},[432,996,997],{"class":434,"line":655},[432,998,722],{"class":565},[432,1000,1001],{"class":434,"line":660},[432,1002,825],{"class":438},[1004,1005,1006],"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 .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}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 pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--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 .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":1008},[],"This page defines a recipe (pre-written code snippet) for a config, that can be copied by a developer instead of manually writing it.","md",{},{"title":302},"---\ntitle: Recipe for a config\ndescription: This page defines a recipe (pre-written code snippet) for a config, that can be copied by a developer instead of manually writing it.\nnavigation:\n  title: Config\n---\n\n# Config\n\nBelow is an example for a YAML and a Properties config.  \nYAML configs can be used to store more complex data, like your custom classes for other constructs.\n\nProperty configs can only store simple data like strings, booleans, numbers, etc.\n\n```java [MyYamlConfig.java]\n@VitalConfig.Info(name = \"myconfig.yaml\", processor = VitalYAMLConfigProcessor.class)\npublic class MyYamlConfig extends VitalConfig {\n\t@Property(types = {String.class})\n\tprivate String myString;\n\n\t\u002F\u002F You always have to explicitly define the generic parameters here\t\n\t@Property(types = {String.class})\n\tprivate List\u003CString> myStringList;\n\n\t@Property(types = {MyClass.class})\n\tprivate MyClass myClass;\n\n\t@Property(types = {String.class, MyClass.class})\n\tprivate Map\u003CString, MyClass> myClassMap;\n\n\t\u002F\u002F Getters and setters\n\n\tpublic class MyClass {\n\t\t@Property(types = {String.class})\n\t\tprivate String myClassString;\n\n\t\t\u002F\u002F Custom config objects must have a default constructor\n\t\tpublic MyClass() {}\n\n\t\t\u002F\u002F Getters and setters\n\t}\n}\n```\n\n```java [MyPropertiesConfig.java]\n@VitalConfig.Info(name = \"myconfig.properties\", processor = VitalPropertiesConfigProcessor.class)\npublic class MyPropertiesConfig extends VitalConfig {\n\t@Property(types = {String.class})\n\tprivate String myString;\n\n\t@Property(types = {Boolean.class})\n\tprivate boolean myBoolean;\n\n\t@Property(types = {Integer.class})\n\tprivate int myInt;\n\n\t\u002F\u002F Getters and setters\n}\n```\n",{"title":402,"description":1009},"Q75OgACM1YWpo3RDTYbS9-wSEIArXnLrQMjPkx00QqI",1789308660704]