Skip to content

Commit 06f07d2

Browse files
committed
24w06a
1 parent fa1c3e1 commit 06f07d2

File tree

6 files changed

+34
-10
lines changed

6 files changed

+34
-10
lines changed

common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/Protocol1_20_3To1_20_5.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ protected void registerPackets() {
125125
registerClientbound(ClientboundPackets1_20_5.STORE_COOKIE, null, this::handleStoreCookie);
126126
registerClientbound(ClientboundPackets1_20_5.TRANSFER, null, this::handleTransfer);
127127

128+
registerClientbound(ClientboundConfigurationPackets1_20_5.SELECT_KNOWN_PACKS, null, wrapper -> {
129+
wrapper.cancel();
130+
131+
final PacketWrapper response = wrapper.create(ServerboundConfigurationPackets1_20_5.SELECT_KNOWN_PACKS);
132+
response.write(Type.VAR_INT, 0); // Empty, we don't know anything
133+
response.sendToServer(Protocol1_20_3To1_20_5.class);
134+
});
135+
128136
cancelClientbound(ClientboundPackets1_20_5.DEBUG_SAMPLE);
129137
}
130138

common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/BlockItemPacketRewriter1_20_5.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.viaversion.viaversion.api.type.Type;
2424
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_20_2;
2525
import com.viaversion.viaversion.api.type.types.version.Types1_20_3;
26+
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
2627
import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ServerboundPacket1_20_3;
2728
import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ServerboundPackets1_20_3;
2829
import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.rewriter.RecipeRewriter1_20_3;
@@ -69,7 +70,7 @@ public void registerPackets() {
6970
wrapper.passthrough(Type.INT); // Particle Count
7071

7172
// Move it to the beginning, move out arguments here
72-
final Particle particle = wrapper.read(Types1_20_3.PARTICLE);
73+
final Particle particle = wrapper.read(Types1_20_5.PARTICLE);
7374
rewriteParticle(particle);
7475
wrapper.set(Type.VAR_INT, 0, particle.getId());
7576
for (final Particle.ParticleData<?> argument : particle.getArguments()) {
@@ -93,10 +94,8 @@ public void registerPackets() {
9394
wrapper.passthrough(Type.FLOAT); // Knockback Z
9495
wrapper.passthrough(Type.VAR_INT); // Block interaction type
9596

96-
final Particle smallExplosionParticle = wrapper.passthrough(Types1_20_3.PARTICLE);
97-
final Particle largeExplosionParticle = wrapper.passthrough(Types1_20_3.PARTICLE);
98-
protocol.getEntityRewriter().rewriteParticle(smallExplosionParticle);
99-
protocol.getEntityRewriter().rewriteParticle(largeExplosionParticle);
97+
protocol.getEntityRewriter().rewriteParticle(wrapper, Types1_20_5.PARTICLE, Types1_20_3.PARTICLE); // Small explosion particle
98+
protocol.getEntityRewriter().rewriteParticle(wrapper, Types1_20_5.PARTICLE, Types1_20_3.PARTICLE); // Large explosion particle
10099

101100
int soundId = wrapper.read(Type.VAR_INT) - 1;
102101
if (soundId == -1) {

common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
*/
1818
package com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.rewriter;
1919

20+
import com.google.common.base.Preconditions;
2021
import com.viaversion.viabackwards.api.rewriters.EntityRewriter;
2122
import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.Protocol1_20_3To1_20_5;
2223
import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.storage.RegistryDataStorage;
2324
import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.storage.SecureChatStorage;
2425
import com.viaversion.viaversion.api.data.entity.DimensionData;
26+
import com.viaversion.viaversion.api.data.entity.TrackedEntity;
2527
import com.viaversion.viaversion.api.minecraft.RegistryEntry;
2628
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
2729
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_5;
@@ -86,6 +88,8 @@ protected void register() {
8688
final String[] keys = new String[entries.length];
8789
for (int i = 0; i < entries.length; i++) {
8890
final RegistryEntry entry = entries[i];
91+
Preconditions.checkNotNull(entry.tag(), "Server unexpectedly sent null dimension data for " + entry.key());
92+
8993
final String dimensionKey = Key.stripMinecraftNamespace(entry.key());
9094
dimensionDataMap.put(dimensionKey, new DimensionDataImpl(i, (CompoundTag) entry.tag()));
9195
keys[i] = dimensionKey;
@@ -101,6 +105,8 @@ protected void register() {
101105
registryTag.put("value", entriesTag);
102106
for (int i = 0; i < entries.length; i++) {
103107
final RegistryEntry entry = entries[i];
108+
Preconditions.checkNotNull(entry.tag(), "Server unexpectedly sent null registry data entry for " + entry.key());
109+
104110
final CompoundTag entryCompoundTag = new CompoundTag();
105111
entryCompoundTag.putString("name", entry.key());
106112
entryCompoundTag.putInt("id", i);
@@ -174,13 +180,25 @@ public void register() {
174180
});
175181

176182
protocol.registerClientbound(ClientboundPackets1_20_5.ENTITY_PROPERTIES, wrapper -> {
177-
wrapper.passthrough(Type.VAR_INT); // Entity ID
183+
final int entityId = wrapper.passthrough(Type.VAR_INT);
184+
final TrackedEntity entity = tracker(wrapper.user()).entity(entityId);
185+
if (entity == null || !entity.entityType().isOrHasParent(EntityTypes1_20_5.LIVINGENTITY)) {
186+
// Cannot add attributes to base entities in old version
187+
wrapper.cancel();
188+
return;
189+
}
178190

179191
final int size = wrapper.passthrough(Type.VAR_INT);
180192
int newSize = size;
181193
for (int i = 0; i < size; i++) {
182194
// From a registry int ID to a string
183-
final int id = protocol.getMappingData().getAttributeMappings().getNewId(wrapper.read(Type.VAR_INT));
195+
int id = protocol.getMappingData().getAttributeMappings().getNewId(wrapper.read(Type.VAR_INT));
196+
final String attribute = AttributeMappings.attribute(id);
197+
if ("horse.jump_strength".equals(attribute)) {
198+
// Jump strength only applies to horses in old versions
199+
id = -1;
200+
}
201+
184202
if (id == -1) {
185203
// Remove new attributes from the list
186204
newSize--;
@@ -195,7 +213,6 @@ public void register() {
195213
continue;
196214
}
197215

198-
final String attribute = AttributeMappings.attribute(id);
199216
wrapper.write(Type.STRING, attribute);
200217

201218
wrapper.passthrough(Type.DOUBLE); // Base
Binary file not shown.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
projectVersion=4.10.0-24w05b-SNAPSHOT
1+
projectVersion=4.10.0-24w06a-SNAPSHOT
22

33
# Smile emoji
44
mcVersions=1.20.4, 1.20.3, 1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14, 1.13.2, 1.13.1, 1.13, 1.12.2, 1.12.1, 1.12, 1.11.2, 1.11.1, 1.11, 1.10.2, 1.10.1, 1.10

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ metadata.format.version = "1.1"
33
[versions]
44

55
# ViaVersion
6-
viaver = "4.10.0-24w05a-SNAPSHOT"
6+
viaver = "4.10.0-24w06a-SNAPSHOT"
77

88
# Common provided
99
netty = "4.0.20.Final"

0 commit comments

Comments
 (0)