#+----------------+ #- World Manager #+----------------+ #- @@@ Server Databse serverDatabase_worldmanager: type: data prefix: #- @@@ WRM Events wrmEvent_load: type: world debug: false events: on server prestart: - foreach ]> as:world_info key:world_name: - createworld <[world_name]> if:<[world_info].get[auto_load]> - wait 1s after player clicks item in wrmInventory_worlds: - define world ].if_null[Null]> - define prefix - if <[world]> == Null: - narrate "<&c>Tento svet... neexistuje?" - stop - define loc <[world].spawn_location> - if !|<[loc]>]>: - narrate "<&c>Tento svet ma nebezpecny spawn!" - stop - teleport <[loc]> relative - narrate "<&7>Teleportujem na spawn sveta <&f><[world].name><&7>." #- @@@ WRM adminCommand_wrm: type: command debug: false name: wrm description: World Manager. usage: /wrm [create|unload|info|menu|set] [args...] permission: admin.wrm permission message: <&c>Na toto nemas opravnenie tab completions: 1: create|unload|info|menu|set 2: ]> 3: ]> 4: ]> #tab complete: # - determine cs|aho script: - define prefix - choose : #.@ Create Argument - case create: - define nazov - if <[nazov]> == Null: - narrate "<[prefix]> <&c>Nezadal si nazov sveta!" - stop - if !<[nazov].regex_matches[^[a-zA-Z]*$]>: - narrate "<[prefix]> <&c>Nazov musi obsahovat iba pismena bez diakritiky a inych znamienok..." - stop - if <[nazov]> in or <[nazov]> in ]>: - narrate "<[prefix]> <&c>Svet s tymto nazvom uz existuje!" - stop - define env - if <[env]> == Null: - narrate "<[prefix]> <&c>Nezadal si environment pre tento svet!" - stop - if <[env]> !in THE_END|NETHER|NORMAL: - narrate "<[prefix]> <&c>Neplatny environemnt, platne: THE_END NETHER NORMAL" - stop - define type - if <[type]> !in : - narrate "<[prefix]> <&c>Neplatny typ, platne: " - stop - wait 2t - createworld <[nazov]> environment:<[env]> worldtype:<[type]> - flag server worlds:->:=]> - wait 2t - narrate "<[prefix]> <&7>Uspesne si vytvoril svet <&f><[nazov]><&7>. Svet sa bude automaticky pri starte nacitavat. Pre zmenu nastaveni sveta pouzi <&f>/wrm set<&7>." #.@ Unload Argument - case unload: - define world ].if_null[Null]> - if <[world]> == Null: - narrate "<[prefix]> <&c>Svet s tymto nazvom neexistuje!" - stop - if !<[world].players.is_empty>: - narrate "<[prefix]> <&c>Svet nemoze byt odnacitany pretoze su tam hraci!" - stop - adjust <[world]> unload - wait 2t - narrate "<[prefix]> <&7>Uspesne si odnacital svet <&f><[world].name><&7>." #.@ Info Argument - case info: - define world ].if_null[Null]> - if <[world]> == Null: - narrate "<[prefix]> <&c>Svet s tymto nazvom neexistuje!" - stop - define world_players <[world].players.size> - definemap message: 1: <&7>-> <&f><&l><[world].name> <&7>(<&f>Auto load: ].get[auto_load].if_null[-]> <&7>) 2: <&7>- <&f>Seed: <&color[#43db69]><[world].seed> <&7>(<&f><[world].environment><&7>) 3: <&7>- <&f>View dis: <&color[#dbb043]><[world].view_distance> <&7>| <&f>Simulation dis: <&color[#9cdb43]><[world].simulation_distance> <&7>| <&f>Chunky: <&color[#43dbd1]><[world].loaded_chunks.size> 4: <&7>- <&f>Hraci: <&color[#43db80]><[world_players]> <&7>| <&f>Entity: <&color[#b543db]><[world].living_entities.size.sub[<[world_players]>]> 5: <&7>- <&f>Spawn loc: <[world].spawn_location.format[<&color[#4399db]>bx by bz]> <&7>| <&f>Spawn load: <[world].keep_spawn.if_true[<&a>ano].if_false[<&c>nie]> - wait 1t - narrate <[message].values.separated_by[]> #.@ Set Argument - case set: - define world ].if_null[Null]> - if <[world]> == Null: - narrate "<[prefix]> Tento svet neexistuje alebo nie je nacitany!" - stop - choose : # Auto Load setting - case auto_load: - define param - if !<[param].is_boolean>: - narrate "<[prefix]> <&c>Toto nastavenie vyzaduje boolean argument! (true/false)" - stop - flag server ].with[auto_load].as[<[param]>]> - narrate "<[prefix]> <&7>Uspesne si vo svete <&f><[world].name> <&7>zmenil nastavenie <&f>auto_load <&7>na <&f><[param]><&7>." # View Distance setting - case view_distance: - define param - if !<[param].is_integer>: - narrate "<[prefix]> <&c>Toto nastavenie vyzaduje integer argument!" - stop - if <[param]> < 2 or <[param]> > 10: - narrate "<[prefix]> <&c>Argument nie je v bezpecnostnom limite. (2-10)" - stop - adjust <[world]> view_distance:<[param]> - narrate "<[prefix]> <&7>Uspesne si vo svete <&f><[world].name> <&7>zmenil nastavenie <&f>view_distance <&7>na <&f><[param]><&7>." # Simulation Distance setting - case simulation_distance: - define param - if !<[param].is_integer>: - narrate "<[prefix]> <&c>Toto nastavenie vyzaduje integer argument!" - stop - if <[param]> < 2 or <[param]> > 10: - narrate "<[prefix]> <&c>Argument nie je v bezpecnostnom limite. (2-10)" - stop - adjust <[world]> simulation_distance:<[param]> - narrate "<[prefix]> <&7>Uspesne si vo svete <&f><[world].name> <&7>zmenil nastavenie <&f>simulation_distance <&7>na <&f><[param]><&7>." # Keep Spawn setting - case keep_spawn: - define param - if !<[param].is_boolean>: - narrate "<[prefix]> <&c>Toto nastavenie vyzaduje boolean argument! (true/false)" - stop - adjust <[world]> keep_spawn:<[param]> - narrate "<[prefix]> <&7>Uspesne si vo svete <&f><[world].name> <&7>zmenil nastavenie <&f>keep_spawn <&7>na <&f><[param]><&7>." # Difficulty setting - case difficulty: - define param - if <[param]> !in Peaceful|Easy|Normal|Hard: - narrate "<[prefix]> <&c>Toto nastavenie vyzaduje jeden z tychto argumentov: Peaceful Easy Normal Hard" - stop - adjust <[world]> difficulty:<[param]> - narrate "<[prefix]> <&7>Uspesne si vo svete <&f><[world].name> <&7>zmenil nastavenie <&f>difficulty <&7>na <&f><[param]><&7>." - default: - narrate "<[prefix]> <&c>Neplatne nastavenie!" #.@ Menu Argument - case menu: - inventory open destination:wrmInventory_worlds #.@ Invalid Argument - default: - narrate "<[prefix]> <&c>Neplatny argument!" #- @@@ WRM Inventory wrmInventory_worlds: type: inventory debug: true inventory: chest gui: true size: ]> procedural items: - foreach as:world: - define world_players <[world].players.size> - definemap mechanisms: skull_skin: 20eea7ea-2e50-41a3-bade-27e37a45d526|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDM4Y2YzZjhlNTRhZmMzYjNmOTFkMjBhNDlmMzI0ZGNhMTQ4NjAwN2ZlNTQ1Mzk5MDU1NTI0YzE3OTQxZjRkYyJ9fX0= display: <&a><&l><[world].name> lore: - <&f>Typ: <[world].environment> - <&f>Hraci: <&color[#43db80]><[world_players]> <&7>| <&f>Entity: <&color[#b543db]><[world].living_entities.size.sub[<[world_players]>]> - <&f>View dis: <&color[#dbb043]><[world].view_distance> <&7>| <&f>Simulation dis: <&color[#9cdb43]><[world].simulation_distance> <&7>| <&f>Chunky: <&color[#43dbd1]><[world].loaded_chunks.size> - <&f> - <&e>Klikni pre teleport! - define list:->:]> - determine <[list]> #- @@@ WRM Procedure wrmProcedure_tabcomplete: type: procedure debug: true definitions: index[ElementTag] script: - choose <[index]>: - case 1: - choose <[2].first>: - case unload info set: - determine - case create: - determine Nazov - case menu: - determine - determine - case 2: - choose <[2].first>: - case create: - determine - case set: - determine - determine - case 3: - if <[2].first> == create: - determine - if <[2].first> != set: - determine - choose <[4]>: - case auto_load keep_spawn: - determine - case view_distance simulation_distance: - determine - case difficulty: - determine - determine