небольшие оптимизации в загрузке/выгрузке чанков
This commit is contained in:
@@ -5,6 +5,7 @@ import mc.core.eventbus.Subscriber;
|
||||
import mc.core.eventbus.events.SC_ChunkLoadEvent;
|
||||
import mc.core.eventbus.events.SC_ChunkUnloadEvent;
|
||||
import mc.core.eventbus.events.SC_PlayerMoveEvent;
|
||||
import mc.core.network.NetChannel;
|
||||
import mc.core.network.proto_1_12_2.TeleportManager;
|
||||
import mc.core.network.proto_1_12_2.packets.ChunkDataPacket;
|
||||
import mc.core.network.proto_1_12_2.packets.PlayerPositionAndLookPacket;
|
||||
@@ -27,6 +28,10 @@ public class PlayerEventListener {
|
||||
|
||||
@Subscriber
|
||||
public void playerChunkLoadHandler(SC_ChunkLoadEvent event) {
|
||||
if (event.getNeedLoadChunks().size() == 0) return;
|
||||
|
||||
final NetChannel channel = event.getPlayer().getChannel();
|
||||
|
||||
for(Integer compressXZ : event.getNeedLoadChunks()) {
|
||||
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
|
||||
Chunk chunk = event.getPlayer().getWorld().getChunk(xz[0], xz[1]);
|
||||
@@ -38,12 +43,18 @@ public class PlayerEventListener {
|
||||
packet.setInitChunk(true);
|
||||
packet.setChunk(chunk);
|
||||
|
||||
event.getPlayer().getChannel().writeAndFlush(packet);
|
||||
channel.write(packet);
|
||||
}
|
||||
|
||||
channel.flush();
|
||||
}
|
||||
|
||||
@Subscriber
|
||||
public void playerChunkUnloadHandler(SC_ChunkUnloadEvent event) {
|
||||
if (event.getNeedUnloadChunks().size() == 0) return;
|
||||
|
||||
final NetChannel channel = event.getPlayer().getChannel();
|
||||
|
||||
for(Integer compressXZ : event.getNeedUnloadChunks()) {
|
||||
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
|
||||
|
||||
@@ -51,7 +62,9 @@ public class PlayerEventListener {
|
||||
packet.setX(xz[0]);
|
||||
packet.setZ(xz[1]);
|
||||
|
||||
event.getPlayer().getChannel().writeAndFlush(packet);
|
||||
channel.write(packet);
|
||||
}
|
||||
|
||||
channel.flush();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user