Merge branch 'world-loader-anvil' into proto_1.12.2
This commit is contained in:
@@ -14,6 +14,7 @@ import mc.core.network.proto_1_12_2.State;
|
||||
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetOutputStream;
|
||||
|
||||
import static mc.core.network.proto_1_12_2.netty.NettyServer.ATTR_STATE;
|
||||
import static org.slf4j.helpers.MessageFormatter.format;
|
||||
|
||||
@Slf4j
|
||||
public class PacketEncoder extends MessageToByteEncoder<SCPacket> {
|
||||
@@ -29,8 +30,12 @@ public class PacketEncoder extends MessageToByteEncoder<SCPacket> {
|
||||
|
||||
log.debug("Send {}:{}", state, packet);
|
||||
|
||||
NetOutputStream netStream = new WrapperNetOutputStream(out);
|
||||
netStream.writeVarInt(id);
|
||||
packet.writeSelf(netStream);
|
||||
try {
|
||||
NetOutputStream netStream = new WrapperNetOutputStream(out);
|
||||
netStream.writeVarInt(id);
|
||||
packet.writeSelf(netStream);
|
||||
} catch (Throwable t) {
|
||||
log.error(format("Error encoding packet {}:{}", state, packet).getMessage(), t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,9 +28,14 @@ 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]);
|
||||
if (chunk == null) continue;
|
||||
|
||||
ChunkDataPacket packet = new ChunkDataPacket();
|
||||
packet.setX(xz[0]);
|
||||
@@ -37,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);
|
||||
|
||||
@@ -50,7 +62,9 @@ public class PlayerEventListener {
|
||||
packet.setX(xz[0]);
|
||||
packet.setZ(xz[1]);
|
||||
|
||||
event.getPlayer().getChannel().writeAndFlush(packet);
|
||||
channel.write(packet);
|
||||
}
|
||||
|
||||
channel.flush();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,9 +108,9 @@ public class LoginHandler extends AbstractStateHandler implements LoginStateHand
|
||||
playerData.setPing(0);
|
||||
playerData.setHasDisplayName(true);
|
||||
playerData.setDisplayName(Text.builder()
|
||||
.append(Text.of(TextColor.RED, TextStyle.BOLD, player.getName().substring(0,1)))
|
||||
.append(Text.of(TextColor.WHITE, player.getName().substring(1)))
|
||||
.build()
|
||||
.append(Text.of(TextColor.RED, TextStyle.BOLD, player.getName().substring(0,1)))
|
||||
.append(Text.of(TextColor.WHITE, player.getName().substring(1)))
|
||||
.build()
|
||||
);
|
||||
pkt5.getListPlayers().add(playerData);
|
||||
channel.writeAndFlush(pkt5);
|
||||
|
||||
Reference in New Issue
Block a user