forked from SteamWar/SteamWar
@@ -19,25 +19,23 @@
|
||||
|
||||
package de.steamwar.core;
|
||||
|
||||
import com.comphenix.tinyprotocol.TinyProtocol;
|
||||
import de.steamwar.Reflection;
|
||||
import com.comphenix.tinyprotocol.TinyProtocol;
|
||||
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
|
||||
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, clientBoundLevelChunkWithLightPacket.invoke(chunk, (LevelLightEngine) getLightEngine.invoke(chunk.r), null, null, true));
|
||||
TinyProtocol.instance.sendPacket(p, new ClientboundLevelChunkWithLightPacket(chunk, (LevelLightEngine) getLightEngine.invoke(chunk.r), null, null, true));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user