Skip to content

Commit 88b7f58

Browse files
authored
Merge pull request #29 from PaperMC/dev/3.0.0
[pull] main from PaperMC:dev/3.0.0
2 parents 3b322c5 + b411a0f commit 88b7f58

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public boolean isSupported() {
9090
MINECRAFT_1_21(767, "1.21", "1.21.1"),
9191
MINECRAFT_1_21_2(768, "1.21.2", "1.21.3"),
9292
MINECRAFT_1_21_4(769, "1.21.4"),
93-
MINECRAFT_1_21_5(770, /*1073742067,*/ "1.21.5");
93+
MINECRAFT_1_21_5(770, "1.21.5");
9494

9595
private static final int SNAPSHOT_BIT = 30;
9696

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ shadow = "io.github.goooler.shadow:8.1.5"
1111
spotless = "com.diffplug.spotless:6.25.0"
1212

1313
[libraries]
14-
adventure-bom = "net.kyori:adventure-bom:4.20.0"
15-
adventure-text-serializer-json-legacy-impl = "net.kyori:adventure-text-serializer-json-legacy-impl:4.20.0"
14+
adventure-bom = "net.kyori:adventure-bom:4.21.0"
15+
adventure-text-serializer-json-legacy-impl = "net.kyori:adventure-text-serializer-json-legacy-impl:4.21.0"
1616
adventure-facet = "net.kyori:adventure-platform-facet:4.3.4"
1717
asm = "org.ow2.asm:asm:9.7.1"
1818
auto-service = "com.google.auto.service:auto-service:1.0.1"

proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
4848
import net.kyori.adventure.text.serializer.json.JSONOptions;
4949
import net.kyori.adventure.text.serializer.json.legacyimpl.NBTLegacyHoverEventSerializer;
50-
import net.kyori.option.OptionState;
50+
import net.kyori.option.OptionSchema;
5151

5252
/**
5353
* Utilities for writing and reading data in the Minecraft protocol.
@@ -60,10 +60,10 @@ public enum ProtocolUtils {
6060
.downsampleColors()
6161
.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get())
6262
.options(
63-
OptionState.optionState()
63+
OptionSchema.globalSchema().stateBuilder()
6464
// before 1.16
6565
.value(JSONOptions.EMIT_RGB, Boolean.FALSE)
66-
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.LEGACY_ONLY)
66+
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.VALUE_FIELD)
6767
// before 1.20.3
6868
.value(JSONOptions.EMIT_COMPACT_TEXT_COMPONENT, Boolean.FALSE)
6969
.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, Boolean.FALSE)
@@ -75,28 +75,48 @@ public enum ProtocolUtils {
7575
GsonComponentSerializer.builder()
7676
.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get())
7777
.options(
78-
OptionState.optionState()
78+
OptionSchema.globalSchema().stateBuilder()
7979
// after 1.16
8080
.value(JSONOptions.EMIT_RGB, Boolean.TRUE)
81-
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.MODERN_ONLY)
81+
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.CAMEL_CASE)
82+
.value(JSONOptions.EMIT_CLICK_EVENT_TYPE, JSONOptions.ClickEventValueMode.CAMEL_CASE)
8283
// before 1.20.3
8384
.value(JSONOptions.EMIT_COMPACT_TEXT_COMPONENT, Boolean.FALSE)
8485
.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, Boolean.FALSE)
8586
.value(JSONOptions.VALIDATE_STRICT_EVENTS, Boolean.FALSE)
8687
.build()
8788
)
8889
.build();
90+
private static final GsonComponentSerializer PRE_1_21_5_SERIALIZER =
91+
GsonComponentSerializer.builder()
92+
.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get())
93+
.options(
94+
OptionSchema.globalSchema().stateBuilder()
95+
// after 1.16
96+
.value(JSONOptions.EMIT_RGB, Boolean.TRUE)
97+
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.CAMEL_CASE)
98+
.value(JSONOptions.EMIT_CLICK_EVENT_TYPE, JSONOptions.ClickEventValueMode.CAMEL_CASE)
99+
// after 1.20.3
100+
.value(JSONOptions.EMIT_COMPACT_TEXT_COMPONENT, Boolean.TRUE)
101+
.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, Boolean.TRUE)
102+
.value(JSONOptions.VALIDATE_STRICT_EVENTS, Boolean.TRUE)
103+
.build()
104+
)
105+
.build();
89106
private static final GsonComponentSerializer MODERN_SERIALIZER =
90107
GsonComponentSerializer.builder()
91108
.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get())
92109
.options(
93-
OptionState.optionState()
110+
OptionSchema.globalSchema().stateBuilder()
94111
// after 1.16
95112
.value(JSONOptions.EMIT_RGB, Boolean.TRUE)
96-
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.MODERN_ONLY)
113+
.value(JSONOptions.EMIT_HOVER_EVENT_TYPE, JSONOptions.HoverEventValueMode.SNAKE_CASE)
114+
.value(JSONOptions.EMIT_CLICK_EVENT_TYPE, JSONOptions.ClickEventValueMode.SNAKE_CASE)
97115
// after 1.20.3
98116
.value(JSONOptions.EMIT_COMPACT_TEXT_COMPONENT, Boolean.TRUE)
99117
.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY, Boolean.TRUE)
118+
// after 1.21.5
119+
.value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_KEY_AS_TYPE_AND_UUID_AS_ID, Boolean.FALSE)
100120
.value(JSONOptions.VALIDATE_STRICT_EVENTS, Boolean.TRUE)
101121
.build()
102122
)
@@ -713,9 +733,12 @@ public static String readStringWithoutLength(ByteBuf buf) {
713733
* @return the appropriate {@link GsonComponentSerializer}
714734
*/
715735
public static GsonComponentSerializer getJsonChatSerializer(ProtocolVersion version) {
716-
if (version.noLessThan(ProtocolVersion.MINECRAFT_1_20_3)) {
736+
if (version.noLessThan(ProtocolVersion.MINECRAFT_1_21_5)) {
717737
return MODERN_SERIALIZER;
718738
}
739+
if (version.noLessThan(ProtocolVersion.MINECRAFT_1_20_3)) {
740+
return PRE_1_21_5_SERIALIZER;
741+
}
719742
if (version.noLessThan(ProtocolVersion.MINECRAFT_1_16)) {
720743
return PRE_1_20_3_SERIALIZER;
721744
}

0 commit comments

Comments
 (0)