|
27 | 27 | import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory;
|
28 | 28 | import net.minecraft.core.BlockPos;
|
29 | 29 | import net.minecraft.network.chat.Component;
|
| 30 | +import net.minecraft.network.protocol.BundlePacket; |
30 | 31 | import net.minecraft.network.protocol.Packet;
|
31 | 32 | import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket;
|
32 | 33 | import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
33 | 34 | import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
| 35 | +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; |
| 36 | +import net.minecraft.network.protocol.game.ClientboundBundlePacket; |
34 | 37 | import net.minecraft.server.level.ServerLevel;
|
35 | 38 | import net.minecraft.server.level.ServerPlayer;
|
36 | 39 | import net.minecraft.util.profiling.ProfilerFiller;
|
|
43 | 46 | import org.jetbrains.annotations.NotNull;
|
44 | 47 | import org.jetbrains.annotations.Nullable;
|
45 | 48 |
|
| 49 | +import java.util.List; |
| 50 | + |
46 | 51 | /**
|
47 | 52 | * A block entity with additional synchronization utilities.
|
48 | 53 | *
|
@@ -85,9 +90,7 @@ public BlockPos getScreenOpeningData(ServerPlayer player) {
|
85 | 90 | public final @Nullable Packet<ClientGamePacketListener> getUpdatePacket() {
|
86 | 91 | CustomPacketPayload payload = this.createUpdatePayload();
|
87 | 92 |
|
88 |
| - // safe cast because the ClientCommonPacketListener is a superclass of ClientGamePacketListener |
89 |
| - // noinspection unchecked, rawtypes |
90 |
| - return payload == null ? null : (Packet) new ClientboundCustomPayloadPacket(payload); |
| 93 | + return payload == null ? null : new ClientboundBundlePacket(List.of(ClientboundBlockEntityDataPacket.create(this), new ClientboundCustomPayloadPacket(payload))); |
91 | 94 | }
|
92 | 95 |
|
93 | 96 | /**
|
|
0 commit comments