- Begin by implementing forceSync to the queue system as we know the chunk will be accessible to edits in some cases (i.e. population).
- Also implement custom SideEffectSets to override any decided by the default chunk consumer, as we do NOT want to update neighbours in population (this caused infinite generation to be required causing the lag and server death). We also do not want to enqueue the QueueCoordinator in AugmentedUtils as this would write to the world and update neighbours before we might want to (plus it's just used to restrict and offset the blocks being set)
- Then implement disabling any biomes from being saved/set to the queue to prevent augmented worlds having their biomes overridden in roads
- Consequently fix ScopedQueueCoordinator, preventing the y value of blocks being set from needlessly being changed, fixing road heights in augmented worlds
- Finally we do not need a method with chunkObject in the signature in AugmentedUtils as this is no longer used by the method
* Fix plot analysis
- Stop using deprecated ChunkQueueCoordinator and create a new purpose-built coordinator
- Generation is chunk-by-chunk thus the old blocks cache needs to be filled accordingly
- Remove the **four** System#gc calls
- Fixes#3464
- Fix really weird dumb... maths? in ExpiryTask
- Fixes#3600
* Add since annotation
* Address comments and maxY should be inclusive
* Annotate new queue as internal use only
* Deprecations and niceties
- Deprecate ScopedQueueCoordinator as it is poorly named
- Deprecate ChunkQueueCoordinator for complete removal as it is poorly designed (though still used)
* Add since tags
* refactor: list command shows owner better
added check for:
- unknown owners (UUID not cached/invalid)
- server plots
- plots owner by everyone
* fix: show correct color in list command if plot is owned by everyone
* refactor: improved List command for server plots
(cherry picked from commit fed700f0d8)
* refactor: removed duplicate code
* refactor: renamed placeholders to reflect their use
Co-authored-by: Alexander Brandes <mc.cache@web.de>
* Begin to implement extended world heights:
- Implemented in Bukkit module (and where required in Core module)
* Implement extended world heights into core module
* Add min gen height to setup,
* Default gen/build heights based on minecraft version
* Few fixes
* Fix up queues
* Address comments
* Make road schematic stuff slightly more efficient by sharing queues
* Minor fixes, don't overlay error many times for the same y
* Fix incorrect schematic paste height, undo changes to HybridUtils
* Overhall regenallroads method to make it work, make sure BukkitChunkCoordinator can/will finish
* Process chunks in order when regenerating all roads
* Address comments
* Address comments
* Ground level//bedrock is at min gen height
- Add comment on == rather than <= being used
- It's because it's only checking for the bedrock layer being broken if that's disabled
* Fix offset for min build height in SchematicHandler
* Better javadoc
Co-authored-by: Hannes Greule <SirYwell@users.noreply.github.com>
* Address inclusivity issues for max world height
* Javadocs/comments/deprecation
* Use world min/max heights if present in QueueCoordinator
* Address some deprecations for regions and biome setting
* Add a count for chunks we're currently trying to load to not skip chunks at the end of a queue's edit
* Use minGenHeight + 1 rather than build height in AugmentedUtils
* Create utility method for layer index in GenChunk
* Correct height in HybridUtils, also use minGenHeight + 1
* Don't magically split to 128 height in regeneration
* Add utility methods for world height in QueueCoordinator
* Clean up ClassicPlotManager road creation/removal
* Start generation at min gen height if bedrock is disabled
* min gen height is set in PlotArea
* Add note on schem y normalisation
* Improve plot getVolume method readability
* Don't overly extend height when regenerating road region
* y index utility method in ChunknQueueCoordinator
* Layer index utility method in LocalChunk
* Use version min/max heights if world not present in QueueCoordinator
* Fix min -> max
* Don't allow players to modify outside build height when using plot set / schematics.
- Also fixes schematic height issues
* Remove debug
* Address comments
* Switch loadingChunks to AtomicInteger to be safe (in case of multi-threaded)
* Fix "security" issue that was already present
* Ensure sign isn't physicsed
Co-authored-by: Hannes Greule <SirYwell@users.noreply.github.com>
* feat: only show categories with access in help-menu
* chore: cleanup imports
* feat: tab complete should respect category permissions as well
* chore: cleanup imports again
* chore: rename ambiguous method name and update access modifier
* fix: NPE on unavailable music discs
* chore: documentation for InventoryUtil changes
* fix: no need for additional decrement
* chore: address requested changes
* fix: prevent binary mismatch
Co-authored-by: Alex <mc.cache@web.de>
* feat: unknown owner(s) for plot expiry
* Sort plugins on `/plot debugpaste` alphabetically (#3447)
* feat: Sort plugins on debugpaste alphabetically
* Put (F[A])WE at the top
* feat: Add 1.18's music disc additions to `/plot music` (#3446)
* refactor: Prepare removal of our maven repository (#3451)
* Allow restoration of road schematic height calculation behaviour from pre 6.1.4 (#3444)
* refactor: Update SquirrelID GAV
* build: Release 6.3.0
* build: Back to snapshot for development
* fix: fallback method in BukkitQueueCoordinator uses world coordinates
* mark since tags as TODO
* fix: get the lowest diff for plot age
* fix: initialize with high value and better readability
* fix: no need for multiple age checks
* fix: address exceptions in plot analysis
* chore: address requested changes
* chore: Fix introduced violations
Co-authored-by: Alex <mc.cache@web.de>
Co-authored-by: Jordan <dordsor21@gmail.com>
* Fix: getName should return something
* Fix caption typo
* Deprecate old getName methods + add new methods for username retrieval
* Remove wildcard import
* Use @since TODO instead of hard coded version
* chore: Update `@since` tags to TODO
Co-authored-by: NotMyFault <mc.cache@web.de>
* feat: display explosion particles even after event cancel
And add settings option to change behavior
* refactor
* refactor: Change settings comment to clearer connect to it's purpose.
* Fix: use ownersInclude instead of ownedBy where required
- Also account for multiple plot owners in Cluster player removal
- Add whereBasePlot to avoid merged plots listing multiple times if required
- Only use ownersInclude in visit if enabled in config
- Fixes#3143
* Remove static import
* Refactor: Replace Rörledning with Cloud-Services
Cloud-Services is actually maintained, as opposed to Rörledning. Furthermore, Rörledning is available through Maven Central, whereas rörledning isn't.
This is a semi-breaking change, but because we relocate, it might be fine? Either way, this is a necessary change.
* build: Provide jsr at runtime
* Merge branch 'v6' into refactor/v6/cloud-services
Co-authored-by: NotMyFault <mc.cache@web.de>
* fix: Standardize projectile permissions
- Let all projectiles (not just splash potions) have a permissions check on throwing
- Fixes snowballs, eggs, etc. being able to be thrown when not added to the plot, etc.
- Fixes#2986 (splash potions only able being to be thrown when also added to the plot)
- Remove the specialized code for egg hatching as now eggs are cancelled entirely
- Remove the non-standard plots.projectile.unowned and plots.projectile.other permissions in favor of the standard admin ones
* docs: Add back deprecated projectile permissions
* docs: Update Core/src/main/java/com/plotsquared/core/permissions/Permission.java
Co-authored-by: Alex <mc.cache@web.de>
Co-authored-by: Alex <mc.cache@web.de>
* Better deciding of heights to use for generation and schematics
- If bedrock is disabled, we should still be filling the space with something
- Use minBuildHeight instead of hardcoding "1" for schematics (it is still 1 by default) to ensure all-encompassing schematics
- Schematic generation/handling for roads etc. should be accounting for all of wall, road, and plot heights for deciding point of origin
- Fixes#3269
- Starts to address #3175
* Also do for HybridPlotManager clear
* Add border bypass permission
- Fixes#3297
* Add permission to plots.admin permpack
* Implement messages on leaving/entering border area
* Rename to border.denied and make border msg red
* change too le/ge as tthey are likely to be equal to border when hit.
- Since we check for being across the border beforehand, it will hopefully not be spammed too much?
- If it's spammed then either we use meta to set if a player's left the border, or we just remove the come-back-in altogether because it's a little looong
* Respect non-visible players in tab completion (Closes#3263)
* Deprecate old Tab-Complete methods instead of hard-replacing them
* wtf git
* Mark for removal, useless new-lines
* Pass ConsolePlayer.getConsole() instead of Nullable param