Skip to content

Commit 4888a6a

Browse files
committed
1.21.7-rc1
1 parent 1d73321 commit 4888a6a

File tree

8 files changed

+293
-2
lines changed

8 files changed

+293
-2
lines changed

common/src/main/java/com/viaversion/viabackwards/api/ViaBackwardsPlatform.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import com.viaversion.viabackwards.protocol.v1_21_5to1_21_4.Protocol1_21_5To1_21_4;
6262
import com.viaversion.viabackwards.protocol.v1_21_6to1_21_5.Protocol1_21_6To1_21_5;
6363
import com.viaversion.viabackwards.protocol.v1_21_6to1_21_5.task.ChestDialogViewTask;
64+
import com.viaversion.viabackwards.protocol.v1_21_7to1_21_6.Protocol1_21_7To1_21_6;
6465
import com.viaversion.viabackwards.protocol.v1_21to1_20_5.Protocol1_21To1_20_5;
6566
import com.viaversion.viabackwards.protocol.v1_9_1to1_9.Protocol1_9_1To1_9;
6667
import com.viaversion.viabackwards.protocol.v1_9_3to1_9_1.Protocol1_9_3To1_9_1;
@@ -152,6 +153,7 @@ default void init(final File configFile) {
152153
protocolManager.registerProtocol(new Protocol1_21_5To1_21_4(), ProtocolVersion.v1_21_4, ProtocolVersion.v1_21_5);
153154

154155
protocolManager.registerProtocol(new Protocol1_21_6To1_21_5(), ProtocolVersion.v1_21_5, ProtocolVersion.v1_21_6);
156+
protocolManager.registerProtocol(new Protocol1_21_7To1_21_6(), ProtocolVersion.v1_21_6, ProtocolVersion.v1_21_7);
155157
}
156158

