Introduce 26.2 support#3566
Conversation
There was a problem hiding this comment.
Pull request overview
Introduces Minecraft 26.2 support across WorldEdit core registries and adds a new Bukkit adapter module to handle NMS/Paper internals for that version.
Changes:
- Extend core registries (block/item/entity/biome types + categories) with new 26.2 identifiers.
- Add
DATA_VERSION_MC_26_2constant and register 26.2 as a supported version in Gradle settings/build. - Add a new
worldedit-bukkit:adapters:adapter-26.2module with Paperweight/FAWE integration classes.
Reviewed changes
Copilot reviewed 35 out of 37 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java | Adds 26.2 item constants; adds an initialization sanity-check. |
| worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java | Adds new item tag categories for 26.2. |
| worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java | Adds SULFUR_CUBE entity type. |
| worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java | Adds 26.2 block constants. |
| worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java | Adds/updates block tag categories for 26.2. |
| worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java | Adds SULFUR_CAVES biome type. |
| worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java | Adds DATA_VERSION_MC_26_2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/StaticRefraction.java | Adds 26.2 reflection name mappings. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightWorldNativeAccess.java | Implements WorldNativeAccess for 26.2 (non-FAWE path). |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightServerLevelDelegateProxy.java | Adds proxy/delegate layer for feature/structure generation interactions. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightLoggingProblemReporter.java | Adds a ProblemReporter implementation that logs collected problems. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightFakePlayer.java | Adds fake player implementation for server-side interactions. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightBlockMaterial.java | Adds 26.2 block material bridge for Bukkit/NMS. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/ComponentConverter.java | Adds component JSON serialization/deserialization helpers. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/regen/PaperweightRegen.java | Adds regen implementation for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightStarlightRelighterFactory.java | Hooks relighter factory for Paper/Starlight. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightStarlightRelighter.java | Adds Starlight relighting implementation for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightPostProcessor.java | Adds post-processing (fluid ticking) integration for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightPlatformAdapter.java | Adds 26.2 NMS adapter utilities for FAWE chunk/packet/entity operations. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightPlacementStateProcessor.java | Adds placement-state processor for correct block placement logic. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightMapChunkUtil.java | Adds chunk packet reflection utility (currently incomplete). |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightLevelProxy.java | Adds unsafe-allocated ServerLevel proxy for placement processing. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightGetBlocks_Copy.java | Adds an IChunkGet copy implementation for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightFaweWorldNativeAccess.java | Adds FAWE WorldNativeAccess implementation for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightFaweMutableBlockPlaceContext.java | Adds mutable placement context used during placement processing. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightFaweAdapter.java | Adds main FAWE adapter implementation for 26.2. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/PaperweightChunkAccessProxy.java | Adds a ChunkAccess proxy used during feature generation. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/LinValueOutput.java | Adds LinBus-backed ValueOutput implementation. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/LinValueInput.java | Adds LinBus-backed ValueInput implementation. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/LinOps.java | Adds DynamicOps for LinBus tags. |
| worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v26_2/FaweBlockStateListPopulator.java | Adds populator wrapper for capturing blocks/entities during gen. |
| worldedit-bukkit/adapters/adapter-26.2/build.gradle.kts | Adds new adapter module build config and Paper dev bundle dependency. |
| settings.gradle.kts | Registers the adapter-26.2 module. |
| build.gradle.kts | Adds 26.2 to the supported versions list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| cachedChanges.add(new CachedChange(levelChunk, blockPos, blockState)); | ||
| cachedChunksToSend.add(new IntPair(levelChunk.locX, levelChunk.locZ)); | ||
| boolean nextTick = lastTick.get() > currentTick; | ||
| if (nextTick || cachedChanges.size() >= 1024) { | ||
| if (nextTick) { | ||
| lastTick.set(currentTick); | ||
| } | ||
| flushAsync(nextTick); | ||
| } |
|
For some reason, the Jenkins page already lists support for |
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
| // Since FAWE is.. Async we need to do it on the main thread (wooooo.. :( ) | ||
| cachedChanges.add(new CachedChange(levelChunk, blockPos, blockState)); | ||
| cachedChunksToSend.add(new IntPair(levelChunk.locX, levelChunk.locZ)); | ||
| boolean nextTick = lastTick.get() > currentTick; | ||
| if (nextTick || cachedChanges.size() >= 1024) { | ||
| if (nextTick) { | ||
| lastTick.set(currentTick); |
| @Override | ||
| public ClientboundLevelChunkWithLightPacket createPacket() { | ||
| // TODO ??? return new ClientboundLevelChunkPacket(); | ||
| throw new UnsupportedOperationException(); | ||
| } |
| if (map != null && wasAccessibleSinceLastSave(map)) { | ||
| boolean flag = false; | ||
| // PlayerChunk.d players = map.players; | ||
| Stream<ServerPlayer> stream = /*players.a(new ChunkCoordIntPair(packet.getChunkX(), packet.getChunkZ()), flag) | ||
| */ Stream.empty(); | ||
|
|
|
Thoughts on this #3566 (comment) ? |
|
I can't seem to build this locally: |
Looks like a problem with Paper (as it provides both 2.2 and 2.6 through leafpile). We can probably lift the restriction for now or somehow exclude 2.6? I'm not very familiar with that. |
That's not 26.2 specific. |
That's correct, should I open a separate issue or something? |
|
Any objections to merging this PR and letting people test it on the default branch? |
Overview
Description
I did some basic testing, but more testing is encouraged :)
Submitter Checklist
@since TODO.