Skip to content

Commit 23551ec

Browse files
committed
Bundle packets, fix issue
1 parent 033fc63 commit 23551ec

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_9to1_21_7/Protocol1_21_9To1_21_7.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.viaversion.viaversion.protocols.v1_21_7to1_21_9.packet.ClientboundPackets1_21_9;
5656
import com.viaversion.viaversion.protocols.v1_21_7to1_21_9.packet.ServerboundConfigurationPackets1_21_9;
5757
import com.viaversion.viaversion.protocols.v1_21_7to1_21_9.packet.ServerboundPacket1_21_9;
58+
import com.viaversion.viaversion.protocols.v1_21to1_21_2.storage.BundleStateTracker;
5859
import com.viaversion.viaversion.rewriter.ParticleRewriter;
5960
import com.viaversion.viaversion.rewriter.RegistryDataRewriter;
6061
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
@@ -202,6 +203,7 @@ protected void registerPackets() {
202203
wrapper.write(Types.VAR_INT, 0); // Subscription registry id (DEDICATED_SERVER_TICK_TIME)
203204
}
204205
});
206+
registerClientbound(ClientboundPackets1_21_9.BUNDLE_DELIMITER, wrapper -> wrapper.user().get(BundleStateTracker.class).toggleBundling());
205207

206208
cancelClientbound(ClientboundPackets1_21_9.DEBUG_BLOCK_VALUE);
207209
cancelClientbound(ClientboundPackets1_21_9.DEBUG_CHUNK_VALUE);
@@ -216,6 +218,7 @@ public void init(final UserConnection connection) {
216218
addItemHasher(connection, new ItemHasherBase(this, connection));
217219
connection.put(new PlayerRotationStorage());
218220
connection.put(new DimensionScaleStorage());
221+
connection.put(new BundleStateTracker());
219222
}
220223

221224
@Override

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_9to1_21_7/rewriter/EntityPacketRewriter1_21_9.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPackets1_21_6;
4646
import com.viaversion.viaversion.protocols.v1_21_7to1_21_9.packet.ClientboundPacket1_21_9;
4747
import com.viaversion.viaversion.protocols.v1_21_7to1_21_9.packet.ClientboundPackets1_21_9;
48+
import com.viaversion.viaversion.protocols.v1_21to1_21_2.storage.BundleStateTracker;
4849
import com.viaversion.viaversion.rewriter.entitydata.EntityDataHandler;
4950
import com.viaversion.viaversion.util.ChatColorUtil;
5051
import java.util.BitSet;
@@ -203,7 +204,9 @@ public void registerPackets() {
203204
final TrackedEntity trackedEntity = tracker.entity(vehicleId);
204205
if (trackedEntity != null && trackedEntity.hasData()) {
205206
MannequinData data = trackedEntity.data().get(MannequinData.class);
206-
data.setHeadYaw(headRotation);
207+
if (data != null) {
208+
data.setHeadYaw(headRotation);
209+
}
207210
}
208211
});
209212

@@ -449,6 +452,12 @@ protected void registerRewrites() {
449452
mannequinData.setDisplayName(displayName);
450453
sendPlayerInfoDisplayNameUpdate(event.user(), mannequinData, displayName);
451454
} else if (event.index() == 17) { // Profile
455+
final boolean isBundling = event.user().get(BundleStateTracker.class).isBundling();
456+
if (!isBundling) {
457+
final PacketWrapper bundleStart = PacketWrapper.create(ClientboundPackets1_21_6.BUNDLE_DELIMITER, event.user());
458+
bundleStart.send(Protocol1_21_9To1_21_7.class);
459+
}
460+
452461
final ResolvableProfile profile = data.value();
453462
final MannequinData entity = event.trackedEntity().data().get(MannequinData.class);
454463
final UUID uuid = event.trackedEntity().data().get(MannequinData.class).uuid();
@@ -513,6 +522,11 @@ protected void registerRewrites() {
513522
equipment.send(Protocol1_21_9To1_21_7.class);
514523
}
515524

525+
if (!isBundling) {
526+
final PacketWrapper bundleStart = PacketWrapper.create(ClientboundPackets1_21_6.BUNDLE_DELIMITER, event.user());
527+
bundleStart.send(Protocol1_21_9To1_21_7.class);
528+
}
529+
516530
event.cancel();
517531
} else if (event.index() == 15) {
518532
event.setIndex(18);

0 commit comments

Comments
 (0)