Merge pull request #1284 from creeper123123321/master

Force resend center chunk on respawn
This commit is contained in:
Myles 2019-04-24 19:49:18 +01:00 committed by GitHub
commit 2bd266cd69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -209,7 +209,9 @@ public class WorldPackets {
EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
int diffX = Math.abs(entityTracker.getChunkCenterX() - chunk.getX());
int diffZ = Math.abs(entityTracker.getChunkCenterZ() - chunk.getZ());
if (diffX >= SERVERSIDE_VIEW_DISTANCE || diffZ >= SERVERSIDE_VIEW_DISTANCE) {
if (entityTracker.isForceSendCenterChunk()
|| diffX >= SERVERSIDE_VIEW_DISTANCE
|| diffZ >= SERVERSIDE_VIEW_DISTANCE) {
PacketWrapper fakePosLook = wrapper.create(0x40); // Set center chunk
fakePosLook.write(Type.VAR_INT, chunk.getX());
fakePosLook.write(Type.VAR_INT, chunk.getZ());
@ -350,8 +352,8 @@ public class WorldPackets {
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
entityTracker.setChunkCenterX(0);
entityTracker.setChunkCenterZ(0);
// The client may reset the center chunk if dimension is changed
entityTracker.setForceSendCenterChunk(true);
}
});
handler(new PacketHandler() {

View File

@ -9,7 +9,6 @@ import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.entities.Entity1_14Types;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
public class EntityTracker extends StoredObject implements ExternalJoinGameListener {
@ -20,6 +19,9 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe
private int latestTradeWindowId;
@Getter
@Setter
private boolean forceSendCenterChunk = true;
@Getter
@Setter
private int chunkCenterX, chunkCenterZ;
public EntityTracker(UserConnection user) {