diff --git a/.jenkins/Jenkinsfile.snapshot b/.jenkins/Jenkinsfile.snapshot index 35661da..544e834 100644 --- a/.jenkins/Jenkinsfile.snapshot +++ b/.jenkins/Jenkinsfile.snapshot @@ -3,7 +3,7 @@ def projectIcon = "https://cdn.modrinth.com/data/Nn8Wasaq/a172c634683a11a2e9ae59 def JDK = "21"; def majorMc = "1.21.6"; def modLoaders = "neoforge|fabric|quilt|paper"; -def supportedMc = "25w17a"; +def supportedMc = "25w19a"; def reltype = "experimental"; pipeline { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/utils/ChatUtils.java b/Common/src/main/java/com/hypherionmc/craterlib/utils/ChatUtils.java index 48ba60c..73e24ee 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/utils/ChatUtils.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/utils/ChatUtils.java @@ -1,8 +1,11 @@ package com.hypherionmc.craterlib.utils; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; import com.hypherionmc.craterlib.core.platform.CommonPlatform; import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment; import com.hypherionmc.craterlib.nojang.resources.ResourceIdentifier; +import com.mojang.serialization.JsonOps; import lombok.Getter; import me.hypherionmc.mcdiscordformatter.discord.DiscordSerializer; import me.hypherionmc.mcdiscordformatter.minecraft.MinecraftSerializer; @@ -19,7 +22,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; import net.minecraft.network.chat.Style; +import net.minecraft.util.StrictJsonParser; public class ChatUtils { @@ -31,14 +36,22 @@ public class ChatUtils { private static final MiniMessage miniMessage = MiniMessage.miniMessage(); public static Component adventureToMojang(net.kyori.adventure.text.Component inComponent) { - final String serialised = adventureSerializer.serialize(inComponent); - return Component.Serializer.fromJson(serialised, getRegistryLookup()); + final JsonElement serialised = adventureSerializer.serializeToTree(inComponent); + + // FUCK YOU MOJANG. SERIOUSLY. FUCK OFF WITH THIS SHIT + return ComponentSerialization.CODEC + .parse(getRegistryLookup().createSerializationContext(JsonOps.INSTANCE), serialised) + .getOrThrow(JsonParseException::new); } public static net.kyori.adventure.text.Component mojangToAdventure(Component inComponent) { try { - final String serialised = Component.Serializer.toJson(inComponent, getRegistryLookup()); - return adventureSerializer.deserialize(serialised); + // FUCK YOU MOJANG. SERIOUSLY. FUCK OFF WITH THIS SHIT + final JsonElement serialised = ComponentSerialization.CODEC + .encodeStart(JsonOps.INSTANCE, inComponent) + .getOrThrow(JsonParseException::new); + + return adventureSerializer.deserializeFromTree(serialised); } catch (Exception e) { return net.kyori.adventure.text.Component.text(inComponent.getString()); } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/CraterFabricNetworkHandler.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/CraterFabricNetworkHandler.java index cd8740b..2227737 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/network/CraterFabricNetworkHandler.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/CraterFabricNetworkHandler.java @@ -38,7 +38,7 @@ public class CraterFabricNetworkHandler extends PacketRegistry { } ServerPlayNetworking.registerGlobalReceiver(holder.getType(), - (ServerPlayNetworking.PlayPayloadHandler>) (payload, context) -> context.player().server.execute(() -> + (ServerPlayNetworking.PlayPayloadHandler>) (payload, context) -> context.player().getServer().execute(() -> holder.handler().accept( new PacketContext<>(BridgedPlayer.of(context.player()), payload.packet(), side)))); } diff --git a/gradle.properties b/gradle.properties index abd5b51..eaa67bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ mod_id=craterlib mod_name=CraterLib # Shared -minecraft_version=25w17a +minecraft_version=25w19a project_group=com.hypherionmc.craterlib # Fabric