+
Add support for Minecraft 1.21
+
Improve skull performance in menus
+
Added world type to the import command
+
Allow builders to be added and removed via command
+
Bug fixes
» Fixed incorrectly implemented bypass logic
» Don't allow world to be renamed if other world with new name already exists
» World was not saved before chunks are unloaded
» Fixed NPE when using filters
+ Added support for Minecraft 1.20.4
+ Fixed message error in world editor
Fix incorrect dependency version
- QOL improvements
+ Worlds are now unloaded by default; If you do not have this setting activated, I suggest you do so
+ Add permission to setting individual status states (/worlds setStatus): https://buildsystem.eintosti.de/worlds/setstatus#individual-permission
+ Improve player teleportation: Player is now teleported up when VOID damage is received
+ You can now use PlaceholderAPI placeholders in messages
+ The scoreboard is now updated scoreboard asynchronously
- Bug fixes
+ Worlds which are blacklisted from being unloaded will now load when the server starts
+ The "import successful" message will only be sent if the import actually finished
+ Added missing plants to the "Place Plants" setting
+
Added 1.20.2 support
+
Bug fixes
- Added 1.20 support
- Added ability to filter words in navigator
» New slot in the navigator
» Toggle through multiple settings: "none", "starts with", "contains" and "matches"
- Allow admins to specify further illegal characters in a world's name
» New config option: invalid-characters
» If a character in the world's name matches the specified regex, it is removed
- New placeholders
» %buildsystem_lastedited%
» %buildsystem_ lastloaded%
» %buildsystem_ lastunloaded%
- Several bug fixes
- Added 1.19.4 support
- Added ability to not send messages
» Blank messages are no longer sent to the player
» Example: A command is to be hidden from /buildsystem -> Set buildsystem_XXX: "" in the messages.yml file
- Multi-page /buildsystem command
» The /buildsystem [page] command now takes a page argument, as it no longer displays all commands at once
- Bug fixes
» Players not in build-mode could not interact with other inventories when move-items was disabled
+
Fix duplicate message key
» The key "
worlds_import_newer_version" was supposed to be "
worlds_importall_newer_version"
+
Allow messages to contain commas
» Previously, when using commas (,) in multi-line messages would result in the message being split
+ Compress world
level.dat with GZIP when writing server version
Fixes a bug that would stop worlds being loaded on servers using Spigot 1.8
+
Added 1.19.3 support
+
Check world DataVersion before loading
» Prevents newer worlds from being loaded in older versions
» Is ignored when `Paper.ignoreWorldDataVersion` flag is enabled
+
Add "move-items" config option
» Stops a player from moving/taking items to/from other inventories when in build-mode
» Also changed the default of "
drop-items" to true
+
Bug fixes
» Player would receive navigator even if setting was disabled
» Instant Place Signs didn't support
mangrove_sign
+ Improvements to /build
» Add permission for when setting other players into build-mode:
buildsystem.build.others
» Reset player inventory when leaving build-mode
» New config option for disabling item drops when in build-mode (default: false)
» Add LuckPerms context for when players are in build-mode (
build-mode)
+ Bug fix
» Custom blocks were not being placed when disable interactions is enabled
Fix world icon not displaying correctly
+
Improved /worlds command
» Up till now, whenever a command such as
/worlds edit <world> was run, the world always had to be specified
» Now, whenever a world is not specified (
/worlds edit) the player's current world is used
+ Improvements to /blocks
» Added invisible item frame to servers running 1.17+
» Improved rotation of orientable blocks
+ Allow players to rejoin server in unloaded worlds
» If a player has spawn teleportation deactivated and world unloading has been enabled, the world the player was previously in is now loaded automatically
+ Utilize PaperLib
» If the server is running Paper, players will be teleported asynchronously
+ Bug fixes
- Add permissions to each world type creation
» Allows server owners to restrict which world types can be created
» Permissions can be found here
- Allow admins to bypass a world's permission
» Use the admin permission: buildsystem.admin
- Fix NoSuchMethodError thrown in legacy versions
+ Don't use StringUtils from apache commons lang3
+ Switch from Spigot 1.19 to 1.19.1 as API version
+ Fix "Double Stone Slab" block being placed incorrectly (Minecraft 1.14+)
+ Show archived private worlds in world archive
+ Added piston head block to
/blocks
+ When editing gamerules in a world (
/worlds edit), the next page button should now work as intended in versions <1.13
+ Fix updater showing incorrect version
+ Fix updater showing incorrect version
+
Add support for Minecraft 1.19
+
Bug fixes:
» Don't import a world twice if already existent (
/worlds importAll)
+ Default world permissions
» Added 2 new config options:
world.default.permission.public and
world.default.permission.public
» Each option sets the default permission the respected world type will have when created
» Use
%world% as a placeholder for the world's name
+ Restrict commands to world creator
» All commands defaults to .self when no suffix (.self, .other) is provided. For example:
buildsystem.day =
buildsystem.day.self
» With the permission suffix .self, a player can only modify worlds that belong to the player (player is creator)
» With the permission suffix .other, a player can only modify worlds that
don't belong to the player (player is
not creator)
+ More permission checks when using /worlds edit
» Each task found in /worlds edit now has an extra sub-permission to restrict tasks to certain players.
» A list of all permissions can be found here:
https://buildsystem.eintosti.com/worlds/edit/
+ Correctly allow multiple private worlds to be created
+ Fixes a bug where creators could not add builders to their world with
/worlds addBuilder
+ From now on, only the creator of a world can delete it (or players with the admin permission:
buildsystem.admin)
+ Players are no longer limited to one private world. Use the permission
buildsystem.create.private.<amount> to the maximum amount a player can create
+ Navigator permission changes
» Changes the permission needed to open the navigator to
buildsystem.navigator
» Adds a permission which is needed to receive the navigator item:
buildsystem.navigator.item
+ Fixed bugs with the modern navigator
» Item used to close navigator could be dropped
» Players were able to modify other player's navigator leaving them unusable
+ Minor optimisation
» Reset unload task after world switch (or quitting) to ensure correct unload time
+
Allow unloaded worlds to be renamed
» Previously, a world had to be imported in order for it to be renamed
+
Changes to world difficulty
» Allow a world's difficulty to be changed in the
/worlds edit menu
» Correctly retrieve the default world difficultly from the config
Worlds that were unloaded and then loaded again were using the standard
WorldCreator, not the custom generators they should be
+ Fix an error in legacy versions (< 1.13) where normal blocks could not be broken when slab breaking was enabled
+ Some listeners were registered twice
+
Instant Place Signs would not work with
Material#DARK_OAK_SIGN
+ Unloaded worlds were not being deleted correctly
+
/settings would throw a NPE when using Minecraft versions < 1.13
+
Added new config option: teleport-after-creation (default:
true)
» When enabled, the player is teleported a world after it is created instead of having to enter through the navigator
+
Bug fix
» Chunks in void worlds were not generated correctly after the server restarts
+
Add support for Minecraft 1.18.2
+
Bug fixes:
» Sending commands that use CommandSender#spigot throws NoSuchMethodError
» NullPointerException while opening GameRule inventory
» Navigator does not stay in inventory when „Keep Navigator“ is enabled
1. Add support for RGB messages
» Requires Minecraft Java 1.16+
» Supported patterns:
#RRGGBB,
&#RRGGBB,
{#RRGGBB},
&x&r&r&g&g&b&b
2. Implement "buildsystem:role" Context for LuckPerms
» Can have the following values:
creator,
builder and
guest
»
For example: You want players who are guests in a world (neither
creator nor
builder) to remain in the gamemode they currently are in.
» Now you can use the following context:
/lp user <user> permission set buildsystem.gamemode false buildsystem:role=guest
3. Add limits to the amount of worlds allowed to be created
» Limits do not apply to admin players with the permission
buildsystem.admin!
» The are two different types of limited introduced with this PR:
+
Global limits
Global limits are limits that are set in the
config.yml and apply to each player equally. If the amount of worlds exceeds the defined limit, then no more worlds can be created.
» If a limit is set to
-1, no limit is applied
+
Local limits
Local limits are limits that are applied via Permissions. There are two different permission wich set the maximum amount of worlds a player can create:
a)
buildsystem.create.public.<amount> restricts the amount of
public...
b)
buildsystem.create.private.<amount> restricts the amount of
private...
... worlds a player can create
4. Other changes
» The permission for creating
public worlds has been changed to
buildsystem.create.public
» The permission for creating
private worlds has been changed to
buildsystem.create.private
» The
/worlds delete GUI has been reworked
» Properly disable plugin when server version is unsupported
5. Full Changelog
+
Expand PlaceholderAPI expansion
» Add placeholders for player-settings
» Full list of (newly introduced) placeholders can be found here:
https://buildsystem.eintosti.com/placeholders#settings-placeholders
+
Bug fixes
» Worlds can no longer have a blank name when only consisting of special characters
» Stop items from trying to be placed with "Disable Interactions" enabled
» Stop WorldEdit items from being able to break blocks when they shouldn't
+
Minor changes & improvements
» Refactored lots of code
» Updated dependancies
+ Fix WorldEdit wand breaking blocks
+ Added support for Minecraft 1.18
+ Fixed some bugs with lower versions. If any still occur, please report them on
GitHub
Fix NoClassDefFoundError with
/worlds help
+ Previously, only WorldEdit commands were blocked. Now the usage of brushes etc should also be blocked
+ Bug fixes
+ Refactored code
+ Added ability to unimport worlds with
/worlds unimport (Perm:
buildsystem.unimport)
+ Added
/w as an alias for
/worlds
+ Fixed bug where settings were not toggling correctly
+ Added option to add worlds to a blacklist which ensures that they won't be unloaded (config.yml:
world.unload.blacklisted-worlds)
+ Added option to keep the "Navigator" on inventory clear (
/settings)
+ Added command to remove a world's custom spawn (
/worlds removeSpawn)
+ Added option to set a world's default difficulty to the config (
world.default.difficulty)
+ Improved the blockage of WorldEdit commands for non-builders
+ Improved
/worlds tab-complete
+ Improved
/worlds help command
+
/config can now be used from the console
+
Adds option to not give navigator on join ("settings.navigator.give-item-on-join")
** First of all, thanks to
@Ein_Jojo for coding the update
+
Custom world generators
» When creating a new world, a new icon can be found in the "World Create GUI":
Generators
» In order to create a world with a custom world generator, the generator plugin must be present in the "plugins" folder (and the plugins must be loaded!)
» Then after having selected "Generators" as a world type, enter the world name and afterwards the name of the World Generator and voilà!
+
Bug fixes
+
Update to 1.17(.1)
+
Replaced AnvilGUI with chat input
! If any bugs occur, please report them on
GitHub !
+
Bug fixes
» Commands should no longer clash with other plugins
» World names in the "navigator" (!) can now include symbols
» Skulls in the "private world navigator" should consume fewer resources & load faster
» You can now place plants in flower pots while "Place Plants" is activated
+
Added standard settings for newly created worlds
» e.g. physics, explosions, etc.
+
Bug fixes
» World names in /worlds can now have other characters that the world name itself
+
Support for Minecraft 1.16.4
+
Restructured config
» Will have to be deleted after updating!
+
Improved world import
» The world which is supposed to be imported will now be checked for invalid characters
» /worlds import can now be tab completed
» /worlds importAll now has a delay between each world (can be configured in the config, default 30s)
+
Improved NoClip
» The players previous gamemode is now saved
+
Added the ability to write with colors in the chat & on signs
» Chat: buildsystem.color.chat
» Signs: buildsystem.color.sign
+
1.16.2 support
+
Bug fix
» Fixed a bug where wool would lose it's colour when "Disable Block Interactions" was enabled
+
Minor improvements to /top
+
Bug fixes
» The navigator should now work as expected in 1.16+
» Fixed
"back_usage" message error (only for newly generated
messages.yml files)
+
1.16 support
+
New commands
»
/gm <0,1,2,3> (buildsystem.gamemode or buildsystem.gamemode.others when using /gm <gamemode> <player>)
»
/back (buildsystem.back)
»
/top (buildsystem.top)
»
/worlds importAll (buildsystem.import.all)
+
Sort worlds by project
+
Bypass permissions
»
buildsystem.bypass.archive (When you are in an archived world)
»
buildsystem.bypass.builders (When you are not a builder)
»
buildsystem.bypass.settings (When block breaking/placement is disabled)
+
New PAPI-Placeholder
»
%buildsystem_time%
» Returns the time in a world
+
Changed default prefix
+
Lots of bug fixes
» e.g. "Instant Place Signs" now works in 1.14+
» Many more
+
Bug fix
» The spawn (/spawn) can no longer be set in a world which is not imported
+
Small additions
» /spawn [set/remove] & /config <reload> can now be tab-completed
+
Added expansion for PlaceholderAPI
» BuildSystem now contains placeholders for PAPI
» A full list of placeholders can be found
*here*
+
Added %builders% placeholder for
messages.yml
» Can be used e.g. in the world navigator
» Not available for the scoreboard!
+
Bug fixes
+
More sounds
» Added sounds to the "World Editor" and the "Builders" GUI
+
Improvement to the "World Editor"
» After changing a world's permission or project via the "World Editor" you are now brought back to the GUI instead of the GUI just closing
» Improved messages (information about world status, permission & project) -
In order to see these changed messages.yml must be deleted (or at least all messages with "
"worldeditor_" in them)
+
New setting: Place plants
» When enabled, plants can be placed on all kinds on blocks
+
Added world editor
» Easily customise worlds with a GUI
» Can be opened with
/worlds edit <world> or by right-clicking a word in the world navigator
» World must be loaded to use the editor!
»
Features:
- Toggle block breaking/placement/physics
- Alter the time of day
- Toggle explosions
- Butcher all mobs in a world
- Manage builders (more to that later)
- Manage gamerules
- Toggle world visibility (if a world is shown in "Private Worlds")
- Toggle MobAIs
- Change a world's status/project/permission
+
Introducing builders
» When a world has builders enabled (private worlds by default, public worlds after being enabled), only these players can place and destroy blocks
» A list of a world's builder can be seen in the world editor or with
/worlds builders <world> (Permission: worlds.builders)
» Add a builder in the world editor or with
/worlds addBuilder <world> (Permission: worlds.addbuilder)
» Remove a builder in the world editor or with
/worlds removeBuilder <world> (Permission: worlds.removebuilder)
» Only the world creator can add or remove builders! (Set the creator with
/worlds setCreator <world>)
» Can be disabled in the config (block-world-edit-non-builder)
+
Added admin bypass permission
» Permission: buildsystem.admin
» Bypasses all restrictions such as not being the creator of a world, archived worlds, disabled block breaking/placement
+
New /worlds info placeholders
» Added
%builders_enabled%,
%block_breaking% &
%block_placement%
» Shows whether or not a certain world has the builder feature enabled and whether or not blocks can be placed/broken
+
Added "Nether" & "End" worlds
» To create such a world just click on the corresponding items when creating a world:
End stone (End) and
Netherrack (Nether)
+
Forgot to add the new commands to /buildsystem
» Added
/explosions and
/noai
+
Removed colour codes from anvils
» However the
messages.yml file must be deleted
+
Disable entity AIs
» Use
/noai [world] to disable entity AIs
» Permission:
buildsystem.noai
+
Disable explosions
» Use
/explosions [world] to disable explosions
» Permission:
buildsystem.explosions
+
Added support for 1.13-1.15
» BuildSystem now support all versions from 1.8-1.15
»
It is not wise to load worlds from newer versions (e.g. 1.15) in older versions (e.g. 1.8)!
+ Other bug fixes, changes and new features
» The list of everything that has changed is too long to put here, so you can find them out yourselves 
+
Added "Burning Furnace"
» Always lit furnace in
/blocks
Image:
+
Bug fix
» Fixed a bug concerning custom spawns
+ Bug fixes
» Pitch and Yaw are no longer swapped in custom spawns
» Other smaller bug fixes
+
More scoreboard placeholders
» Added
%permission% and
%project% as variables that can be used in the scoreboard
Image:
+
Other changes
»
/config reload now refreshes the scoreboard instantly
+
Custom Spawnpoints
» You can now set the spawnpoint of each world with
/worlds setSpawn
» Permission:
buildsystem.setspawn
+ Recoded scoreboard
» Now uses packets, shouldn't flicker anymore
» Removed bug where multiple scoreboard were shown at the same time
+
Added the option to disable vanish in archived worlds
» Can be toggled in the config
[Reload config with /config reload!]
+
/skull <ID> now gives you a skull with a custom ID
+
Lots of other changes, improvements and bug fixes
» For example: blocks and armor stands can no longer be interacted with if they are in an archived world
+
Hotfix
» Fixed a (yes another) scoreboard bug
+
Overview of all commands
» /buildsystem now gives you an overview of all commands
» Only the commands of which you have the permission for are shown
Image:
+
Other changes
» Fixed a bug with the scoreboard
» Added a few messages I had forgotten
+
Custom messages
» You now have the option to change all of the plugin messages
» Messages are found in the
messages.yml file
+
Other changes
» Improved the 'new navigator': is now more responsive
» Fixed spellings mistakes
» Fixed some bugs
» Refactored lots of code
+ Added Scoreboard
» Text can be altered in the config
» Can be enabled/disabled with /settings
Image:
+
Bug fix
» Fixed a bug where the player received the wrong block with
/blocks
+
Added "Powered Redstone Lamp" block
» "Redstone Lamp" that always is lit
» You can find the block in
/blocks
+
Introducing: Templates
» Templates are a new and easy way to create worlds
» Copy the template you want added into the game into the "
templates" folder
» Then when choosing to create a word you can choose between
-
Predefined Worlds
-
Templates
+
Other changes and improvements
» Worlds can no longer be named after server folders (plugins, logs, etc.)
» Refactored some code
+
Small bug fix
» Fixed a bug where the default join/quit messages weren't displayed correctly (without colour)
+
Refactored some code
+
Bug fix
» Fixed a bug when not having the "buildsystem.gui" permission
+
Added permission
» New permission:
buildsystem.gui
» Enabled by default
» Permission needed to open the "Worlds-GUI"
+
Small changes
» Fixed
NoClip
» Added
/worlds setStatus <world> to
/worlds help
+
Refactored code
+
More blocks
» Added two new blocks:
- "Nether Portal"
- "End Portal"
+
Bug fix
» Fixed a bug when renaming worlds
+
Improvements
» When renaming a world, it's previous name is already in the anvil
» Refactored some code
+
Improved /worlds "Help-Message"
»
Clickable messages: Auto suggests command
»
Hoverable messages: Shows the permission needed to run the command

