NOTE: THIS ONLY WORKS WITH MC 1.21 AND UPWARDS! MAYBE I WILL MAKE IT RUN ON OLDER VERSIONS SOMETIME IN THE FUTURE! UNTIL THAN JUST DOWNLOAD THE LATEST UPDATES FOR SUPPORT TO THE LATEST VERSIONS AND UPDATES
This just got changed, so feel free to test what version of paper still works, since idk if the new methods in persistant data containers work on 1.20... just test it yourself ig haha
1. There is a config (config.yml) where you can register world types, which is completly config related, it's not required, so if you create a world without such a config template just dont type anything at world creation! an example will be automatically generated in the config.
Example:
Skywars:
middleContainerLocations: [ ]
spawnLocs: [ ]
2. The creating of a world is simple, just type /build press the + item in the inventory and now you have some settings of which only the 2 nametags are required. To set them up read the names, the map/worldname is the name you want for the world and the type is the configsection we created in 1.. It is not allowed to use characters other than [a-z0-9/._-]!
The /add wil get a ui part aswell in one of the next updates! 3. There are commands: 1. is a show command to show the locations you add to a key in the configsection of the world with:
/build add key (name of the key)
value (a simple value) or x, y, z (~, ~, ~ or a number)
(optionally similar to x y and z) pitch and yaw.
A full add command would look like this:
1. </build add spawnLocations 1 1 1 ~ ~>
2. </build add spawnLocations ~ ~ ~ ~ ~>
3. </build add spawnLocations 1 1 1>
4. </build add spawnLocations ~ ~ ~>
5. </build add spawnLocations a value>
Note that if you put "a value" in quotes the config will bug a bit out ( putting it as '"a value"' ). Will be fixed but don't do it until then.
A full show command would look like this:
</build show spawnLocations>
Note that the show command only spawns particles which do not have a high renderdistance up until now, this is a known problem and will be changed.
4. All other configs do nothing that you need to worry about (except for the config of each world) , there is a registry which is automatically created and there are configs for the spawns of players and their inventory contents to ensure each world has individual inventories and individual spawnLocations for each player.
5. There is a teleport command built-in that u can use as following:
Basic Teleport Commands
/teleport Steve
/teleport Alex Steve
/teleport 100 65 -200 (9, 9)
/teleport Steve 200 70 -300 (9, 9)
Cross-Dimensional / World Teleportation
/teleport world_nether 50 80 -50 (9, 9)
/teleport Steve world_nether 0 80 0 (9, 9)
/teleport world_nether Steve Alex
Normal Teleportation
/teleport 50 80 -50 (9 9.4)
/teleport Steve 0 80 0 (9 9.4)
/teleport Steve Alex
Admin Console Commands
/teleport Steve Alex
/teleport Steve world 150 70 -150 (9 9.4)
If you want to use this with citizens commands than just add the command as normal, but use -p as flag from citizens. The command would look ad following:
Any Command from before:
/npc command add -p build teleport 50 80 -50 9 9.4
6. The source of this project can be found on the linked github and a support server on discord will be linked under connections soon. The project stands under the MIT license so feel free to do whatever you want with it, that means if you need a feature you are free to fork it, or if you want to add something or optimize things, than contribute to it on github.
7. Permissions are built-in intop the Buildsystem. There are following permissions:
buildsystem.permission.command
buildsystem.permission.create
buildsystem.permission.copy
buildsystem.permission.rename # in the next update
buildsystem.permission.addMenu # for the /build add menu in the next major update
buildsystem.permission.delete
buildsystem.permission.openmenu
buildsystem.permission.teleport
You can access all of these as operator.
8. In the properties.yml you can change 3 things about the plugin which save and load the players inventory individually for each world you create or enter! You can also set automatic deletion of session.lock files, so a smooth operation will be ensured!
9. Customisation and how it works: To customise the world icon for every world of a kind, you will have to go into the registry.yml, than under your template, you will need to create the following:
Example-template:
template-material: YOUR_MATERIAL
**Rest if the Config**
The Material can be every Blocks name, you don't need to take care of upper case, as the plugin already does it! And the same goes for a world specific icon (which overwrites the template icon):
Example-template:
world-1:
world-material: YOUR_MATERIAL
**Rest of your config...**
10. Hierarchies, template changing, renaming and /add command GUI: Coming with v1.9