1
0
mirror of https://github.com/GeyserMC/Geyser.git synced 2025-12-19 14:59:27 +00:00

Bump MCPL for data palette fixes (#5818)

* Update chunk loading for MCPL changes

* Adjust for renames in MCPL

* Bump MCPL

* Rename this just because I can
This commit is contained in:
Eclipse
2025-09-15 21:01:23 +00:00
committed by GitHub
parent 6690e756f4
commit 9f8bc9db99
6 changed files with 21 additions and 10 deletions

View File

@@ -72,9 +72,9 @@ public enum Direction {
return axis == Axis.X || axis == Axis.Z;
}
public static @NonNull Direction fromMCPL(org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction pistonValue) {
public static @NonNull Direction fromMCPL(org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction mcpl) {
for (Direction direction : VALUES) {
if (direction.mcpl == pistonValue) {
if (direction.mcpl == mcpl) {
return direction;
}
}

View File

@@ -31,6 +31,7 @@ import lombok.Setter;
import org.geysermc.geyser.GeyserImpl;
import org.geysermc.geyser.level.block.type.Block;
import org.geysermc.geyser.level.chunk.GeyserChunk;
import org.geysermc.geyser.registry.BlockRegistries;
import org.geysermc.geyser.session.GeyserSession;
import org.geysermc.geyser.util.MathUtils;
import org.geysermc.mcprotocollib.protocol.data.game.chunk.DataPalette;
@@ -89,9 +90,7 @@ public class ChunkCache {
previouslyEmpty = true;
if (block != Block.JAVA_AIR_ID) {
// A previously empty chunk, which is no longer empty as a block has been added to it
palette = DataPalette.createForChunk();
// Fixes the chunk assuming that all blocks is the `block` variable we are updating. /shrug
palette.getPalette().stateToId(Block.JAVA_AIR_ID);
palette = DataPalette.createForBlockState(Block.JAVA_AIR_ID, BlockRegistries.BLOCK_STATES.get().size());
chunk.sections()[(y - minY) >> 4] = palette;
} else {
// Nothing to update

View File

@@ -80,4 +80,9 @@ public interface JavaRegistry<T> {
* All values of this registry, as a list.
*/
List<T> values();
/**
* The amount of values registered in this registry.
*/
int size();
}

View File

@@ -108,6 +108,11 @@ public class SimpleJavaRegistry<T> implements JavaRegistry<T> {
return this.values.stream().map(RegistryEntryData::data).toList();
}
@Override
public int size() {
return values.size();
}
@Override
public String toString() {
return this.values.toString();

View File

@@ -53,6 +53,7 @@ import org.geysermc.geyser.level.chunk.bitarray.BitArrayVersion;
import org.geysermc.geyser.level.chunk.bitarray.SingletonBitArray;
import org.geysermc.geyser.registry.BlockRegistries;
import org.geysermc.geyser.session.GeyserSession;
import org.geysermc.geyser.session.cache.registry.JavaRegistries;
import org.geysermc.geyser.translator.level.BiomeTranslator;
import org.geysermc.geyser.translator.level.block.entity.BedrockChunkWantsBlockEntityTag;
import org.geysermc.geyser.translator.level.block.entity.BlockEntityTranslator;
@@ -120,8 +121,9 @@ public class JavaLevelChunkWithLightTranslator extends PacketTranslator<Clientbo
ByteBuf in = Unpooled.wrappedBuffer(packet.getChunkData());
boolean extendedCollisionNextSection = false;
for (int sectionY = 0; sectionY < chunkSize; sectionY++) {
ChunkSection javaSection = MinecraftTypes.readChunkSection(in);
javaChunks[sectionY] = javaSection.getChunkData();
ChunkSection javaSection = MinecraftTypes.readChunkSection(in, BlockRegistries.BLOCK_STATES.get().size(),
session.getRegistryCache().registry(JavaRegistries.BIOME).size());
javaChunks[sectionY] = javaSection.getBlockData();
javaBiomes[sectionY] = javaSection.getBiomeData();
boolean extendedCollision = extendedCollisionNextSection;
boolean thisExtendedCollisionNextSection = false;
@@ -163,8 +165,8 @@ public class JavaLevelChunkWithLightTranslator extends PacketTranslator<Clientbo
continue;
}
Palette javaPalette = javaSection.getChunkData().getPalette();
BitStorage javaData = javaSection.getChunkData().getStorage();
Palette javaPalette = javaSection.getBlockData().getPalette();
BitStorage javaData = javaSection.getBlockData().getStorage();
if (javaPalette instanceof GlobalPalette) {
// As this is the global palette, simply iterate through the whole chunk section once

View File

@@ -14,7 +14,7 @@ protocol-common = "3.0.0.Beta7-20250812.232642-18"
protocol-codec = "3.0.0.Beta7-20250812.232642-18"
raknet = "1.0.0.CR3-20250811.214335-20"
minecraftauth = "4.1.1"
mcprotocollib = "1.21.7-20250911.173407-5"
mcprotocollib = "1.21.7-20250915.111046-6"
adventure = "4.24.0"
adventure-platform = "4.3.0"
junit = "5.9.2"