⚡️Performance: Rework World Generation - #201
Open
Zoriot wants to merge 67 commits into
Open
Conversation
…a in PlotWorldGenerator
- measure old generator performance - add new AbstractPlotLoader, DefaultPlotLoader and PlotHandler
…ion-rework # Conflicts: # src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/DefaultPlotGenerator.java
…into update/world-generation-rework
…ot Worlds to handle world specific abandon logic
…a in PlotWorldGenerator
- measure old generator performance - add new AbstractPlotLoader, DefaultPlotLoader and PlotHandler
…ot Worlds to handle world specific abandon logic
…into update/world-generation-rework # Conflicts: # src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/world/PlotWorldGenerator.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/world/OnePlotWorld.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/world/PlotWorld.java
move savePlotAsSchematic to PlotHandler. create methods for both assigning and generating in PlotHandler. remove all old PlotGenerator files and replace every usage with the new PlotLoaders
…into update/world-generation-rework
…ion-rework # Conflicts: # src/main/java/com/alpsbte/plotsystem/commands/plot/CMD_Plot_Abandon.java # src/main/java/com/alpsbte/plotsystem/core/menus/companion/CityProjectMenu.java # src/main/java/com/alpsbte/plotsystem/core/menus/review/ReviewPlotTogglesMenu.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/DefaultPlotGenerator.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/world/CityPlotWorld.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/world/OnePlotWorld.java
Fix Issue #186: Orphan Plots
# Conflicts: # gradle/libs.versions.toml # src/main/java/com/alpsbte/plotsystem/core/system/plot/generator/loader/TutorialPlotLoader.java # src/main/java/com/alpsbte/plotsystem/core/system/plot/utils/PlotUtils.java # src/main/java/com/alpsbte/plotsystem/core/system/tutorial/AbstractPlotTutorial.java
This currently doesn't really work. When you have the old skeleton world it may work but as soon as you have the new one there are some exceptions. Needs to be polished before released
This removes handling for <=1.21.11 Worlds, the old changes made that the migration was started from paper. We always just support the latest version.
…rate to Java 25 - Upgraded multiple library dependencies for compatibility. - Updated Java version to 25 in build scripts and workflows. - Modified Gradle configurations to exclude unwanted transitive dependencies. - Adjusted workflows to use actions/checkout@v7 and relevant Java configurations.
Switch to 26.1
…ntries Refactor plot link message generation to rely on AlpsLib `MapLinks` and iterate providers via `getAllLinks()` instead of hardcoded provider slots. - Replace fixed Google/OSM/Apple link handling with dynamic provider iteration - Build chat link components from resolved `MapLink` entries - Keep shortlink behavior for each generated provider URL - Add plugin-side config mapping for `map-links.links` into `MapLinksConfig` and `MapLinkEntryConfig` so providers can be disabled/extended without plugin code changes - Add `ConfigPaths.MAP_LINKS` - Document optional `map-links` config section in `config.yml` This keeps provider definitions in AlpsLib defaults while allowing server-side overrides (enable/disable/add providers) through plugin config. Implements #177.
feat(plot-utils): ✨ use AlpsLib MapLinks with configurable provider entries
Persist plot state consistently, prevent duplicate generation, and move heavy WorldEdit work onto FAWE's async executor.
- Now we don't construct a Air Mask in several places anymore. - We just use ignore air This fixes a issue where we adapt a cim world before it is actually loaded, that resulted into a fawe exception, which resulted in the plot not beeing pasted.
We switched to only the per repo license.
Teleporting called loadWorld(), which regenerated missing plot worlds and blocked on FAWE tasks that themselves need the main thread, freezing the server until the watchdog fired. World regeneration now lives in prepareWorld(), which callers invoke asynchronously before teleporting, and blocking waits fail fast when they run on the main thread.
This reverts commit 339d69b We paste it on the original position anyway so it's fine to fallback to 0 there
Zoriot
marked this pull request as ready for review
September 8, 2026 17:25
Prevent failed rebuilds of existing one-plot worlds from abandoning their plots, while retaining rollback behavior for newly assigned plots. Resolve existing plot worlds from persisted type and legacy compatibility instead of the new-plot CIM configuration.
Reduce schematic-save complexity, replace raw exception wrappers with specific completion exceptions, and document the tutorial loader lifecycle hook. Migrate tutorial menus, holograms, and NPC text to Adventure components and NamedTextColor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR reworks plot-world generation and loading to make it asynchronous and lifecycle-safe, while updating plot recovery, world-height handling, tutorial flows, and translation automation.
What changed
Behavior and compatibility notes
disable-city-inspiration-modesetting now affects new plot assignment only.