Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-26 00:00:28 +01:00
fix entity metadata in spawn packet being ignored
Dieser Commit ist enthalten in:
Ursprung
68ac978d45
Commit
84624a4884
@ -3,6 +3,7 @@ package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets;
|
|||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_15Types;
|
import us.myles.ViaVersion.api.entities.Entity1_15Types;
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
||||||
import us.myles.ViaVersion.api.protocol.Protocol;
|
import us.myles.ViaVersion.api.protocol.Protocol;
|
||||||
import us.myles.ViaVersion.api.remapper.PacketHandler;
|
import us.myles.ViaVersion.api.remapper.PacketHandler;
|
||||||
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
||||||
@ -13,6 +14,7 @@ import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.MetadataRewriter;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;
|
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker;
|
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
@ -72,7 +74,6 @@ public class EntityPackets {
|
|||||||
map(Type.SHORT); // 9 - Velocity X
|
map(Type.SHORT); // 9 - Velocity X
|
||||||
map(Type.SHORT); // 10 - Velocity Y
|
map(Type.SHORT); // 10 - Velocity Y
|
||||||
map(Type.SHORT); // 11 - Velocity Z
|
map(Type.SHORT); // 11 - Velocity Z
|
||||||
map(Types1_14.METADATA_LIST, Type.NOTHING); // removed - probably sent in an update packet?
|
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -82,6 +83,13 @@ public class EntityPackets {
|
|||||||
Entity1_15Types.EntityType entityType = Entity1_15Types.getTypeFromId(getNewEntityId(typeId));
|
Entity1_15Types.EntityType entityType = Entity1_15Types.getTypeFromId(getNewEntityId(typeId));
|
||||||
wrapper.user().get(EntityTracker.class).addEntity(entityId, entityType);
|
wrapper.user().get(EntityTracker.class).addEntity(entityId, entityType);
|
||||||
wrapper.set(Type.VAR_INT, 1, entityType.getId());
|
wrapper.set(Type.VAR_INT, 1, entityType.getId());
|
||||||
|
|
||||||
|
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
|
||||||
|
MetadataRewriter.handleMetadata(entityId, entityType, metadata, wrapper.user());
|
||||||
|
PacketWrapper metadataUpdate = wrapper.create(0x44);
|
||||||
|
metadataUpdate.write(Type.VAR_INT, entityId);
|
||||||
|
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
|
||||||
|
metadataUpdate.send(Protocol1_15To1_14_4.class);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -98,15 +106,20 @@ public class EntityPackets {
|
|||||||
map(Type.DOUBLE); // 4 - Z
|
map(Type.DOUBLE); // 4 - Z
|
||||||
map(Type.BYTE); // 5 - Yaw
|
map(Type.BYTE); // 5 - Yaw
|
||||||
map(Type.BYTE); // 6 - Pitch
|
map(Type.BYTE); // 6 - Pitch
|
||||||
map(Types1_14.METADATA_LIST, Type.NOTHING); // removed - probably sent in an update packet?
|
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) throws Exception {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
|
|
||||||
Entity1_15Types.EntityType entityType = Entity1_15Types.EntityType.PLAYER;
|
Entity1_15Types.EntityType entityType = Entity1_15Types.EntityType.PLAYER;
|
||||||
wrapper.user().get(EntityTracker.class).addEntity(entityId, entityType);
|
wrapper.user().get(EntityTracker.class).addEntity(entityId, entityType);
|
||||||
|
|
||||||
|
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
|
||||||
|
MetadataRewriter.handleMetadata(entityId, entityType, metadata, wrapper.user());
|
||||||
|
PacketWrapper metadataUpdate = wrapper.create(0x44);
|
||||||
|
metadataUpdate.write(Type.VAR_INT, entityId);
|
||||||
|
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
|
||||||
|
metadataUpdate.send(Protocol1_15To1_14_4.class);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren