WorldEditDisplay 2.2.0 - Selection Sharing, Multi-Platform Support & Performance Improvements
WorldEditDisplay 2.2.0 Selection Sharing, Multi-Platform Support & Performance Improvements
Summary
Major release introducing a Selection Sharing System that lets players share their WorldEdit selections with others in real-time, expanded multi-platform support (Paper, Folia, Spigot), a new RegionRenderer abstract base class for a more extensible rendering architecture, and numerous performance improvements with render caching and async operations.
New Features
Selection Sharing System
- Added /wedisplay share command to invite other players to view your selection
- Selections shared in real-time with persistent storage across sessions
- Each shared selection is assigned a unique color generated automatically
- Unused shared colors are released when sharing ends to optimize resources
- Permission-based access control: worldeditdisplay.share required to use share commands
- Share manager configuration is reloadable via /wedisplayreload
RegionRenderer Abstract Base Class
- Introduced RegionRenderer abstract base class for a unified and extensible rendering architecture
- Simplifies adding new region types and customizing render behavior
Multi-Platform Support
- Added official support for Folia (region-threaded scheduling)
- Added official support for Spigot (in addition to Paper)
- Task scheduling is now platform-aware and routes to the correct scheduler automatically
Region Bounding Box & Distance Utilities
- Added bounding box calculation methods to region objects
- Added distance calculation methods between regions and players for range-based optimizations
Improvements
Rendering Performance
- Introduced renderer-level caching to reduce redundant computation
- Name cache logic for shared renders is now correctly invalidated to avoid stale reads
- Clearing a sharer's render now properly releases associated resources
- Render brightness and label position adjustments for improved visual quality
Async Settings I/O
- Player settings are now saved asynchronously to prevent main-thread blocking
- Config saves are deferred to a scheduled task to avoid repeated disk writes during rapid state changes
Thread Safety
- Share request timeout is now stored in a thread-safe mutable field
- Player multi-region map is now returned as an unmodifiable view to protect data integrity
Bug Fixes
- fix(render): Corrected shared render name-cache invalidation logic to prevent unnecessary re-reads
- fix(player): Returned unmodifiable multi-region map to protect internal data from external mutation
- fix(share): Made share request timeout mutable for proper thread-safe handling
- fix(render): Adjusted brightness calculation and label position for better display results
Technical & CI Updates
- Updated GitHub Actions workflow file versions for improved stability
- Added adventure-api exclusion filter to the Spigot Maven profile to prevent class conflicts
- Removed SHARE-DESIGN.md design document (merged into implementation)
System Requirements
Component
Requirement
Minecraft 1.20 ~ 1.21.x
Java 21+
Platform Paper / Folia / Spigot
PacketEvents 2.11.1+
WorldEdit Latest stable / FAWE
Configuration Notes
- No breaking configuration changes from 2.1.x.
- A new share section will be generated in config.yml on first launch.
- Run /wedisplayreload after upgrading to apply any new defaults.
Support
For issues, feature requests, or questions, please open an issue on our
GitHub repository.
Full Changelog:
2.1.2...2.2.0