Fix 1.12->1.13 entity tracking

Fixes #2526
This commit is contained in:
KennyTV 2021-06-10 22:10:22 +02:00
parent 204a81b0ea
commit 206368b777
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B

View File

@ -53,39 +53,38 @@ public class EntityPackets {
int entityId = wrapper.get(Type.VAR_INT, 0); int entityId = wrapper.get(Type.VAR_INT, 0);
byte type = wrapper.get(Type.BYTE, 0); byte type = wrapper.get(Type.BYTE, 0);
Entity1_13Types.EntityType entType = Entity1_13Types.getTypeFromId(type, true); Entity1_13Types.EntityType entType = Entity1_13Types.getTypeFromId(type, true);
if (entType == null) return;
if (entType != null) { // Register Type ID
if (entType.is(Entity1_13Types.EntityType.FALLING_BLOCK)) { wrapper.user().getEntityTracker(Protocol1_13To1_12_2.class).addEntity(entityId, entType);
int oldId = wrapper.get(Type.INT, 0);
int combined = (((oldId & 4095) << 4) | (oldId >> 12 & 15)); if (entType.is(Entity1_13Types.EntityType.FALLING_BLOCK)) {
wrapper.set(Type.INT, 0, WorldPackets.toNewId(combined)); int oldId = wrapper.get(Type.INT, 0);
int combined = (((oldId & 4095) << 4) | (oldId >> 12 & 15));
wrapper.set(Type.INT, 0, WorldPackets.toNewId(combined));
}
// Fix ItemFrame hitbox
if (entType.is(Entity1_13Types.EntityType.ITEM_FRAME)) {
int data = wrapper.get(Type.INT, 0);
switch (data) {
// South
case 0:
data = 3;
break;
// West
case 1:
data = 4;
break;
// North is the same
// East
case 3:
data = 5;
break;
} }
// Fix ItemFrame hitbox wrapper.set(Type.INT, 0, data);
if (entType.is(Entity1_13Types.EntityType.ITEM_FRAME)) {
int data = wrapper.get(Type.INT, 0);
switch (data) {
// South
case 0:
data = 3;
break;
// West
case 1:
data = 4;
break;
// North is the same
// East
case 3:
data = 5;
break;
}
wrapper.set(Type.INT, 0, data);
// Register Type ID
wrapper.user().getEntityTracker(Protocol1_13To1_12_2.class).addEntity(entityId, entType);
}
} }
} }
}); });