Skip to content

Commit aff88a6

Browse files
Fix respawn screen appearing twice in 1.8->1.7 (#597)
* Fixed double respawn screen displaying * Only remove, don't re-add --------- Co-authored-by: FlorianMichael <florian.michael07@gmail.com>
1 parent 0edfd84 commit aff88a6

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

common/src/main/java/com/viaversion/viarewind/protocol/v1_8to1_7_6_10/rewriter/PlayerPacketRewriter1_8.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.viaversion.viarewind.protocol.v1_8to1_7_6_10.rewriter;
1919

2020
import com.viaversion.viarewind.ViaRewind;
21+
import com.viaversion.viarewind.api.minecraft.entitydata.EntityDataTypes1_7_6_10;
2122
import com.viaversion.viarewind.protocol.v1_7_6_10to1_7_2_5.packet.ClientboundPackets1_7_2_5;
2223
import com.viaversion.viarewind.protocol.v1_8to1_7_6_10.Protocol1_8To1_7_6_10;
2324
import com.viaversion.viarewind.protocol.v1_7_6_10to1_7_2_5.packet.ServerboundPackets1_7_2_5;
@@ -31,6 +32,7 @@
3132
import com.viaversion.viarewind.api.minecraft.math.Vector3d;
3233
import com.viaversion.viaversion.api.Via;
3334
import com.viaversion.viaversion.api.minecraft.GameProfile;
35+
import com.viaversion.viaversion.api.minecraft.entitydata.EntityData;
3436
import com.viaversion.viaversion.api.minecraft.item.Item;
3537
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
3638
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
@@ -49,6 +51,7 @@
4951
import io.netty.buffer.Unpooled;
5052

5153
import java.nio.charset.StandardCharsets;
54+
import java.util.ArrayList;
5255
import java.util.List;
5356
import java.util.Objects;
5457
import java.util.UUID;
@@ -121,10 +124,15 @@ public void register() {
121124
if (tracker.getEntityData().isEmpty()) {
122125
return;
123126
}
124-
// 1.8 clients do keep entity data after respawn, 1.7 clients don't
127+
128+
// TODO figure out why this is needed
129+
final List<EntityData> entityDataList = new ArrayList<>(tracker.getEntityData());
130+
entityDataList.removeIf(entityData -> entityData.id() == 6);
131+
132+
// 1.8 clients do keep entity data after respawn, 1.7 clients don't
125133
final PacketWrapper setEntityData = PacketWrapper.create(ClientboundPackets1_7_2_5.SET_ENTITY_DATA, wrapper.user());
126134
setEntityData.write(Types.INT, tracker.clientEntityId());
127-
setEntityData.write(RewindTypes.ENTITY_DATA_LIST1_7, tracker.getEntityData());
135+
setEntityData.write(RewindTypes.ENTITY_DATA_LIST1_7, entityDataList);
128136
setEntityData.send(Protocol1_8To1_7_6_10.class);
129137
});
130138
}

0 commit comments

Comments
 (0)