Fix CraftbukkitWrapper20

This commit is contained in:
2025-11-30 15:50:40 +01:00
parent af77dce7ee
commit db3f98209e
@@ -19,23 +19,25 @@
package de.steamwar.core;
import de.steamwar.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
import de.steamwar.Reflection;
import net.minecraft.world.level.World;
import net.minecraft.world.level.chunk.Chunk;
import net.minecraft.world.level.chunk.ChunkStatus;
import net.minecraft.world.level.lighting.LevelLightEngine;
import org.bukkit.entity.Player;
import java.util.BitSet;
public class CraftbukkitWrapper20 implements CraftbukkitWrapper.ICraftbukkitWrapper {
private static final Reflection.Method getHandle = Reflection.getMethod("org.bukkit.craftbukkit.CraftChunk", "getHandle", ChunkStatus.class);
private static final Reflection.Method getLightEngine = Reflection.getTypedMethod(World.class, null, LevelLightEngine.class);
private static final Reflection.Constructor clientBoundLevelChunkWithLightPacket = Reflection.getConstructor("net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket", Chunk.class, LevelLightEngine.class, BitSet.class, BitSet.class, boolean.class);
@Override
public void sendChunk(Player p, int chunkX, int chunkZ) {
Chunk chunk = (Chunk) getHandle.invoke(p.getWorld().getChunkAt(chunkX, chunkZ), ChunkStatus.n);
TinyProtocol.instance.sendPacket(p, new ClientboundLevelChunkWithLightPacket(chunk, (LevelLightEngine) getLightEngine.invoke(chunk.r), null, null, true));
TinyProtocol.instance.sendPacket(p, clientBoundLevelChunkWithLightPacket.invoke(chunk, (LevelLightEngine) getLightEngine.invoke(chunk.r), null, null, true));
}
}