From 041c5413566600081067b4b6017da89b0e60e055 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Fri, 5 Dec 2025 17:12:08 +0100 Subject: [PATCH] (1.8.2) Fix translating system for 1.21.4 --- build.gradle | 2 +- .../smoderation/paper/inventory/CustomInventory.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 24fcee9..4034d8e 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ runPaper { } runServer { - minecraftVersion("1.21.4") + minecraftVersion("1.21.10") downloadPlugins { // for testing from other client versions modrinth("ViaVersion", "5.5.1") diff --git a/src/main/java/de/shiewk/smoderation/paper/inventory/CustomInventory.java b/src/main/java/de/shiewk/smoderation/paper/inventory/CustomInventory.java index 925c55f..bed4e33 100644 --- a/src/main/java/de/shiewk/smoderation/paper/inventory/CustomInventory.java +++ b/src/main/java/de/shiewk/smoderation/paper/inventory/CustomInventory.java @@ -1,5 +1,6 @@ package de.shiewk.smoderation.paper.inventory; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.translation.GlobalTranslator; @@ -9,6 +10,8 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; +import java.util.List; + public interface CustomInventory extends InventoryHolder { void refresh(); @@ -26,6 +29,13 @@ public interface CustomInventory extends InventoryHolder { } static Component renderComponent(Player viewer, Component component){ - return GlobalTranslator.render(component.children(component.children().stream().map(c -> renderComponent(viewer, c)).toList()), viewer.locale()); + Component render = GlobalTranslator.render(component, viewer.locale()); + List oldChildren = render.children(); + List newChildren = new ObjectArrayList<>(oldChildren.size()); + for (Component oldChild : oldChildren) { + Component e = renderComponent(viewer, oldChild); + newChildren.add(e); + } + return render.children(newChildren); } }