Skip to content

Commit 712f656

Browse files
Remap UI sound source to master in 1.21.6->1.21.5 (#1056)
1 parent 181a0cb commit 712f656

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

common/src/main/java/com/viaversion/viabackwards/api/rewriters/SoundRewriter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,11 @@ public PacketHandler getNamedSoundHandler() {
6464
public PacketHandler getStopSoundHandler() {
6565
return wrapper -> {
6666
final byte flags = wrapper.passthrough(Types.BYTE);
67-
if ((flags & 0x02) == 0) return; // No sound specified
68-
6967
if ((flags & 0x01) != 0) {
7068
wrapper.passthrough(Types.VAR_INT); // Source
7169
}
7270

71+
if ((flags & 0x02) == 0) return; // No sound specified
7372
final String soundId = wrapper.read(Types.STRING);
7473
final String mappedId = protocol.getMappingData().getMappedNamedSound(soundId);
7574
if (mappedId == null) {

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_6to1_21_5/Protocol1_21_6To1_21_5.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,22 @@ protected void registerPackets() {
9090

9191
final SoundRewriter<ClientboundPacket1_21_6> soundRewriter = new SoundRewriter<>(this);
9292
soundRewriter.registerSound1_19_3(ClientboundPackets1_21_6.SOUND);
93+
appendClientbound(ClientboundPackets1_21_6.SOUND, wrapper -> {
94+
wrapper.passthrough(Types.VAR_INT); // Source
95+
fixSoundSource(wrapper);
96+
});
9397
soundRewriter.registerSound1_19_3(ClientboundPackets1_21_6.SOUND_ENTITY);
98+
appendClientbound(ClientboundPackets1_21_6.SOUND_ENTITY, wrapper -> {
99+
wrapper.passthrough(Types.VAR_INT); // Source
100+
fixSoundSource(wrapper);
101+
});
94102
soundRewriter.registerStopSound(ClientboundPackets1_21_6.STOP_SOUND);
103+
appendClientbound(ClientboundPackets1_21_6.STOP_SOUND, wrapper -> {
104+
final byte flags = wrapper.get(Types.BYTE, 0);
105+
if ((flags & 0x01) != 0) {
106+
fixSoundSource(wrapper);
107+
}
108+
});
95109

96110
new StatisticsRewriter<>(this).register(ClientboundPackets1_21_6.AWARD_STATS);
97111
new AttributeRewriter<>(this).register1_21(ClientboundPackets1_21_6.UPDATE_ATTRIBUTES);
@@ -238,10 +252,11 @@ public void handleArgument(final PacketWrapper wrapper, final String argumentTyp
238252
cancelClientbound(ClientboundPackets1_21_6.TRACKED_WAYPOINT);
239253
}
240254

241-
private void clearDialog(final PacketWrapper wrapper) {
242-
wrapper.cancel();
243-
final DialogViewProvider provider = Via.getManager().getProviders().get(DialogViewProvider.class);
244-
provider.closeDialog(wrapper.user());
255+
private void fixSoundSource(final PacketWrapper wrapper) {
256+
final int source = wrapper.get(Types.VAR_INT, 0);
257+
if (source == 10) { // New ui source, map to master
258+
wrapper.set(Types.VAR_INT, 0, 0);
259+
}
245260
}
246261

247262
private void updateTags(final PacketWrapper wrapper) {
@@ -275,6 +290,12 @@ private void updateTags(final PacketWrapper wrapper) {
275290
}
276291
}
277292

293+
private void clearDialog(final PacketWrapper wrapper) {
294+
wrapper.cancel();
295+
final DialogViewProvider provider = Via.getManager().getProviders().get(DialogViewProvider.class);
296+
provider.closeDialog(wrapper.user());
297+
}
298+
278299
private void storeServerLinks(final PacketWrapper wrapper) {
279300
final ServerLinks serverLinks = new ServerLinks();
280301
final int length = wrapper.passthrough(Types.VAR_INT);

0 commit comments

Comments
 (0)