157159
default void enable() {
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
/*
2+
* This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards
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.viabackwards.protocol.v1_21_7to1_21_6;
19+
20+
import com.viaversion.viabackwards.api.BackwardsProtocol;
21+
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
22+
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
23+
import com.viaversion.viabackwards.api.rewriters.text.NBTComponentRewriter;
24+
import com.viaversion.viabackwards.api.rewriters.text.TranslatableRewriter;
25+
import com.viaversion.viabackwards.protocol.v1_21_7to1_21_6.rewriter.BlockItemPacketRewriter1_21_7;
26+
import com.viaversion.viabackwards.protocol.v1_21_7to1_21_6.rewriter.EntityPacketRewriter1_21_7;
27+
import com.viaversion.viaversion.api.connection.UserConnection;
28+
import com.viaversion.viaversion.api.minecraft.data.version.StructuredDataKeys1_21_5;
29+
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_6;
30+
import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_21_5;
31+
import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider;
32+
import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider;
33+
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
34+
import com.viaversion.viaversion.api.type.types.version.VersionedTypes;
35+
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
36+
import com.viaversion.viaversion.data.item.ItemHasherBase;
37+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundConfigurationPackets1_21_6;
38+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPacket1_21_6;
39+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPackets1_21_6;
40+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundConfigurationPackets1_21_6;
41+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPacket1_21_6;
42+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPackets1_21_6;
43+
import com.viaversion.viaversion.protocols.v1_21_6to1_21_7.Protocol1_21_6To1_21_7;
44+
import com.viaversion.viaversion.rewriter.ParticleRewriter;
45+
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
46+
import com.viaversion.viaversion.rewriter.TagRewriter;
47+
import com.viaversion.viaversion.util.SerializerVersion;
48+
49+
import static com.viaversion.viaversion.util.ProtocolUtil.packetTypeMap;
50+
51+
public final class Protocol1_21_7To1_21_6 extends BackwardsProtocol<ClientboundPacket1_21_6, ClientboundPacket1_21_6, ServerboundPacket1_21_6, ServerboundPacket1_21_6> {
52+
53+
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.21.7", "1.21.6", Protocol1_21_6To1_21_7.class);
54+
private final EntityPacketRewriter1_21_7 entityRewriter = new EntityPacketRewriter1_21_7(this);
55+
private final BlockItemPacketRewriter1_21_7 itemRewriter = new BlockItemPacketRewriter1_21_7(this);
56+
private final ParticleRewriter<ClientboundPacket1_21_6> particleRewriter = new ParticleRewriter<>(this);
57+
private final NBTComponentRewriter<ClientboundPacket1_21_6> translatableRewriter = new NBTComponentRewriter<>(this);
58+
private final TagRewriter<ClientboundPacket1_21_6> tagRewriter = new TagRewriter<>(this);
59+
60+
public Protocol1_21_7To1_21_6() {
61+
super(ClientboundPacket1_21_6.class, ClientboundPacket1_21_6.class, ServerboundPacket1_21_6.class, ServerboundPacket1_21_6.class);
62+
}
63+
64+
@Override
65+
protected void registerPackets() {
66+
super.registerPackets();
67+
68+
tagRewriter.registerGeneric(ClientboundPackets1_21_6.UPDATE_TAGS);
69+
tagRewriter.registerGeneric(ClientboundConfigurationPackets1_21_6.UPDATE_TAGS);
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+
soundRewriter.registerStopSound(ClientboundPackets1_21_6.STOP_SOUND);
75+
76+
new StatisticsRewriter<>(this).register(ClientboundPackets1_21_6.AWARD_STATS);
77+
78+
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_6.SET_ACTION_BAR_TEXT);
79+
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_6.SET_TITLE_TEXT);
80+
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_6.SET_SUBTITLE_TEXT);
81+
translatableRewriter.registerBossEvent(ClientboundPackets1_21_6.BOSS_EVENT);
82+
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_6.DISCONNECT);
83+
translatableRewriter.registerTabList(ClientboundPackets1_21_6.TAB_LIST);
84+
translatableRewriter.registerPlayerCombatKill1_20(ClientboundPackets1_21_6.PLAYER_COMBAT_KILL);
85+
translatableRewriter.registerPlayerInfoUpdate1_21_4(ClientboundPackets1_21_6.PLAYER_INFO_UPDATE);
86+
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_6.SYSTEM_CHAT);
87+
translatableRewriter.registerDisguisedChat(ClientboundPackets1_21_6.DISGUISED_CHAT);
88+
translatableRewriter.registerPlayerChat1_21_5(ClientboundPackets1_21_6.PLAYER_CHAT);
89+
translatableRewriter.registerPing();
90+
91+
particleRewriter.registerLevelParticles1_21_4(ClientboundPackets1_21_6.LEVEL_PARTICLES);
92+
particleRewriter.registerExplode1_21_2(ClientboundPackets1_21_6.EXPLODE);
93+
}
94+
95+
@Override
96+
public void init(final UserConnection connection) {
97+
addEntityTracker(connection, new EntityTrackerBase(connection, EntityTypes1_21_6.PLAYER));
98+
addItemHasher(connection, new ItemHasherBase(this, connection, SerializerVersion.V1_21_6, SerializerVersion.V1_21_6));
99+
}
100+
101+
@Override
102+
public BackwardsMappingData getMappingData() {
103+
return MAPPINGS;
104+
}
105+
106+
@Override
107+
public Types1_20_5<StructuredDataKeys1_21_5, EntityDataTypes1_21_5> types() {
108+
return VersionedTypes.V1_21_6;
109+
}
110+
111+
@Override
112+
public Types1_20_5<StructuredDataKeys1_21_5, EntityDataTypes1_21_5> mappedTypes() {
113+
return VersionedTypes.V1_21_6;
114+
}
115+
116+
@Override
117+
public TranslatableRewriter getComponentRewriter() {
118+
return translatableRewriter;
119+
}
120+
121+
@Override
122+
public EntityPacketRewriter1_21_7 getEntityRewriter() {
123+
return entityRewriter;
124+
}
125+
126+
@Override
127+
public BlockItemPacketRewriter1_21_7 getItemRewriter() {
128+
return itemRewriter;
129+
}
130+
131+
@Override
132+
public ParticleRewriter<ClientboundPacket1_21_6> getParticleRewriter() {
133+
return particleRewriter;
134+
}
135+
136+
@Override
137+
public TagRewriter<ClientboundPacket1_21_6> getTagRewriter() {
138+
return tagRewriter;
139+
}
140+
141+
@Override
142+
protected PacketTypesProvider<ClientboundPacket1_21_6, ClientboundPacket1_21_6, ServerboundPacket1_21_6, ServerboundPacket1_21_6> createPacketTypesProvider() {
143+
return new SimplePacketTypesProvider<>(
144+
packetTypeMap(unmappedClientboundPacketType, ClientboundPackets1_21_6.class, ClientboundConfigurationPackets1_21_6.class),
145+
packetTypeMap(mappedClientboundPacketType, ClientboundPackets1_21_6.class, ClientboundConfigurationPackets1_21_6.class),
146+
packetTypeMap(mappedServerboundPacketType, ServerboundPackets1_21_6.class, ServerboundConfigurationPackets1_21_6.class),
147+
packetTypeMap(unmappedServerboundPacketType, ServerboundPackets1_21_6.class, ServerboundConfigurationPackets1_21_6.class)
148+
);
149+
}
150+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards
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.viabackwards.protocol.v1_21_7to1_21_6.rewriter;
19+
20+
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
21+
import com.viaversion.viabackwards.protocol.v1_21_7to1_21_6.Protocol1_21_7To1_21_6;
22+
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_21_5;
23+
import com.viaversion.viaversion.protocols.v1_21_4to1_21_5.rewriter.RecipeDisplayRewriter1_21_5;
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_5to1_21_6.packet.ServerboundPacket1_21_6;
27+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ServerboundPackets1_21_6;
28+
import com.viaversion.viaversion.rewriter.BlockRewriter;
29+
import com.viaversion.viaversion.rewriter.RecipeDisplayRewriter;
30+
31+
public final class BlockItemPacketRewriter1_21_7 extends BackwardsStructuredItemRewriter<ClientboundPacket1_21_6, ServerboundPacket1_21_6, Protocol1_21_7To1_21_6> {
32+
33+
public BlockItemPacketRewriter1_21_7(final Protocol1_21_7To1_21_6 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+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/*
2+
* This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards
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.viabackwards.protocol.v1_21_7to1_21_6.rewriter;
19+
20+
import com.viaversion.viabackwards.api.rewriters.BackwardsRegistryRewriter;
21+
import com.viaversion.viabackwards.api.rewriters.EntityRewriter;
22+
import com.viaversion.viabackwards.protocol.v1_21_7to1_21_6.Protocol1_21_7To1_21_6;
23+
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
24+
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_4;
25+
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_6;
26+
import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_21_5;
27+
import com.viaversion.viaversion.api.type.types.version.VersionedTypes;
28+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundConfigurationPackets1_21_6;
29+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPacket1_21_6;
30+
import com.viaversion.viaversion.protocols.v1_21_5to1_21_6.packet.ClientboundPackets1_21_6;
31+
import com.viaversion.viaversion.rewriter.RegistryDataRewriter;
32+
33+
public final class EntityPacketRewriter1_21_7 extends EntityRewriter<ClientboundPacket1_21_6, Protocol1_21_7To1_21_6> {
34+
35+
public EntityPacketRewriter1_21_7(final Protocol1_21_7To1_21_6 protocol) {
36+
super(protocol, VersionedTypes.V1_21_6.entityDataTypes.optionalComponentType, VersionedTypes.V1_21_6.entityDataTypes.booleanType);
37+
}
38+
39+
@Override
40+
public void registerPackets() {
41+
registerTrackerWithData1_19(ClientboundPackets1_21_6.ADD_ENTITY, EntityTypes1_21_4.FALLING_BLOCK);
42+
registerSetEntityData(ClientboundPackets1_21_6.SET_ENTITY_DATA);
43+
registerRemoveEntities(ClientboundPackets1_21_6.REMOVE_ENTITIES);
44+
registerPlayerAbilities(ClientboundPackets1_21_6.PLAYER_ABILITIES);
45+
registerGameEvent(ClientboundPackets1_21_6.GAME_EVENT);
46+
registerLogin1_20_5(ClientboundPackets1_21_6.LOGIN);
47+
registerRespawn1_20_5(ClientboundPackets1_21_6.RESPAWN);
48+
49+
final RegistryDataRewriter registryDataRewriter = new BackwardsRegistryRewriter(protocol);
50+
protocol.registerClientbound(ClientboundConfigurationPackets1_21_6.REGISTRY_DATA, registryDataRewriter::handle);
51+
}
52+
53+
@Override
54+
protected void registerRewrites() {
55+
final EntityDataTypes1_21_5 mappedEntityDataTypes = VersionedTypes.V1_21_6.entityDataTypes;
56+
registerEntityDataTypeHandler1_20_3(
57+
mappedEntityDataTypes.itemType,
58+
mappedEntityDataTypes.blockStateType,
59+
mappedEntityDataTypes.optionalBlockStateType,
60+
mappedEntityDataTypes.particleType,
61+
mappedEntityDataTypes.particlesType,
62+
mappedEntityDataTypes.componentType,
63+
mappedEntityDataTypes.optionalComponentType
64+
);
65+
}
66+
67+
@Override
68+
public EntityType typeFromId(final int type) {
69+
return EntityTypes1_21_6.getTypeFromId(type);
70+
}
71+
}
Binary file not shown.

common/src/main/resources/assets/viabackwards/data/translation-mappings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
{
2+
"1.21.7": {
3+
"item.minecraft.music_disc_lava_chicken.desc": "Hyper Potions - Lava Chicken",
4+
"jukebox_song.minecraft.lava_chicken": "Hyper Potions - Lava Chicken",
5+
"painting.minecraft.dennis.title": "Dennis"
6+
},
27
"1.21.6": {
38
"advancements.adventure.heart_transplanter.description": "Place a Creaking Heart with the correct alignment between two Pale Oak Log blocks",
49
"advancements.adventure.heart_transplanter.title": "Heart Transplanter",

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
projectVersion=5.4.1-SNAPSHOT
1+
projectVersion=5.4.1-1.21.7-rc1-SNAPSHOT
22

33
# Smile emoji
44
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

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 = "5.4.1-SNAPSHOT"
6+
viaver = "5.4.1-1.21.7-rc1-SNAPSHOT"
77

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

0 commit comments

Comments
 (0)