Skip to content

Commit 5f0611f

Browse files
Switch all ping passthroughs to json to avoid parsing warning (#5363)
1 parent ba87207 commit 5f0611f

File tree

6 files changed

+20
-10
lines changed

6 files changed

+20
-10
lines changed

bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePingPassthrough.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
package org.geysermc.geyser.platform.bungeecord;
2727

2828
import lombok.AllArgsConstructor;
29+
import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer;
30+
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
2931
import net.md_5.bungee.api.ProxyServer;
3032
import net.md_5.bungee.api.ServerPing;
3133
import net.md_5.bungee.api.chat.BaseComponent;
@@ -74,7 +76,7 @@ public GeyserPingInfo getPingInformation(InetSocketAddress inetSocketAddress) {
7476

7577
ServerPing response = event.getResponse();
7678
return new GeyserPingInfo(
77-
response.getDescriptionComponent().toLegacyText(),
79+
GsonComponentSerializer.gson().serialize(BungeeComponentSerializer.get().deserialize(new BaseComponent[]{ response.getDescriptionComponent() })),
7880
response.getPlayers().getMax(),
7981
response.getPlayers().getOnline()
8082
);

bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/ModPingPassthrough.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,8 @@ public GeyserPingInfo getPingInformation(InetSocketAddress inetSocketAddress) {
8080
}
8181
}
8282

83-
String jsonDescription = net.minecraft.network.chat.Component.Serializer.toJson(status.description(), RegistryAccess.EMPTY);
84-
String legacyDescription = LEGACY_SERIALIZER.serialize(GSON_SERIALIZER.deserializeOr(jsonDescription, Component.empty()));
85-
8683
return new GeyserPingInfo(
87-
legacyDescription,
84+
net.minecraft.network.chat.Component.Serializer.toJson(status.description(), RegistryAccess.EMPTY),
8885
status.players().map(ServerStatus.Players::max).orElse(1),
8986
status.players().map(ServerStatus.Players::online).orElse(0)
9087
);

bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserPaperPingPassthrough.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
import com.destroystokyo.paper.event.server.PaperServerListPingEvent;
2929
import com.destroystokyo.paper.network.StatusClient;
30+
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
31+
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
3032
import org.bukkit.Bukkit;
3133
import org.checkerframework.checker.nullness.qual.NonNull;
3234
import org.checkerframework.checker.nullness.qual.Nullable;
@@ -81,7 +83,10 @@ public GeyserPingInfo getPingInformation(InetSocketAddress inetSocketAddress) {
8183
players = new GeyserPingInfo.Players(event.getMaxPlayers(), event.getNumPlayers());
8284
}
8385

84-
return new GeyserPingInfo(event.getMotd(), players);
86+
return new GeyserPingInfo(
87+
GsonComponentSerializer.gson().serialize(LegacyComponentSerializer.legacySection().deserialize(event.getMotd())),
88+
players
89+
);
8590
} catch (Exception | LinkageError e) { // LinkageError in the event that method/constructor signatures change
8691
logger.debug("Error while getting Paper ping passthrough: " + e);
8792
return null;

bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPingPassthrough.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
package org.geysermc.geyser.platform.spigot;
2727

2828
import lombok.AllArgsConstructor;
29+
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
30+
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
2931
import org.bukkit.Bukkit;
3032
import org.bukkit.entity.Player;
3133
import org.bukkit.event.server.ServerListPingEvent;
@@ -52,7 +54,11 @@ public class GeyserSpigotPingPassthrough implements IGeyserPingPassthrough {
5254
try {
5355
ServerListPingEvent event = new GeyserPingEvent(inetSocketAddress.getAddress(), Bukkit.getMotd(), Bukkit.getOnlinePlayers().size(), Bukkit.getMaxPlayers());
5456
Bukkit.getPluginManager().callEvent(event);
55-
return new GeyserPingInfo(event.getMotd(), event.getMaxPlayers(), event.getNumPlayers());
57+
return new GeyserPingInfo(
58+
GsonComponentSerializer.gson().serialize(LegacyComponentSerializer.legacySection().deserialize(event.getMotd())),
59+
event.getMaxPlayers(),
60+
event.getNumPlayers()
61+
);
5662
} catch (Exception | LinkageError e) { // LinkageError in the event that method/constructor signatures change
5763
logger.debug("Error while getting Bukkit ping passthrough: " + e);
5864
return null;

bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/GeyserVelocityPingPassthrough.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import com.velocitypowered.api.proxy.server.ServerPing;
3434
import com.velocitypowered.api.proxy.server.ServerPing.Version;
3535
import lombok.AllArgsConstructor;
36-
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
36+
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
3737
import org.geysermc.geyser.network.GameProtocol;
3838
import org.geysermc.geyser.ping.GeyserPingInfo;
3939
import org.geysermc.geyser.ping.IGeyserPingPassthrough;
@@ -60,7 +60,7 @@ public GeyserPingInfo getPingInformation(InetSocketAddress inetSocketAddress) {
6060
throw new RuntimeException(e);
6161
}
6262
return new GeyserPingInfo(
63-
LegacyComponentSerializer.legacy('§').serialize(event.getPing().getDescriptionComponent()),
63+
GsonComponentSerializer.gson().serialize(event.getPing().getDescriptionComponent()),
6464
event.getPing().getPlayers().map(ServerPing.Players::getMax).orElse(1),
6565
event.getPing().getPlayers().map(ServerPing.Players::getOnline).orElse(0)
6666
);

bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/command/VelocityCommandSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public String name() {
6060

6161
@Override
6262
public void sendMessage(@NonNull String message) {
63-
handle.sendMessage(LegacyComponentSerializer.legacy('§').deserialize(message));
63+
handle.sendMessage(LegacyComponentSerializer.legacySection().deserialize(message));
6464
}
6565

6666
@Override

0 commit comments

Comments
 (0)