+
Rename worlds
» Use
/worlds rename <world> to rename a world
» Permission:
buildsystem.rename
+
Other changes
» Skulls in the private worlds GUI now have the texture of their player
» Small changes to creating worlds, changing permissions & changing statuses
+
Custom colours
» In
/settings, each player now has the opportunity to change the glass colour in all of the GUIs
+
Bug fixed
» Fixed a incorrectly named sub-command (/worlds setProject)
+
Added more blocks to /blocks

+
Tab complete improvement
» Recoded the current tab completes
» Added tab complete to
/day and
/night
+
Improved physics command
» You can now use
/physics to toggle block physics in other worlds (/physics [world])
» You can now tab complete worlds
+
Improved world switching
» You can now only enter a world if you have it's permission
» But players can always join the default world or worlds with their permission set to "-"
+
Change to finished & archived worlds
» When entering worlds that have been set to have the
Archive status, the player will now not be able to build or break blocks in the world (was previously
Finished)
» Worlds that have been set to have the
Finished status, act like "normal" worlds again
+
Changes and improvements
» Improved the creation of worlds
» When a world is created, the standard time is now 6000 ticks
» Refactored code
- Changed the way the config are created
- Cleaned up some code
+
Bug fixes
» Fixed errors when interacting with worlds not registered by the plugin
» Fixed errors when creating worlds