From 4e40823d236457cc58e414e879eef0d4a51075a7 Mon Sep 17 00:00:00 2001 From: Phoenix616 Date: Fri, 4 Dec 2020 14:53:27 +0100 Subject: [PATCH] Fix ShowItem incompatibility as well as update adventure --- pom.xml | 2 +- src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8706960..20cb5d4 100644 --- a/pom.xml +++ b/pom.xml @@ -98,7 +98,7 @@ net.kyori adventure-text-serializer-gson - 4.2.0 + 4.3.0 compile diff --git a/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java b/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java index 0440720..68fe312 100644 --- a/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java +++ b/src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java @@ -10,6 +10,9 @@ import de.themoep.ShowItem.api.ShowItem; import de.themoep.minedown.adventure.Replacer; import info.somethingodd.OddItem.OddItem; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.ComponentBuilder; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConstructor; @@ -537,10 +540,10 @@ public class MaterialUtil { return false; } - Component itemComponent = Component.empty(); + TextComponent.Builder itemComponent = Component.text(); for (ItemStack item : InventoryUtil.mergeSimilarStacks(stock)) { try { - itemComponent.append(showItem.getItemConverter().createComponent(item, Level.FINE).toTextComponent(player)); + itemComponent.append(GsonComponentSerializer.gson().deserialize(showItem.getItemConverter().createComponent(item, Level.FINE).toJsonString(player))); } catch (Exception e) { ChestShop.getPlugin().getLogger().log(Level.WARNING, "Error while trying to send message '" + message + "' to player " + player.getName() + ": " + e.getMessage()); return false; @@ -551,7 +554,7 @@ public class MaterialUtil { newMap.put("material", "item"); Component component = new Replacer() .placeholderSuffix("") - .replace("item",itemComponent) + .replace("item",itemComponent.build()) .replaceIn(message.getComponent(player, true, newMap, replacements)); if (player != null) { ChestShop.getAudiences().player(player).sendMessage(component);