Skip to content

Commit e90baa6

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 4a31dc5 + 351b42b commit e90baa6

File tree

17 files changed

+337
-56
lines changed

17 files changed

+337
-56
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +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");
93+
public static final ProtocolVersion v1_21_7 = register(772, "1.21.7");
9494
public static final ProtocolVersion unknown = new ProtocolVersion(VersionType.SPECIAL, -1, -1, "UNKNOWN", null);
9595

9696
static {

common/src/main/java/com/viaversion/viaversion/protocols/v1_11_1to1_12/data/AchievementTranslations1_12.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ public class AchievementTranslations1_12 {
177177
add("achievement.overkill.desc", "Deal nine hearts of damage in a single hit");
178178
add("achievement.bookcase", "Librarian");
179179
add("achievement.bookcase.desc", "Build some bookshelves to improve your enchantment table");
180+
add("commands.achievement.usage", "/achievement <give|take> <name|*> [player]");
181+
add("commands.achievement.give.success.all", "Successfully given all achievements to %s");
182+
add("commands.achievement.take.success.all", "Successfully taken all achievements from %s");
183+
add("commands.achievement.unknownAchievement", "Unknown achievement '%s'");
184+
add("commands.achievement.take.success.one", "Successfully taken the achievement %s from %s");
185+
add("commands.achievement.dontHave", "Player %s doesn't have achievement %s");
186+
add("commands.achievement.alreadyHave", "Player %s already has achievement %s");
187+
add("commands.achievement.give.success.one", "Successfully given %s the achievement %s");
180188
}
181189

182190
private static void add(String key, String value) {

common/src/main/java/com/viaversion/viaversion/protocols/v1_15_2to1_16/rewriter/ComponentRewriter1_16.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public ComponentRewriter1_16(Protocol1_15_2To1_16 protocol) {
6565
mappings.put("advancements.husbandry.break_diamond_hoe.description", "Completely use up a diamond hoe, and then reevaluate your life choices");
6666
mappings.put("biome.minecraft.nether", "Nether");
6767
mappings.put("key.swapHands", "key.swapOffhand");
68+
mappings.put("commands.datapack.enable.success", "commands.datapack.modify.enable");
69+
mappings.put("commands.datapack.disable.success", "commands.datapack.modify.disable");
6870
}
6971

7072
@Override

common/src/main/java/com/viaversion/viaversion/protocols/v1_16_4to1_17/Protocol1_16_4To1_17.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,23 @@
3434
import com.viaversion.viaversion.protocols.v1_16_1to1_16_2.packet.ServerboundPackets1_16_2;
3535
import com.viaversion.viaversion.protocols.v1_16_4to1_17.packet.ClientboundPackets1_17;
3636
import com.viaversion.viaversion.protocols.v1_16_4to1_17.packet.ServerboundPackets1_17;
37+
import com.viaversion.viaversion.protocols.v1_16_4to1_17.rewriter.ComponentRewriter1_17;
3738
import com.viaversion.viaversion.protocols.v1_16_4to1_17.rewriter.EntityPacketRewriter1_17;
3839
import com.viaversion.viaversion.protocols.v1_16_4to1_17.rewriter.ItemPacketRewriter1_17;
3940
import com.viaversion.viaversion.protocols.v1_16_4to1_17.rewriter.WorldPacketRewriter1_17;
4041
import com.viaversion.viaversion.rewriter.ParticleRewriter;
4142
import com.viaversion.viaversion.rewriter.SoundRewriter;
4243
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
4344
import com.viaversion.viaversion.rewriter.TagRewriter;
45+
import org.checkerframework.checker.nullness.qual.Nullable;
4446

4547
public final class Protocol1_16_4To1_17 extends AbstractProtocol<ClientboundPackets1_16_2, ClientboundPackets1_17, ServerboundPackets1_16_2, ServerboundPackets1_17> {
4648

4749
public static final MappingData MAPPINGS = new MappingDataBase("1.16.2", "1.17");
4850
private final EntityPacketRewriter1_17 entityRewriter = new EntityPacketRewriter1_17(this);
4951
private final ItemPacketRewriter1_17 itemRewriter = new ItemPacketRewriter1_17(this);
5052
private final ParticleRewriter<ClientboundPackets1_16_2> particleRewriter = new ParticleRewriter<>(this);
53+
private final ComponentRewriter1_17 componentRewriter = new ComponentRewriter1_17(this);
5154
private final TagRewriter<ClientboundPackets1_16_2> tagRewriter = new TagRewriter<>(this);
5255

5356
public Protocol1_16_4To1_17() {
@@ -84,6 +87,13 @@ protected void registerPackets() {
8487

8588
new StatisticsRewriter<>(this).register(ClientboundPackets1_16_2.AWARD_STATS);
8689

90+
componentRewriter.registerComponentPacket(ClientboundPackets1_16_2.CHAT);
91+
componentRewriter.registerBossEvent(ClientboundPackets1_16_2.BOSS_EVENT);
92+
componentRewriter.registerComponentPacket(ClientboundPackets1_16_2.DISCONNECT);
93+
componentRewriter.registerTabList(ClientboundPackets1_16_2.TAB_LIST);
94+
componentRewriter.registerOpenScreen1_14(ClientboundPackets1_16_2.OPEN_SCREEN);
95+
componentRewriter.registerPing();
96+
8797
SoundRewriter<ClientboundPackets1_16_2> soundRewriter = new SoundRewriter<>(this);
8898
soundRewriter.registerSound(ClientboundPackets1_16_2.SOUND);
8999
soundRewriter.registerSound(ClientboundPackets1_16_2.SOUND_ENTITY);
@@ -133,6 +143,9 @@ protected void registerPackets() {
133143
default -> throw new IllegalArgumentException("Invalid title type received: " + type);
134144
}
135145

146+
if (type < 3) {
147+
componentRewriter.processText(wrapper.user(), wrapper.passthrough(Types.COMPONENT));
148+
}
136149
wrapper.setPacketType(packetType);
137150
});
138151

@@ -217,6 +230,11 @@ public ParticleRewriter<ClientboundPackets1_16_2> getParticleRewriter() {
217230
return particleRewriter;
218231
}
219232

233+
@Override
234+
public @Nullable ComponentRewriter1_17 getComponentRewriter() {
235+
return componentRewriter;
236+
}
237+
220238
@Override
221239
public TagRewriter<ClientboundPackets1_16_2> getTagRewriter() {
222240
return tagRewriter;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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_16_4to1_17.rewriter;
19+
20+
import com.google.gson.JsonObject;
21+
import com.viaversion.viaversion.api.protocol.Protocol;
22+
import com.viaversion.viaversion.protocols.v1_16_1to1_16_2.packet.ClientboundPackets1_16_2;
23+
import com.viaversion.viaversion.rewriter.text.JsonNBTComponentRewriter;
24+
import java.util.HashMap;
25+
import java.util.Map;
26+
27+
public final class ComponentRewriter1_17 extends JsonNBTComponentRewriter<ClientboundPackets1_16_2> {
28+
29+
private final Map<String, String> mappings = new HashMap<>();
30+
31+
public ComponentRewriter1_17(final Protocol<ClientboundPackets1_16_2, ?, ?, ?> protocol) {
32+
super(protocol, ReadType.JSON);
33+
mappings.put("commands.worldborder.set.failed.small.", "commands.worldborder.set.failed.small");
34+
mappings.put("commands.worldborder.set.failed.big.", "commands.worldborder.set.failed.big");
35+
mappings.put("commands.replaceitem.slot.inapplicable", "commands.item.target.no_such_slot");
36+
mappings.put("commands.replaceitem.block.failed", "The target block is not a container");
37+
mappings.put("commands.replaceitem.entity.success.single", "commands.item.entity.set.success.single");
38+
mappings.put("commands.replaceitem.block.success", "commands.item.block.set.success");
39+
mappings.put("commands.debug.reportSaved", "Created debug report in %s");
40+
mappings.put("commands.debug.reportFailed", "Failed to create debug report");
41+
}
42+
43+
@Override
44+
protected void handleTranslate(final JsonObject object, final String translate) {
45+
String mappedTranslation = mappings.get(translate);
46+
if (mappedTranslation != null) {
47+
object.addProperty("translate", mappedTranslation);
48+
}
49+
}
50+
}

common/src/main/java/com/viaversion/viaversion/protocols/v1_16_4to1_17/rewriter/EntityPacketRewriter1_17.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ public void register() {
157157
default -> throw new IllegalArgumentException("Invalid combat type received: " + type);
158158
};
159159

160+
if (type == 2) {
161+
wrapper.passthrough(Types.VAR_INT); // Duration/Player id
162+
wrapper.passthrough(Types.INT); // Killer id
163+
protocol.getComponentRewriter().processText(wrapper.user(), wrapper.passthrough(Types.COMPONENT));
164+
}
160165
wrapper.setPacketType(packetType);
161166
});
162167

common/src/main/java/com/viaversion/viaversion/protocols/v1_17_1to1_18/Protocol1_17_1To1_18.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
3131
import com.viaversion.viaversion.protocols.v1_16_4to1_17.packet.ServerboundPackets1_17;
3232
import com.viaversion.viaversion.protocols.v1_17_1to1_18.packet.ClientboundPackets1_18;
33+
import com.viaversion.viaversion.protocols.v1_17_1to1_18.rewriter.ComponentRewriter1_18;
3334
import com.viaversion.viaversion.protocols.v1_17_1to1_18.rewriter.EntityPacketRewriter1_18;
3435
import com.viaversion.viaversion.protocols.v1_17_1to1_18.rewriter.ItemPacketRewriter1_18;
3536
import com.viaversion.viaversion.protocols.v1_17_1to1_18.rewriter.WorldPacketRewriter1_18;
@@ -48,6 +49,7 @@ public final class Protocol1_17_1To1_18 extends AbstractProtocol<ClientboundPack
4849
private final EntityPacketRewriter1_18 entityRewriter = new EntityPacketRewriter1_18(this);
4950
private final ItemPacketRewriter1_18 itemRewriter = new ItemPacketRewriter1_18(this);
5051
private final ParticleRewriter<ClientboundPackets1_17_1> particleRewriter = new ParticleRewriter<>(this);
52+
private final ComponentRewriter1_18 componentRewriter = new ComponentRewriter1_18(this);
5153
private final TagRewriter<ClientboundPackets1_17_1> tagRewriter = new TagRewriter<>(this);
5254

5355
public Protocol1_17_1To1_18() {
@@ -68,6 +70,17 @@ protected void registerPackets() {
6870

6971
new StatisticsRewriter<>(this).register(ClientboundPackets1_17_1.AWARD_STATS);
7072

73+
componentRewriter.registerComponentPacket(ClientboundPackets1_17_1.CHAT);
74+
componentRewriter.registerComponentPacket(ClientboundPackets1_17_1.SET_ACTION_BAR_TEXT);
75+
componentRewriter.registerComponentPacket(ClientboundPackets1_17_1.SET_TITLE_TEXT);
76+
componentRewriter.registerComponentPacket(ClientboundPackets1_17_1.SET_SUBTITLE_TEXT);
77+
componentRewriter.registerBossEvent(ClientboundPackets1_17_1.BOSS_EVENT);
78+
componentRewriter.registerComponentPacket(ClientboundPackets1_17_1.DISCONNECT);
79+
componentRewriter.registerTabList(ClientboundPackets1_17_1.TAB_LIST);
80+
componentRewriter.registerOpenScreen1_14(ClientboundPackets1_17_1.OPEN_SCREEN);
81+
componentRewriter.registerPlayerCombatKill(ClientboundPackets1_17_1.PLAYER_COMBAT_KILL);
82+
componentRewriter.registerPing();
83+
7184
registerServerbound(ServerboundPackets1_17.CLIENT_INFORMATION, new PacketHandlers() {
7285
@Override
7386
public void register() {
@@ -130,6 +143,11 @@ public ParticleRewriter<ClientboundPackets1_17_1> getParticleRewriter() {
130143
return particleRewriter;
131144
}
132145

146+
@Override
147+
public ComponentRewriter1_18 getComponentRewriter() {
148+
return componentRewriter;
149+
}
150+
133151
@Override
134152
public TagRewriter<ClientboundPackets1_17_1> getTagRewriter() {
135153
return tagRewriter;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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_17_1to1_18.rewriter;
19+
20+
import com.google.gson.JsonObject;
21+
import com.viaversion.viaversion.api.protocol.Protocol;
22+
import com.viaversion.viaversion.protocols.v1_17to1_17_1.packet.ClientboundPackets1_17_1;
23+
import com.viaversion.viaversion.rewriter.text.JsonNBTComponentRewriter;
24+
25+
public final class ComponentRewriter1_18 extends JsonNBTComponentRewriter<ClientboundPackets1_17_1> {
26+
27+
public ComponentRewriter1_18(final Protocol<ClientboundPackets1_17_1, ?, ?, ?> protocol) {
28+
super(protocol, ReadType.JSON);
29+
}
30+
31+
@Override
32+
protected void handleTranslate(final JsonObject object, final String translate) {
33+
if (translate.equals("commands.scoreboard.objectives.add.longName")) {
34+
object.addProperty("translate", "Objective names cannot be longer than %s characters");
35+
} else if (translate.equals("commands.team.add.longName")) {
36+
object.addProperty("translate", "Team names cannot be longer than %s characters");
37+
}
38+
}
39+
}

0 commit comments

Comments
 (0)