Skip to content

Commit 4a31dc5

Browse files
committed
Merge remote-tracking branch 'origin/dev'
2 parents 69547fe + bd98575 commit 4a31dc5

File tree

9 files changed

+263
-1
lines changed

9 files changed

+263
-1
lines changed

api/src/main/java/com/viaversion/viaversion/api/protocol/version/ProtocolVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public class ProtocolVersion implements Comparable<ProtocolVersion> {
9090
public static final ProtocolVersion v1_21_4 = register(769, "1.21.4");
9191
public static final ProtocolVersion v1_21_5 = register(770, "1.21.5");
9292
public static final ProtocolVersion v1_21_6 = register(771, "1.21.6");
93+
public static final ProtocolVersion v1_21_7 = register(772, 258, "1.21.7");
9394
public static final ProtocolVersion unknown = new ProtocolVersion(VersionType.SPECIAL, -1, -1, "UNKNOWN", null);
9495

9596
static {

common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
import com.viaversion.viaversion.protocols.v1_21_2to1_21_4.Protocol1_21_2To1_21_4;
8181
import com.viaversion.viaversion.protocols.v1_21_4to1_21_5.Protocol1_21_4To1_21_5;
8282
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.Protocol1_21_5To1_21_6;
83+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.Protocol1_21_6To1_21_7;
8384
import com.viaversion.viaversion.protocols.v1_21to1_21_2.Protocol1_21To1_21_2;
8485
import com.viaversion.viaversion.protocols.v1_8to1_9.Protocol1_8To1_9;
8586
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.Protocol1_9_1To1_9_3;
@@ -203,6 +204,7 @@ public void registerProtocols() {
203204
registerProtocol(new Protocol1_21_4To1_21_5(), ProtocolVersion.v1_21_5, ProtocolVersion.v1_21_4);
204205

205206
registerProtocol(new Protocol1_21_5To1_21_6(), ProtocolVersion.v1_21_6, ProtocolVersion.v1_21_5);
207+
registerProtocol(new Protocol1_21_6To1_21_7(), ProtocolVersion.v1_21_7, ProtocolVersion.v1_21_6);
206208
}
207209

208210
@Override
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
/*
2+
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
3+
* Copyright (C) 2016-2025 ViaVersion and contributors
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
package com.viaversion.viaversion.protocols.v1_21_6to1_21_7;
19+
20+
import com.viaversion.viaversion.api.connection.UserConnection;
21+
import com.viaversion.viaversion.api.data.MappingData;
22+
import com.viaversion.viaversion.api.data.MappingDataBase;
23+
import com.viaversion.viaversion.api.minecraft.data.version.StructuredDataKeys1_21_5;
24+
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_6;
25+
import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_21_5;
26+
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
27+
import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider;
28+
import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider;
29+
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
30+
import com.viaversion.viaversion.api.type.types.version.VersionedTypes;
31+
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
32+
import com.viaversion.viaversion.data.item.ItemHasherBase;
33+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundConfigurationPackets1_21_6;
34+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPacket1_21_6;
35+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPackets1_21_6;
36+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundConfigurationPackets1_21_6;
37+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPacket1_21_6;
38+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPackets1_21_6;
39+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.rewriter.BlockItemPacketRewriter1_21_7;
40+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.rewriter.EntityPacketRewriter1_21_7;
41+
import com.viaversion.viaversion.rewriter.ParticleRewriter;
42+
import com.viaversion.viaversion.rewriter.SoundRewriter;
43+
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
44+
import com.viaversion.viaversion.rewriter.TagRewriter;
45+
import com.viaversion.viaversion.util.SerializerVersion;
46+
47+
import static com.viaversion.viaversion.util.ProtocolUtil.packetTypeMap;
48+
49+
public final class Protocol1_21_6To1_21_7 extends AbstractProtocol<ClientboundPacket1_21_6, ClientboundPacket1_21_6, ServerboundPacket1_21_6, ServerboundPacket1_21_6> {
50+
51+
public static final MappingData MAPPINGS = new MappingDataBase("1.21.6", "1.21.7");
52+
private final EntityPacketRewriter1_21_7 entityRewriter = new EntityPacketRewriter1_21_7(this);
53+
private final BlockItemPacketRewriter1_21_7 itemRewriter = new BlockItemPacketRewriter1_21_7(this);
54+
private final ParticleRewriter<ClientboundPacket1_21_6> particleRewriter = new ParticleRewriter<>(this);
55+
private final TagRewriter<ClientboundPacket1_21_6> tagRewriter = new TagRewriter<>(this);
56+
57+
public Protocol1_21_6To1_21_7() {
58+
super(ClientboundPacket1_21_6.class, ClientboundPacket1_21_6.class, ServerboundPacket1_21_6.class, ServerboundPacket1_21_6.class);
59+
}
60+
61+
@Override
62+
protected void registerPackets() {
63+
super.registerPackets();
64+
65+
tagRewriter.registerGeneric(ClientboundPackets1_21_6.UPDATE_TAGS);
66+
tagRewriter.registerGeneric(ClientboundConfigurationPackets1_21_6.UPDATE_TAGS);
67+
68+
particleRewriter.registerLevelParticles1_21_4(ClientboundPackets1_21_6.LEVEL_PARTICLES);
69+
particleRewriter.registerExplode1_21_2(ClientboundPackets1_21_6.EXPLODE); // Rewrites the included sound and particles
70+
71+
final SoundRewriter<ClientboundPacket1_21_6> soundRewriter = new SoundRewriter<>(this);
72+
soundRewriter.registerSound1_19_3(ClientboundPackets1_21_6.SOUND);
73+
soundRewriter.registerSound1_19_3(ClientboundPackets1_21_6.SOUND_ENTITY);
74+
75+
new StatisticsRewriter<>(this).register(ClientboundPackets1_21_6.AWARD_STATS);
76+
}
77+
78+
@Override
79+
public void init(final UserConnection connection) {
80+
addEntityTracker(connection, new EntityTrackerBase(connection, EntityTypes1_21_6.PLAYER));
81+
addItemHasher(connection, new ItemHasherBase(this, connection, SerializerVersion.V1_21_6, SerializerVersion.V1_21_6));
82+
}
83+
84+
@Override
85+
public MappingData getMappingData() {
86+
return MAPPINGS;
87+
}
88+
89+
@Override
90+
public Types1_20_5<StructuredDataKeys1_21_5, EntityDataTypes1_21_5> types() {
91+
return VersionedTypes.V1_21_6;
92+
}
93+
94+
@Override
95+
public Types1_20_5<StructuredDataKeys1_21_5, EntityDataTypes1_21_5> mappedTypes() {
96+
return VersionedTypes.V1_21_6;
97+
}
98+
99+
@Override
100+
public TagRewriter<ClientboundPacket1_21_6> getTagRewriter() {
101+
return tagRewriter;
102+
}
103+
104+
@Override
105+
public EntityPacketRewriter1_21_7 getEntityRewriter() {
106+
return entityRewriter;
107+
}
108+
109+
@Override
110+
public BlockItemPacketRewriter1_21_7 getItemRewriter() {
111+
return itemRewriter;
112+
}
113+
114+
@Override
115+
public ParticleRewriter<ClientboundPacket1_21_6> getParticleRewriter() {
116+
return particleRewriter;
117+
}
118+
119+
@Override
120+
protected PacketTypesProvider<ClientboundPacket1_21_6, ClientboundPacket1_21_6, ServerboundPacket1_21_6, ServerboundPacket1_21_6> createPacketTypesProvider() {
121+
return new SimplePacketTypesProvider<>(
122+
packetTypeMap(unmappedClientboundPacketType, ClientboundPackets1_21_6.class, ClientboundConfigurationPackets1_21_6.class),
123+
packetTypeMap(mappedClientboundPacketType, ClientboundPackets1_21_6.class, ClientboundConfigurationPackets1_21_6.class),
124+
packetTypeMap(mappedServerboundPacketType, ServerboundPackets1_21_6.class, ServerboundConfigurationPackets1_21_6.class),
125+
packetTypeMap(unmappedServerboundPacketType, ServerboundPackets1_21_6.class, ServerboundConfigurationPackets1_21_6.class)
126+
);
127+
}
128+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
3+
* Copyright (C) 2016-2025 ViaVersion and contributors
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
package com.viaversion.viaversion.protocols.v1_21_6to1_21_7.rewriter;
19+
20+
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_21_5;
21+
import com.viaversion.viaversion.protocols.v1_21_4to1_21_5.rewriter.RecipeDisplayRewriter1_21_5;
22+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPacket1_21_6;
23+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPackets1_21_6;
24+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPacket1_21_6;
25+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPackets1_21_6;
26+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.Protocol1_21_6To1_21_7;
27+
import com.viaversion.viaversion.rewriter.BlockRewriter;
28+
import com.viaversion.viaversion.rewriter.RecipeDisplayRewriter;
29+
import com.viaversion.viaversion.rewriter.StructuredItemRewriter;
30+
31+
public final class BlockItemPacketRewriter1_21_7 extends StructuredItemRewriter<ClientboundPacket1_21_6, ServerboundPacket1_21_6, Protocol1_21_6To1_21_7> {
32+
33+
public BlockItemPacketRewriter1_21_7(final Protocol1_21_6To1_21_7 protocol) {
34+
super(protocol);
35+
}
36+
37+
@Override
38+
public void registerPackets() {
39+
final BlockRewriter<ClientboundPacket1_21_6> blockRewriter = BlockRewriter.for1_20_2(protocol);
40+
blockRewriter.registerBlockEvent(ClientboundPackets1_21_6.BLOCK_EVENT);
41+
blockRewriter.registerBlockUpdate(ClientboundPackets1_21_6.BLOCK_UPDATE);
42+
blockRewriter.registerSectionBlocksUpdate1_20(ClientboundPackets1_21_6.SECTION_BLOCKS_UPDATE);
43+
blockRewriter.registerLevelEvent1_21(ClientboundPackets1_21_6.LEVEL_EVENT, 2001);
44+
blockRewriter.registerLevelChunk1_19(ClientboundPackets1_21_6.LEVEL_CHUNK_WITH_LIGHT, ChunkType1_21_5::new);
45+
blockRewriter.registerBlockEntityData(ClientboundPackets1_21_6.BLOCK_ENTITY_DATA);
46+
47+
registerSetCursorItem(ClientboundPackets1_21_6.SET_CURSOR_ITEM);
48+
registerSetPlayerInventory(ClientboundPackets1_21_6.SET_PLAYER_INVENTORY);
49+
registerCooldown1_21_2(ClientboundPackets1_21_6.COOLDOWN);
50+
registerSetContent1_21_2(ClientboundPackets1_21_6.CONTAINER_SET_CONTENT);
51+
registerSetSlot1_21_2(ClientboundPackets1_21_6.CONTAINER_SET_SLOT);
52+
registerAdvancements1_20_3(ClientboundPackets1_21_6.UPDATE_ADVANCEMENTS);
53+
registerSetEquipment(ClientboundPackets1_21_6.SET_EQUIPMENT);
54+
registerMerchantOffers1_20_5(ClientboundPackets1_21_6.MERCHANT_OFFERS);
55+
registerContainerClick1_21_5(ServerboundPackets1_21_6.CONTAINER_CLICK);
56+
registerSetCreativeModeSlot1_21_5(ServerboundPackets1_21_6.SET_CREATIVE_MODE_SLOT);
57+
58+
final RecipeDisplayRewriter<ClientboundPacket1_21_6> recipeRewriter = new RecipeDisplayRewriter1_21_5<>(protocol);
59+
recipeRewriter.registerUpdateRecipes(ClientboundPackets1_21_6.UPDATE_RECIPES);
60+
recipeRewriter.registerRecipeBookAdd(ClientboundPackets1_21_6.RECIPE_BOOK_ADD);
61+
recipeRewriter.registerPlaceGhostRecipe(ClientboundPackets1_21_6.PLACE_GHOST_RECIPE);
62+
}
63+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
3+
* Copyright (C) 2016-2025 ViaVersion and contributors
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
package com.viaversion.viaversion.protocols.v1_21_6to1_21_7.rewriter;
19+
20+
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
21+
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_6;
22+
import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_21_5;
23+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundConfigurationPackets1_21_6;
24+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPacket1_21_6;
25+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPackets1_21_6;
26+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.Protocol1_21_6To1_21_7;
27+
import com.viaversion.viaversion.rewriter.EntityRewriter;
28+
import com.viaversion.viaversion.rewriter.RegistryDataRewriter;
29+
30+
public final class EntityPacketRewriter1_21_7 extends EntityRewriter<ClientboundPacket1_21_6, Protocol1_21_6To1_21_7> {
31+
32+
public EntityPacketRewriter1_21_7(final Protocol1_21_6To1_21_7 protocol) {
33+
super(protocol);
34+
}
35+
36+
@Override
37+
public void registerPackets() {
38+
registerTrackerWithData1_19(ClientboundPackets1_21_6.ADD_ENTITY, EntityTypes1_21_6.FALLING_BLOCK);
39+
registerSetEntityData(ClientboundPackets1_21_6.SET_ENTITY_DATA);
40+
registerRemoveEntities(ClientboundPackets1_21_6.REMOVE_ENTITIES);
41+
registerPlayerAbilities(ClientboundPackets1_21_6.PLAYER_ABILITIES);
42+
registerGameEvent(ClientboundPackets1_21_6.GAME_EVENT);
43+
registerLogin1_20_5(ClientboundPackets1_21_6.LOGIN);
44+
registerRespawn1_20_5(ClientboundPackets1_21_6.RESPAWN);
45+
46+
final RegistryDataRewriter registryDataRewriter = new RegistryDataRewriter(protocol);
47+
protocol.registerClientbound(ClientboundConfigurationPackets1_21_6.REGISTRY_DATA, registryDataRewriter::handle);
48+
}
49+
50+
@Override
51+
protected void registerRewrites() {
52+
final EntityDataTypes1_21_5 entityDataTypes = protocol.types().entityDataTypes();
53+
registerEntityDataTypeHandler(
54+
entityDataTypes.itemType,
55+
entityDataTypes.blockStateType,
56+
entityDataTypes.optionalBlockStateType,
57+
entityDataTypes.particleType,
58+
entityDataTypes.particlesType,
59+
entityDataTypes.componentType,
60+
entityDataTypes.optionalComponentType
61+
);
62+
}
63+
64+
@Override
65+
public EntityType typeFromId(final int type) {
66+
return EntityTypes1_21_6.getTypeFromId(type);
67+
}
68+
}
Binary file not shown.
Binary file not shown.
Binary file not shown.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Project properties - we put these here so they can be modified without causing a recompile of the build scripts
2-
projectVersion=5.4.1-SNAPSHOT
2+
projectVersion=5.4.1-mc1.21.7-rc2-SNAPSHOT
33

44
# Smile emoji
55
mcVersions=1.21.6, 1.21.5, 1.21.4, 1.21.3, 1.21.2, 1.21.1, 1.21, 1.20.6, 1.20.5, 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, 1.9.4, 1.9.3, 1.9.2, 1.9.1, 1.9, 1.8.9

0 commit comments

Comments
 (0)