From 749bd35a26be3e500ccd6874ed0c97d7493985fd Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Mon, 13 Jun 2022 16:07:21 +0200 Subject: [PATCH] Support for kyori adventure components --- InvUI/pom.xml | 5 +++ .../studiocode/invui/gui/impl/ScrollGUI.java | 1 - .../invui/item/builder/BaseItemBuilder.java | 40 ++++++++++++++----- .../de/studiocode/invui/window/Window.java | 8 ++++ .../invui/window/impl/BaseWindow.java | 13 ++++-- .../window/impl/merged/MergedWindow.java | 4 +- .../impl/merged/combined/CombinedWindow.java | 4 +- .../merged/combined/SimpleCombinedWindow.java | 20 +++++++--- .../impl/merged/split/AnvilSplitWindow.java | 12 +++++- .../merged/split/CartographySplitWindow.java | 36 +++++++++++------ .../impl/merged/split/SimpleSplitWindow.java | 12 +++++- .../window/impl/merged/split/SplitWindow.java | 4 +- .../invui/window/impl/single/AnvilWindow.java | 20 +++++++--- .../window/impl/single/CartographyWindow.java | 36 +++++++++++------ .../window/impl/single/SimpleWindow.java | 26 ++++++++++-- .../window/impl/single/SingleWindow.java | 4 +- .../r1/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r1/util/InventoryUtilsImpl.java | 13 +++--- .../r1/util/ItemUtilsImpl.java | 6 +-- .../r1/util/PlayerUtilsImpl.java | 2 +- .../r10/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r10/util/InventoryUtilsImpl.java | 16 ++++---- .../r10/util/ItemUtilsImpl.java | 11 +++-- .../r10/util/PlayerUtilsImpl.java | 6 +-- .../r2/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r2/util/InventoryUtilsImpl.java | 13 +++--- .../r2/util/ItemUtilsImpl.java | 6 +-- .../r2/util/PlayerUtilsImpl.java | 2 +- .../r3/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r3/util/InventoryUtilsImpl.java | 13 +++--- .../r3/util/ItemUtilsImpl.java | 6 +-- .../r3/util/PlayerUtilsImpl.java | 2 +- .../r4/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r4/util/InventoryUtilsImpl.java | 13 +++--- .../r4/util/ItemUtilsImpl.java | 6 +-- .../r4/util/PlayerUtilsImpl.java | 2 +- .../r5/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r5/util/InventoryUtilsImpl.java | 13 +++--- .../r5/util/ItemUtilsImpl.java | 11 +++-- .../r5/util/PlayerUtilsImpl.java | 2 +- .../r6/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r6/util/InventoryUtilsImpl.java | 16 ++++---- .../r6/util/ItemUtilsImpl.java | 11 +++-- .../r6/util/PlayerUtilsImpl.java | 6 +-- .../r7/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r7/util/InventoryUtilsImpl.java | 16 ++++---- .../r7/util/ItemUtilsImpl.java | 11 +++-- .../r7/util/PlayerUtilsImpl.java | 6 +-- .../r8/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r8/util/InventoryUtilsImpl.java | 16 ++++---- .../r8/util/ItemUtilsImpl.java | 11 +++-- .../r8/util/PlayerUtilsImpl.java | 6 +-- .../r9/inventory/AnvilInventoryImpl.java | 4 +- .../inventory/CartographyInventoryImpl.java | 4 +- .../r9/util/InventoryUtilsImpl.java | 16 ++++---- .../r9/util/ItemUtilsImpl.java | 11 +++-- .../r9/util/PlayerUtilsImpl.java | 6 +-- InventoryAccess/IA/pom.xml | 19 +++++++++ .../abstraction/util/InventoryUtils.java | 7 ++-- .../abstraction/util/ItemUtils.java | 10 ++--- .../abstraction/util/PlayerUtils.java | 4 +- .../component/AdventureComponentWrapper.java | 19 +++++++++ .../component/BaseComponentWrapper.java | 19 +++++++++ .../component/ComponentWrapper.java | 7 ++++ .../inventoryaccess/map/MapIcon.java | 18 ++++++--- .../version/InventoryAccess.java | 14 +++---- .../invui/resourcepack/ForceResourcePack.java | 31 ++++++++++++-- 76 files changed, 470 insertions(+), 278 deletions(-) create mode 100644 InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/AdventureComponentWrapper.java create mode 100644 InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/BaseComponentWrapper.java create mode 100644 InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/ComponentWrapper.java diff --git a/InvUI/pom.xml b/InvUI/pom.xml index 3f68a77..d7abda9 100644 --- a/InvUI/pom.xml +++ b/InvUI/pom.xml @@ -87,6 +87,11 @@ IA-R9 0.7-SNAPSHOT + + de.studiocode.invui + IA-R10 + 0.7-SNAPSHOT + \ No newline at end of file diff --git a/InvUI/src/main/java/de/studiocode/invui/gui/impl/ScrollGUI.java b/InvUI/src/main/java/de/studiocode/invui/gui/impl/ScrollGUI.java index 74f6e33..8ebe416 100644 --- a/InvUI/src/main/java/de/studiocode/invui/gui/impl/ScrollGUI.java +++ b/InvUI/src/main/java/de/studiocode/invui/gui/impl/ScrollGUI.java @@ -2,7 +2,6 @@ package de.studiocode.invui.gui.impl; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.SlotElement; -import de.studiocode.invui.gui.structure.Markers; import de.studiocode.invui.gui.structure.Structure; import de.studiocode.invui.util.SlotUtils; diff --git a/InvUI/src/main/java/de/studiocode/invui/item/builder/BaseItemBuilder.java b/InvUI/src/main/java/de/studiocode/invui/item/builder/BaseItemBuilder.java index 5a5ce26..48b9d94 100644 --- a/InvUI/src/main/java/de/studiocode/invui/item/builder/BaseItemBuilder.java +++ b/InvUI/src/main/java/de/studiocode/invui/item/builder/BaseItemBuilder.java @@ -1,5 +1,7 @@ package de.studiocode.invui.item.builder; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.version.InventoryAccess; import de.studiocode.invui.item.ItemProvider; import de.studiocode.invui.util.ComponentUtils; @@ -26,8 +28,8 @@ abstract class BaseItemBuilder implements ItemProvider { protected int amount = 1; protected int damage; protected int customModelData; - protected BaseComponent[] displayName; - protected List lore; + protected ComponentWrapper displayName; + protected List lore; protected List itemFlags; protected HashMap> enchantments; protected List> modifiers; @@ -142,7 +144,7 @@ abstract class BaseItemBuilder implements ItemProvider { public T setLegacyLore(@NotNull List lore) { this.lore = lore.stream() - .map(ComponentUtils::withoutPreFormatting) + .map(line -> new BaseComponentWrapper(ComponentUtils.withoutPreFormatting(line))) .collect(Collectors.toList()); return getThis(); } @@ -151,14 +153,27 @@ abstract class BaseItemBuilder implements ItemProvider { if (lore == null) lore = new ArrayList<>(); for (String line : lines) - lore.add(ComponentUtils.withoutPreFormatting(line)); + lore.add(new BaseComponentWrapper(ComponentUtils.withoutPreFormatting(line))); return getThis(); } public T addLoreLines(@NotNull BaseComponent[]... lines) { if (lore == null) lore = new ArrayList<>(); - lore.addAll(Arrays.stream(lines).map(ComponentUtils::withoutPreFormatting).collect(Collectors.toList())); + lore.addAll( + Arrays.stream(lines) + .map(line -> new BaseComponentWrapper(ComponentUtils.withoutPreFormatting(line))) + .collect(Collectors.toList()) + ); + + return getThis(); + } + + public T addLoreLines(@NotNull ComponentWrapper... lines) { + if (lore == null) lore = new ArrayList<>(); + + lore.addAll(Arrays.asList(lines)); + return getThis(); } @@ -257,25 +272,30 @@ abstract class BaseItemBuilder implements ItemProvider { return getThis(); } - public BaseComponent[] getDisplayName() { + public ComponentWrapper getDisplayName() { return displayName; } public T setDisplayName(String displayName) { - this.displayName = ComponentUtils.withoutPreFormatting(displayName); + this.displayName = new BaseComponentWrapper(ComponentUtils.withoutPreFormatting(displayName)); return getThis(); } public T setDisplayName(BaseComponent... displayName) { - this.displayName = ComponentUtils.withoutPreFormatting(displayName); + this.displayName = new BaseComponentWrapper(ComponentUtils.withoutPreFormatting(displayName)); return getThis(); } - public List getLore() { + public T setDisplayName(ComponentWrapper component) { + this.displayName = component; + return getThis(); + } + + public List getLore() { return lore; } - public T setLore(List lore) { + public T setLore(List lore) { this.lore = lore; return getThis(); } diff --git a/InvUI/src/main/java/de/studiocode/invui/window/Window.java b/InvUI/src/main/java/de/studiocode/invui/window/Window.java index 1063558..67253cd 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/Window.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/Window.java @@ -1,5 +1,6 @@ package de.studiocode.invui.window; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.GUIParent; import de.studiocode.invui.item.Item; @@ -176,6 +177,13 @@ public interface Window extends GUIParent { */ void setCloseable(boolean closeable); + /** + * Changes the title of the {@link Inventory}. + * + * @param title The new title + */ + void changeTitle(@NotNull ComponentWrapper title); + /** * Changes the title of the {@link Inventory}. * diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java index 2dee112..86a0e88 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java @@ -1,5 +1,7 @@ package de.studiocode.invui.window.impl; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.version.InventoryAccess; import de.studiocode.invui.InvUI; import de.studiocode.invui.gui.GUI; @@ -40,11 +42,11 @@ public abstract class BaseWindow implements Window { private final boolean removeOnClose; private final SlotElement[] elementsDisplayed; private final ArrayList closeHandlers = new ArrayList<>(); - private BaseComponent[] title; + private ComponentWrapper title; private boolean closeable; private boolean closed; - public BaseWindow(UUID viewerUUID, BaseComponent[] title, int size, boolean closeable, boolean removeOnClose) { + public BaseWindow(UUID viewerUUID, ComponentWrapper title, int size, boolean closeable, boolean removeOnClose) { this.viewerUUID = viewerUUID; this.title = title; this.closeable = closeable; @@ -252,7 +254,7 @@ public abstract class BaseWindow implements Window { } @Override - public void changeTitle(@NotNull BaseComponent[] title) { + public void changeTitle(@NotNull ComponentWrapper title) { this.title = title; Player currentViewer = getCurrentViewer(); if (currentViewer != null) { @@ -260,6 +262,11 @@ public abstract class BaseWindow implements Window { } } + @Override + public void changeTitle(@NotNull BaseComponent[] title) { + changeTitle(new BaseComponentWrapper(title)); + } + @Override public void changeTitle(@NotNull String title) { changeTitle(TextComponent.fromLegacyText(title)); diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/MergedWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/MergedWindow.java index b6067f8..a6be0aa 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/MergedWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/MergedWindow.java @@ -1,5 +1,6 @@ package de.studiocode.invui.window.impl.merged; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.version.InventoryAccess; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.SlotElement; @@ -7,7 +8,6 @@ import de.studiocode.invui.util.Pair; import de.studiocode.invui.util.SlotUtils; import de.studiocode.invui.window.Window; import de.studiocode.invui.window.impl.BaseWindow; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; @@ -28,7 +28,7 @@ public abstract class MergedWindow extends BaseWindow { protected Inventory upperInventory; private boolean isCurrentlyOpened; - public MergedWindow(Player player, BaseComponent[] title, int size, Inventory upperInventory, boolean closeable, boolean removeOnClose) { + public MergedWindow(Player player, ComponentWrapper title, int size, Inventory upperInventory, boolean closeable, boolean removeOnClose) { super(player.getUniqueId(), title, size, closeable, removeOnClose); this.upperInventory = upperInventory; this.playerInventory = player.getInventory(); diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/CombinedWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/CombinedWindow.java index deb8fe7..06b5a55 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/CombinedWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/CombinedWindow.java @@ -1,12 +1,12 @@ package de.studiocode.invui.window.impl.merged.combined; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.SlotElement; import de.studiocode.invui.util.Pair; import de.studiocode.invui.util.SlotUtils; import de.studiocode.invui.window.Window; import de.studiocode.invui.window.impl.merged.MergedWindow; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; @@ -18,7 +18,7 @@ public abstract class CombinedWindow extends MergedWindow { private final GUI gui; - public CombinedWindow(Player player, BaseComponent[] title, GUI gui, Inventory upperInventory, boolean closeable, boolean removeOnClose) { + public CombinedWindow(Player player, ComponentWrapper title, GUI gui, Inventory upperInventory, boolean closeable, boolean removeOnClose) { super(player, title, gui.getSize(), upperInventory, closeable, removeOnClose); this.gui = gui; diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/SimpleCombinedWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/SimpleCombinedWindow.java index cdb23be..cf63d97 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/SimpleCombinedWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/combined/SimpleCombinedWindow.java @@ -1,5 +1,7 @@ package de.studiocode.invui.window.impl.merged.combined; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; @@ -9,11 +11,23 @@ import org.bukkit.inventory.Inventory; public final class SimpleCombinedWindow extends CombinedWindow { - public SimpleCombinedWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + public SimpleCombinedWindow(Player player, ComponentWrapper title, GUI gui, boolean closeable, boolean removeOnClose) { super(player, title, gui, createInventory(gui), closeable, removeOnClose); register(); } + public SimpleCombinedWindow(Player player, ComponentWrapper title, GUI gui) { + this(player, title, gui, true, true); + } + + public SimpleCombinedWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + this(player, new BaseComponentWrapper(title), gui, closeable, removeOnClose); + } + + public SimpleCombinedWindow(Player player, BaseComponent[] title, GUI gui) { + this(player, title, gui, true, true); + } + public SimpleCombinedWindow(Player player, String title, GUI gui, boolean closeable, boolean removeOnClose) { this(player, TextComponent.fromLegacyText(title), gui, closeable, removeOnClose); } @@ -22,10 +36,6 @@ public final class SimpleCombinedWindow extends CombinedWindow { this(player, title, gui, true, true); } - public SimpleCombinedWindow(Player player, BaseComponent[] title, GUI gui) { - this(player, title, gui, true, true); - } - private static Inventory createInventory(GUI gui) { if (gui.getWidth() != 9) throw new IllegalArgumentException("GUI width has to be 9"); diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/AnvilSplitWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/AnvilSplitWindow.java index decfc5a..2fbac93 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/AnvilSplitWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/AnvilSplitWindow.java @@ -1,6 +1,8 @@ package de.studiocode.invui.window.impl.merged.split; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.version.InventoryAccess; import de.studiocode.invui.gui.GUI; import net.md_5.bungee.api.chat.BaseComponent; @@ -14,7 +16,7 @@ public final class AnvilSplitWindow extends SplitWindow { private final AnvilInventory anvilInventory; - public AnvilSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable, Consumer renameHandler) { + public AnvilSplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui, boolean closeable, Consumer renameHandler) { super(player, title, upperGui, lowerGui, null, false, closeable, true); anvilInventory = InventoryAccess.createAnvilInventory(player, title, renameHandler); @@ -24,6 +26,14 @@ public final class AnvilSplitWindow extends SplitWindow { register(); } + public AnvilSplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui, Consumer renameHandler) { + this(player, title, upperGui, lowerGui, true, renameHandler); + } + + public AnvilSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable, Consumer renameHandler) { + this(player, new BaseComponentWrapper(title), upperGui, lowerGui, closeable, renameHandler); + } + public AnvilSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, Consumer renameHandler) { this(player, title, upperGui, lowerGui, true, renameHandler); } diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/CartographySplitWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/CartographySplitWindow.java index 8112561..2e9d18f 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/CartographySplitWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/CartographySplitWindow.java @@ -1,6 +1,8 @@ package de.studiocode.invui.window.impl.merged.split; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.version.InventoryAccess; @@ -22,19 +24,7 @@ public final class CartographySplitWindow extends SplitWindow { private final CartographyInventory cartographyInventory; private int mapId; - public CartographySplitWindow(Player player, String title, GUI upperGui, GUI lowerGui) { - this(player, TextComponent.fromLegacyText(title), upperGui, lowerGui, true); - } - - public CartographySplitWindow(Player player, String title, GUI upperGui, GUI lowerGui, boolean closeable) { - this(player, TextComponent.fromLegacyText(title), upperGui, lowerGui, closeable); - } - - public CartographySplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui) { - this(player, title, upperGui, lowerGui, true); - } - - public CartographySplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable) { + public CartographySplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui, boolean closeable) { super(player, title, createWrappingGUI(upperGui), lowerGui, null, false, closeable, true); cartographyInventory = InventoryAccess.createCartographyInventory(player, title); @@ -45,6 +35,26 @@ public final class CartographySplitWindow extends SplitWindow { register(); } + public CartographySplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui) { + this(player, title, upperGui, lowerGui, true); + } + + public CartographySplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui) { + this(player, new BaseComponentWrapper(title), upperGui, lowerGui, true); + } + + public CartographySplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable) { + this(player, new BaseComponentWrapper(title), upperGui, lowerGui, closeable); + } + + public CartographySplitWindow(Player player, String title, GUI upperGui, GUI lowerGui) { + this(player, TextComponent.fromLegacyText(title), upperGui, lowerGui, true); + } + + public CartographySplitWindow(Player player, String title, GUI upperGui, GUI lowerGui, boolean closeable) { + this(player, TextComponent.fromLegacyText(title), upperGui, lowerGui, closeable); + } + private static GUI createWrappingGUI(GUI upperGui) { if (upperGui.getWidth() != 2 || upperGui.getHeight() != 1) throw new IllegalArgumentException("GUI has to be 2x1"); diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SimpleSplitWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SimpleSplitWindow.java index ae78a5a..a933a78 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SimpleSplitWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SimpleSplitWindow.java @@ -1,5 +1,7 @@ package de.studiocode.invui.window.impl.merged.split; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.util.InventoryUtils; import net.md_5.bungee.api.chat.BaseComponent; @@ -8,11 +10,19 @@ import org.bukkit.entity.Player; public final class SimpleSplitWindow extends SplitWindow { - public SimpleSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable, boolean removeOnClose) { + public SimpleSplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui, boolean closeable, boolean removeOnClose) { super(player, title, upperGui, lowerGui, InventoryUtils.createMatchingInventory(upperGui, ""), true, closeable, removeOnClose); register(); } + public SimpleSplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui) { + this(player, title, upperGui, lowerGui, true, true); + } + + public SimpleSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, boolean closeable, boolean removeOnClose) { + this(player, new BaseComponentWrapper(title), upperGui, lowerGui, closeable, removeOnClose); + } + public SimpleSplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui) { this(player, title, upperGui, lowerGui, true, true); } diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SplitWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SplitWindow.java index c57d6e6..21fa73b 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SplitWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/merged/split/SplitWindow.java @@ -1,12 +1,12 @@ package de.studiocode.invui.window.impl.merged.split; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.SlotElement; import de.studiocode.invui.util.Pair; import de.studiocode.invui.util.SlotUtils; import de.studiocode.invui.window.Window; import de.studiocode.invui.window.impl.merged.MergedWindow; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; @@ -19,7 +19,7 @@ public abstract class SplitWindow extends MergedWindow { private final GUI upperGui; private final GUI lowerGui; - public SplitWindow(Player player, BaseComponent[] title, GUI upperGui, GUI lowerGui, Inventory upperInventory, boolean initItems, boolean closeable, boolean removeOnClose) { + public SplitWindow(Player player, ComponentWrapper title, GUI upperGui, GUI lowerGui, Inventory upperInventory, boolean initItems, boolean closeable, boolean removeOnClose) { super(player, title, upperGui.getSize() + lowerGui.getSize(), upperInventory, closeable, removeOnClose); this.upperGui = upperGui; this.lowerGui = lowerGui; diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/AnvilWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/AnvilWindow.java index c75f512..fe51b77 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/AnvilWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/AnvilWindow.java @@ -1,6 +1,8 @@ package de.studiocode.invui.window.impl.single; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.version.InventoryAccess; import de.studiocode.invui.gui.GUI; import net.md_5.bungee.api.chat.BaseComponent; @@ -14,7 +16,7 @@ public final class AnvilWindow extends SingleWindow { private final AnvilInventory anvilInventory; - public AnvilWindow(Player player, BaseComponent[] title, GUI gui, boolean closable, Consumer renameHandler) { + public AnvilWindow(Player player, ComponentWrapper title, GUI gui, boolean closable, Consumer renameHandler) { super(player.getUniqueId(), title, gui, null, false, closable, true); anvilInventory = InventoryAccess.createAnvilInventory(player, title, renameHandler); inventory = anvilInventory.getBukkitInventory(); @@ -23,6 +25,18 @@ public final class AnvilWindow extends SingleWindow { register(); } + public AnvilWindow(Player player, ComponentWrapper title, GUI gui, Consumer renameHandler) { + this(player, title, gui, true, renameHandler); + } + + public AnvilWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable, Consumer renameHandler) { + this(player, new BaseComponentWrapper(title), gui, closeable, renameHandler); + } + + public AnvilWindow(Player player, BaseComponent[] title, GUI gui, Consumer renameHandler) { + this(player, title, gui, true, renameHandler); + } + public AnvilWindow(Player player, String title, GUI gui, boolean closeable, Consumer renameHandler) { this(player, TextComponent.fromLegacyText(title), gui, closeable, renameHandler); } @@ -31,10 +45,6 @@ public final class AnvilWindow extends SingleWindow { this(player, title, gui, true, renameHandler); } - public AnvilWindow(Player player, BaseComponent[] title, GUI gui, Consumer renameHandler) { - this(player, title, gui, true, renameHandler); - } - @Override protected void setInvItem(int slot, ItemStack itemStack) { anvilInventory.setItem(slot, itemStack); diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/CartographyWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/CartographyWindow.java index 8d81744..de1b9c3 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/CartographyWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/CartographyWindow.java @@ -1,6 +1,8 @@ package de.studiocode.invui.window.impl.single; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.version.InventoryAccess; @@ -23,19 +25,7 @@ public final class CartographyWindow extends SingleWindow { private final CartographyInventory cartographyInventory; private int mapId; - public CartographyWindow(Player player, String title, GUI gui) { - this(player, TextComponent.fromLegacyText(title), gui, true); - } - - public CartographyWindow(Player player, String title, GUI gui, boolean closeable) { - this(player, TextComponent.fromLegacyText(title), gui, closeable); - } - - public CartographyWindow(Player player, BaseComponent[] title, GUI gui) { - this(player, title, gui, true); - } - - public CartographyWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable) { + public CartographyWindow(Player player, ComponentWrapper title, GUI gui, boolean closeable) { super(player.getUniqueId(), title, gui, null, false, closeable, true); if (gui.getWidth() != 2 || gui.getHeight() != 1) throw new IllegalArgumentException("GUI has to be 2x1"); @@ -47,6 +37,26 @@ public final class CartographyWindow extends SingleWindow { register(); } + public CartographyWindow(Player player, ComponentWrapper title, GUI gui) { + this(player, title, gui, true); + } + + public CartographyWindow(Player player, BaseComponent[] title, GUI gui) { + this(player, new BaseComponentWrapper(title), gui, true); + } + + public CartographyWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable) { + this(player, new BaseComponentWrapper(title), gui, closeable); + } + + public CartographyWindow(Player player, String title, GUI gui) { + this(player, TextComponent.fromLegacyText(title), gui, true); + } + + public CartographyWindow(Player player, String title, GUI gui, boolean closeable) { + this(player, TextComponent.fromLegacyText(title), gui, closeable); + } + public void updateMap(@Nullable MapPatch patch, @Nullable List icons) { InventoryAccess.getPlayerUtils().sendMapUpdate(getViewer(), mapId, (byte) 0, false, patch, icons); } diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SimpleWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SimpleWindow.java index 16c10cd..611cb0d 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SimpleWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SimpleWindow.java @@ -1,5 +1,7 @@ package de.studiocode.invui.window.impl.single; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.util.InventoryUtils; import net.md_5.bungee.api.chat.BaseComponent; @@ -10,23 +12,39 @@ import java.util.UUID; public final class SimpleWindow extends SingleWindow { - public SimpleWindow(UUID viewerUUID, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + public SimpleWindow(UUID viewerUUID, ComponentWrapper title, GUI gui, boolean closeable, boolean removeOnClose) { super(viewerUUID, title, gui, InventoryUtils.createMatchingInventory(gui, ""), true, closeable, removeOnClose); register(); } - public SimpleWindow(UUID viewerUUID, BaseComponent[] title, GUI gui) { + public SimpleWindow(UUID viewerUUID, ComponentWrapper title, GUI gui) { this(viewerUUID, title, gui, true, true); } - public SimpleWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + public SimpleWindow(Player player, ComponentWrapper title, GUI gui, boolean closeable, boolean removeOnClose) { this(player.getUniqueId(), title, gui, closeable, removeOnClose); } - public SimpleWindow(Player player, BaseComponent[] title, GUI gui) { + public SimpleWindow(Player player, ComponentWrapper title, GUI gui) { this(player, title, gui, true, true); } + public SimpleWindow(UUID viewerUUID, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + this(viewerUUID, new BaseComponentWrapper(title), gui, closeable, removeOnClose); + } + + public SimpleWindow(UUID viewerUUID, BaseComponent[] title, GUI gui) { + this(viewerUUID, new BaseComponentWrapper(title), gui); + } + + public SimpleWindow(Player player, BaseComponent[] title, GUI gui, boolean closeable, boolean removeOnClose) { + this(player, new BaseComponentWrapper(title), gui, closeable, removeOnClose); + } + + public SimpleWindow(Player player, BaseComponent[] title, GUI gui) { + this(player, new BaseComponentWrapper(title), gui); + } + public SimpleWindow(UUID viewerUUID, String title, GUI gui, boolean closeable, boolean removeOnClose) { this(viewerUUID, TextComponent.fromLegacyText(title), gui, closeable, removeOnClose); } diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SingleWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SingleWindow.java index 56a516b..4904d7d 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SingleWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/single/SingleWindow.java @@ -1,12 +1,12 @@ package de.studiocode.invui.window.impl.single; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.invui.gui.GUI; import de.studiocode.invui.gui.SlotElement; import de.studiocode.invui.util.InventoryUtils; import de.studiocode.invui.util.Pair; import de.studiocode.invui.window.Window; import de.studiocode.invui.window.impl.BaseWindow; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; @@ -24,7 +24,7 @@ public abstract class SingleWindow extends BaseWindow { private final int size; protected Inventory inventory; - public SingleWindow(UUID viewerUUID, BaseComponent[] title, GUI gui, Inventory inventory, boolean initItems, boolean closeable, boolean removeOnClose) { + public SingleWindow(UUID viewerUUID, ComponentWrapper title, GUI gui, Inventory inventory, boolean initItems, boolean closeable, boolean removeOnClose) { super(viewerUUID, title, gui.getSize(), closeable, removeOnClose); this.gui = gui; this.size = gui.getSize(); diff --git a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/AnvilInventoryImpl.java index 44d32e3..77dbb6f 100644 --- a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/AnvilInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r1.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r1.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_14_R1.*; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory; @@ -35,7 +35,7 @@ public class AnvilInventoryImpl extends ContainerAnvil implements AnvilInventory private String text; private boolean open; - public AnvilInventoryImpl(Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/CartographyInventoryImpl.java index 2cb8b1e..8a35841 100644 --- a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r1.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r1.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_14_R1.*; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory; @@ -27,7 +27,7 @@ public class CartographyInventoryImpl extends ContainerCartography implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/InventoryUtilsImpl.java index adbe6b9..3b3ec69 100644 --- a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r1.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.server.v1_14_R1.*; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory; @@ -12,6 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { @@ -37,9 +37,8 @@ public class InventoryUtilsImpl implements InventoryUtils { } else return CraftContainer.getNotchInventoryType(type); } - public static IChatBaseComponent createNMSComponent(BaseComponent[] components) { - String json = ComponentSerializer.toString(components); - return IChatBaseComponent.ChatSerializer.a(json); + public static IChatBaseComponent createNMSComponent(ComponentWrapper component) { + return IChatBaseComponent.ChatSerializer.a(component.serializeToJson()); } public static int getActiveWindowId(EntityPlayer player) { @@ -53,7 +52,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Containers windowType = getNotchInventoryType(inventory); @@ -77,7 +76,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Container container = entityPlayer.activeContainer; entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, container.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/ItemUtilsImpl.java b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/ItemUtilsImpl.java index 9f63344..c891a9e 100644 --- a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/ItemUtilsImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r1.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_14_R1.NBTTagCompound; @@ -71,7 +71,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, @@ -80,7 +80,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, diff --git a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/PlayerUtilsImpl.java index 5b853b5..92dbc62 100644 --- a/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R1/src/main/java/de/studiocode/inventoryaccess/r1/util/PlayerUtilsImpl.java @@ -71,7 +71,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapIcon.Type.a(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } diff --git a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/AnvilInventoryImpl.java index c7c8fb1..431faa0 100644 --- a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r10.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r10.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -38,7 +38,7 @@ public class AnvilInventoryImpl extends AnvilMenu implements AnvilInventory { private String text; private boolean open; - public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/CartographyInventoryImpl.java index c30761d..cfa1bc0 100644 --- a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r10.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r10.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -40,7 +40,7 @@ public class CartographyInventoryImpl extends CartographyTableMenu implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/InventoryUtilsImpl.java index 7c6e2e4..874af38 100644 --- a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r10.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerPlayer; @@ -18,14 +17,13 @@ import org.bukkit.craftbukkit.v1_19_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static Component createNMSComponent(BaseComponent[] components) { - if (components == null) return null; - - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static Component createNMSComponent(ComponentWrapper component) { + if (component == null) return null; + return CraftChatMessage.fromJSON(component.serializeToJson()); } public static int getActiveWindowId(ServerPlayer player) { @@ -39,7 +37,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); MenuType menuType = CraftContainer.getNotchInventoryType(inventory); @@ -65,7 +63,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); AbstractContainerMenu menu = serverPlayer.containerMenu; serverPlayer.connection.send(new ClientboundOpenScreenPacket(menu.containerId, menu.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/ItemUtilsImpl.java b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/ItemUtilsImpl.java index 579898a..46d99b9 100644 --- a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r10.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/PlayerUtilsImpl.java index 8eb7d18..09503f3 100644 --- a/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R10/src/main/java/de/studiocode/inventoryaccess/r10/util/PlayerUtilsImpl.java @@ -1,11 +1,11 @@ package de.studiocode.inventoryaccess.r10.util; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.util.DataUtils; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundResourcePackPacket; import net.minecraft.server.PlayerAdvancements; @@ -69,7 +69,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapDecoration.Type.byIcon(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } @@ -84,7 +84,7 @@ public class PlayerUtilsImpl implements PlayerUtils { } @Override - public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { var serverPlayer = ((CraftPlayer) player).getHandle(); var packet = new ClientboundResourcePackPacket( url, diff --git a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/AnvilInventoryImpl.java index 172b693..23b2f21 100644 --- a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/AnvilInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r2.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r2.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_15_R1.*; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_15_R1.event.CraftEventFactory; @@ -35,7 +35,7 @@ public class AnvilInventoryImpl extends ContainerAnvil implements AnvilInventory private String text; private boolean open; - public AnvilInventoryImpl(Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/CartographyInventoryImpl.java index 0b843e5..6ea9779 100644 --- a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r2.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r2.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_15_R1.*; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_15_R1.event.CraftEventFactory; @@ -27,7 +27,7 @@ public class CartographyInventoryImpl extends ContainerCartography implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/InventoryUtilsImpl.java index fb8ed81..40c1554 100644 --- a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r2.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.server.v1_15_R1.*; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_15_R1.event.CraftEventFactory; @@ -11,12 +10,12 @@ import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftInventory; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static IChatBaseComponent createNMSComponent(BaseComponent[] components) { - String json = ComponentSerializer.toString(components); - return IChatBaseComponent.ChatSerializer.a(json); + public static IChatBaseComponent createNMSComponent(ComponentWrapper component) { + return IChatBaseComponent.ChatSerializer.a(component.serializeToJson()); } public static int getActiveWindowId(EntityPlayer player) { @@ -30,7 +29,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Containers windowType = CraftContainer.getNotchInventoryType(inventory); @@ -54,7 +53,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Container container = entityPlayer.activeContainer; entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, container.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/ItemUtilsImpl.java b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/ItemUtilsImpl.java index 805ddd8..5144568 100644 --- a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/ItemUtilsImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r2.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_15_R1.ItemStack; import net.minecraft.server.v1_15_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_15_R1.NBTTagCompound; @@ -71,7 +71,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, @@ -80,7 +80,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, diff --git a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/PlayerUtilsImpl.java index 6418b32..35e66c2 100644 --- a/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R2/src/main/java/de/studiocode/inventoryaccess/r2/util/PlayerUtilsImpl.java @@ -71,7 +71,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapIcon.Type.a(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } diff --git a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/AnvilInventoryImpl.java index d51a0fd..9229d82 100644 --- a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r3.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r3.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R1.*; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R1.event.CraftEventFactory; @@ -26,7 +26,7 @@ public class AnvilInventoryImpl extends ContainerAnvil implements AnvilInventory private String text; private boolean open; - public AnvilInventoryImpl(Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/CartographyInventoryImpl.java index f81f888..420c87e 100644 --- a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r3.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r3.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R1.*; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R1.event.CraftEventFactory; @@ -27,7 +27,7 @@ public class CartographyInventoryImpl extends ContainerCartography implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/InventoryUtilsImpl.java index c8e1836..0b60dfb 100644 --- a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r3.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.server.v1_16_R1.*; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R1.event.CraftEventFactory; @@ -12,12 +11,12 @@ import org.bukkit.craftbukkit.v1_16_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static IChatBaseComponent createNMSComponent(BaseComponent[] components) { - String json = ComponentSerializer.toString(components); - return IChatBaseComponent.ChatSerializer.a(json); + public static IChatBaseComponent createNMSComponent(ComponentWrapper component) { + return IChatBaseComponent.ChatSerializer.a(component.serializeToJson()); } public static int getActiveWindowId(EntityPlayer player) { @@ -31,7 +30,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Containers windowType = CraftContainer.getNotchInventoryType(inventory); @@ -55,7 +54,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Container container = entityPlayer.activeContainer; entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, container.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/ItemUtilsImpl.java b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/ItemUtilsImpl.java index 6fe4573..fe4aadd 100644 --- a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/ItemUtilsImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r3.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R1.ItemStack; import net.minecraft.server.v1_16_R1.NBTCompressedStreamTools; import net.minecraft.server.v1_16_R1.NBTTagCompound; @@ -71,7 +71,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, @@ -80,7 +80,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, diff --git a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/PlayerUtilsImpl.java index 7be9ee0..cff9df1 100644 --- a/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R3/src/main/java/de/studiocode/inventoryaccess/r3/util/PlayerUtilsImpl.java @@ -71,7 +71,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapIcon.Type.a(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } diff --git a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/AnvilInventoryImpl.java index c22b918..c1418af 100644 --- a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r4.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r4.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R2.*; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory; @@ -26,7 +26,7 @@ public class AnvilInventoryImpl extends ContainerAnvil implements AnvilInventory private String text; private boolean open; - public AnvilInventoryImpl(Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/CartographyInventoryImpl.java index 266910b..8c2839a 100644 --- a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r4.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r4.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R2.*; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory; @@ -27,7 +27,7 @@ public class CartographyInventoryImpl extends ContainerCartography implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/InventoryUtilsImpl.java index f521e0e..d2549aa 100644 --- a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r4.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.server.v1_16_R2.*; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory; @@ -12,12 +11,12 @@ import org.bukkit.craftbukkit.v1_16_R2.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static IChatBaseComponent createNMSComponent(BaseComponent[] components) { - String json = ComponentSerializer.toString(components); - return IChatBaseComponent.ChatSerializer.a(json); + public static IChatBaseComponent createNMSComponent(ComponentWrapper component) { + return IChatBaseComponent.ChatSerializer.a(component.serializeToJson()); } public static int getActiveWindowId(EntityPlayer player) { @@ -31,7 +30,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Containers windowType = CraftContainer.getNotchInventoryType(inventory); @@ -55,7 +54,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Container container = entityPlayer.activeContainer; entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, container.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/ItemUtilsImpl.java b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/ItemUtilsImpl.java index 121a165..95536ab 100644 --- a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/ItemUtilsImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r4.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R2.ItemStack; import net.minecraft.server.v1_16_R2.NBTCompressedStreamTools; import net.minecraft.server.v1_16_R2.NBTTagCompound; @@ -71,7 +71,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, @@ -80,7 +80,7 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, diff --git a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/PlayerUtilsImpl.java index 1f386dc..22455e0 100644 --- a/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R4/src/main/java/de/studiocode/inventoryaccess/r4/util/PlayerUtilsImpl.java @@ -71,7 +71,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapIcon.Type.a(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } diff --git a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/AnvilInventoryImpl.java index b30a5b5..2e7944b 100644 --- a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r5.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r5.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R3.*; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory; @@ -26,7 +26,7 @@ public class AnvilInventoryImpl extends ContainerAnvil implements AnvilInventory private String text; private boolean open; - public AnvilInventoryImpl(Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/CartographyInventoryImpl.java index 5b3fb65..967d958 100644 --- a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r5.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r5.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_16_R3.*; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory; @@ -27,7 +27,7 @@ public class CartographyInventoryImpl extends ContainerCartography implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/InventoryUtilsImpl.java index 99f6a9e..4a7c369 100644 --- a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r5.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.server.v1_16_R3.*; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory; @@ -12,12 +11,12 @@ import org.bukkit.craftbukkit.v1_16_R3.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static IChatBaseComponent createNMSComponent(BaseComponent[] components) { - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static IChatBaseComponent createNMSComponent(ComponentWrapper component) { + return IChatBaseComponent.ChatSerializer.a(component.serializeToJson()); } public static int getActiveWindowId(EntityPlayer player) { @@ -31,7 +30,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Containers windowType = CraftContainer.getNotchInventoryType(inventory); @@ -55,7 +54,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Container container = entityPlayer.activeContainer; entityPlayer.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, container.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/ItemUtilsImpl.java b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/ItemUtilsImpl.java index 6097a64..fd597be 100644 --- a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r5.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.server.v1_16_R3.ItemStack; import net.minecraft.server.v1_16_R3.NBTCompressedStreamTools; import net.minecraft.server.v1_16_R3.NBTTagCompound; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/PlayerUtilsImpl.java index 3ea7d3b..5b086d9 100644 --- a/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R5/src/main/java/de/studiocode/inventoryaccess/r5/util/PlayerUtilsImpl.java @@ -71,7 +71,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapIcon.Type.a(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } diff --git a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/AnvilInventoryImpl.java index 323a248..7594146 100644 --- a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r6.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r6.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -37,7 +37,7 @@ public class AnvilInventoryImpl extends AnvilMenu implements AnvilInventory { private String text; private boolean open; - public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/CartographyInventoryImpl.java index c7d47e6..99228a2 100644 --- a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r6.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r6.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -40,7 +40,7 @@ public class CartographyInventoryImpl extends CartographyTableMenu implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/InventoryUtilsImpl.java index 9ae8fc9..4b3b948 100644 --- a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r6.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerPlayer; @@ -18,14 +17,13 @@ import org.bukkit.craftbukkit.v1_17_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static Component createNMSComponent(BaseComponent[] components) { - if (components == null) return null; - - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static Component createNMSComponent(ComponentWrapper component) { + if (component == null) return null; + return CraftChatMessage.fromJSON(component.serializeToJson()); } public static int getActiveWindowId(ServerPlayer player) { @@ -39,7 +37,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); MenuType menuType = CraftContainer.getNotchInventoryType(inventory); @@ -65,7 +63,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); AbstractContainerMenu menu = serverPlayer.containerMenu; serverPlayer.connection.send(new ClientboundOpenScreenPacket(menu.containerId, menu.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/ItemUtilsImpl.java b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/ItemUtilsImpl.java index 2d2e684..0aaadca 100644 --- a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r6.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/PlayerUtilsImpl.java index 1b4c199..ede4ebf 100644 --- a/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R6/src/main/java/de/studiocode/inventoryaccess/r6/util/PlayerUtilsImpl.java @@ -1,11 +1,11 @@ package de.studiocode.inventoryaccess.r6.util; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.util.DataUtils; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundResourcePackPacket; import net.minecraft.server.PlayerAdvancements; @@ -69,7 +69,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapDecoration.Type.byIcon(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } @@ -84,7 +84,7 @@ public class PlayerUtilsImpl implements PlayerUtils { } @Override - public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { var serverPlayer = ((CraftPlayer) player).getHandle(); var packet = new ClientboundResourcePackPacket( url, diff --git a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/AnvilInventoryImpl.java index 7d088b5..6b0f780 100644 --- a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r7.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r7.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -38,7 +38,7 @@ public class AnvilInventoryImpl extends AnvilMenu implements AnvilInventory { private String text; private boolean open; - public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/CartographyInventoryImpl.java index 17c5a4e..71c3ada 100644 --- a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r7.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r7.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -40,7 +40,7 @@ public class CartographyInventoryImpl extends CartographyTableMenu implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/InventoryUtilsImpl.java index 7fe0358..ab84a47 100644 --- a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r7.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerPlayer; @@ -18,14 +17,13 @@ import org.bukkit.craftbukkit.v1_17_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static Component createNMSComponent(BaseComponent[] components) { - if (components == null) return null; - - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static Component createNMSComponent(ComponentWrapper component) { + if (component == null) return null; + return CraftChatMessage.fromJSON(component.serializeToJson()); } public static int getActiveWindowId(ServerPlayer player) { @@ -39,7 +37,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); MenuType menuType = CraftContainer.getNotchInventoryType(inventory); @@ -65,7 +63,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); AbstractContainerMenu menu = serverPlayer.containerMenu; serverPlayer.connection.send(new ClientboundOpenScreenPacket(menu.containerId, menu.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/ItemUtilsImpl.java b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/ItemUtilsImpl.java index e54a470..d0f259b 100644 --- a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r7.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/PlayerUtilsImpl.java index eb865d9..f3e1028 100644 --- a/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R7/src/main/java/de/studiocode/inventoryaccess/r7/util/PlayerUtilsImpl.java @@ -1,11 +1,11 @@ package de.studiocode.inventoryaccess.r7.util; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.util.DataUtils; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundResourcePackPacket; import net.minecraft.server.PlayerAdvancements; @@ -69,7 +69,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapDecoration.Type.byIcon(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } @@ -84,7 +84,7 @@ public class PlayerUtilsImpl implements PlayerUtils { } @Override - public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { var serverPlayer = ((CraftPlayer) player).getHandle(); var packet = new ClientboundResourcePackPacket( url, diff --git a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/AnvilInventoryImpl.java index 41832fb..4150c2d 100644 --- a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r8.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r8.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -38,7 +38,7 @@ public class AnvilInventoryImpl extends AnvilMenu implements AnvilInventory { private String text; private boolean open; - public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/CartographyInventoryImpl.java index 3cfb8ce..4e1ceab 100644 --- a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r8.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r8.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -40,7 +40,7 @@ public class CartographyInventoryImpl extends CartographyTableMenu implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/InventoryUtilsImpl.java index 7d65c06..3580736 100644 --- a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r8.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerPlayer; @@ -18,14 +17,13 @@ import org.bukkit.craftbukkit.v1_18_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static Component createNMSComponent(BaseComponent[] components) { - if (components == null) return null; - - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static Component createNMSComponent(ComponentWrapper component) { + if (component == null) return null; + return CraftChatMessage.fromJSON(component.serializeToJson()); } public static int getActiveWindowId(ServerPlayer player) { @@ -39,7 +37,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); MenuType menuType = CraftContainer.getNotchInventoryType(inventory); @@ -65,7 +63,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); AbstractContainerMenu menu = serverPlayer.containerMenu; serverPlayer.connection.send(new ClientboundOpenScreenPacket(menu.containerId, menu.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/ItemUtilsImpl.java b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/ItemUtilsImpl.java index f7b801e..c036e19 100644 --- a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r8.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/PlayerUtilsImpl.java index ddfe799..ce64200 100644 --- a/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R8/src/main/java/de/studiocode/inventoryaccess/r8/util/PlayerUtilsImpl.java @@ -1,11 +1,11 @@ package de.studiocode.inventoryaccess.r8.util; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.util.DataUtils; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundResourcePackPacket; import net.minecraft.server.PlayerAdvancements; @@ -69,7 +69,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapDecoration.Type.byIcon(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } @@ -84,7 +84,7 @@ public class PlayerUtilsImpl implements PlayerUtils { } @Override - public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { var serverPlayer = ((CraftPlayer) player).getHandle(); var packet = new ClientboundResourcePackPacket( url, diff --git a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/AnvilInventoryImpl.java b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/AnvilInventoryImpl.java index fa75304..0404868 100644 --- a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/AnvilInventoryImpl.java +++ b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/AnvilInventoryImpl.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.r9.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.AnvilInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r9.util.InventoryUtilsImpl; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -38,7 +38,7 @@ public class AnvilInventoryImpl extends AnvilMenu implements AnvilInventory { private String text; private boolean open; - public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public AnvilInventoryImpl(org.bukkit.entity.Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title), renameHandler); } diff --git a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/CartographyInventoryImpl.java b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/CartographyInventoryImpl.java index 5cf79b3..2392776 100644 --- a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/CartographyInventoryImpl.java +++ b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/inventory/CartographyInventoryImpl.java @@ -1,9 +1,9 @@ package de.studiocode.inventoryaccess.r9.inventory; import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.r9.util.InventoryUtilsImpl; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; @@ -40,7 +40,7 @@ public class CartographyInventoryImpl extends CartographyTableMenu implements Ca private boolean open; - public CartographyInventoryImpl(Player player, @NotNull BaseComponent[] title) { + public CartographyInventoryImpl(Player player, @NotNull ComponentWrapper title) { this(((CraftPlayer) player).getHandle(), InventoryUtilsImpl.createNMSComponent(title)); } diff --git a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/InventoryUtilsImpl.java b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/InventoryUtilsImpl.java index 10cba44..8c0f4dc 100644 --- a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/InventoryUtilsImpl.java +++ b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/InventoryUtilsImpl.java @@ -1,8 +1,7 @@ package de.studiocode.inventoryaccess.r9.util; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; import net.minecraft.server.level.ServerPlayer; @@ -18,14 +17,13 @@ import org.bukkit.craftbukkit.v1_18_R2.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class InventoryUtilsImpl implements InventoryUtils { - public static Component createNMSComponent(BaseComponent[] components) { - if (components == null) return null; - - String json = ComponentSerializer.toString(components); - return CraftChatMessage.fromJSON(json); + public static Component createNMSComponent(ComponentWrapper component) { + if (component == null) return null; + return CraftChatMessage.fromJSON(component.serializeToJson()); } public static int getActiveWindowId(ServerPlayer player) { @@ -39,7 +37,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title) { + public void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); MenuType menuType = CraftContainer.getNotchInventoryType(inventory); @@ -65,7 +63,7 @@ public class InventoryUtilsImpl implements InventoryUtils { } @Override - public void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title) { + public void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title) { ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); AbstractContainerMenu menu = serverPlayer.containerMenu; serverPlayer.connection.send(new ClientboundOpenScreenPacket(menu.containerId, menu.getType(), createNMSComponent(title))); diff --git a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/ItemUtilsImpl.java b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/ItemUtilsImpl.java index e153004..bbbc606 100644 --- a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/ItemUtilsImpl.java +++ b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/ItemUtilsImpl.java @@ -1,10 +1,9 @@ package de.studiocode.inventoryaccess.r9.util; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.item.ItemStack; @@ -72,20 +71,20 @@ public class ItemUtilsImpl implements ItemUtils { } @Override - public void setDisplayName(@NotNull ItemMeta itemMeta, BaseComponent[] name) { + public void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_DISPLAY_NAME_FIELD, itemMeta, - ComponentSerializer.toString(name) + name.serializeToJson() ); } @Override - public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore) { + public void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore) { ReflectionUtils.setFieldValue( ReflectionRegistry.CB_CRAFT_META_ITEM_LORE_FIELD, itemMeta, - lore.stream().map(ComponentSerializer::toString).collect(Collectors.toList()) + lore.stream().map(ComponentWrapper::serializeToJson).collect(Collectors.toList()) ); } diff --git a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/PlayerUtilsImpl.java b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/PlayerUtilsImpl.java index d9d7c11..1288722 100644 --- a/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/PlayerUtilsImpl.java +++ b/InventoryAccess/IA-R9/src/main/java/de/studiocode/inventoryaccess/r9/util/PlayerUtilsImpl.java @@ -1,11 +1,11 @@ package de.studiocode.inventoryaccess.r9.util; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; import de.studiocode.inventoryaccess.util.DataUtils; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundResourcePackPacket; import net.minecraft.server.PlayerAdvancements; @@ -69,7 +69,7 @@ public class PlayerUtilsImpl implements PlayerUtils { MapDecoration.Type.byIcon(icon.getType().getId()), icon.getX(), icon.getY(), icon.getRot(), - icon.getComponents() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponents()) : null + icon.getComponent() != null ? InventoryUtilsImpl.createNMSComponent(icon.getComponent()) : null ); } @@ -84,7 +84,7 @@ public class PlayerUtilsImpl implements PlayerUtils { } @Override - public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { var serverPlayer = ((CraftPlayer) player).getHandle(); var packet = new ClientboundResourcePackPacket( url, diff --git a/InventoryAccess/IA/pom.xml b/InventoryAccess/IA/pom.xml index 60d0fde..ff2c482 100644 --- a/InventoryAccess/IA/pom.xml +++ b/InventoryAccess/IA/pom.xml @@ -17,6 +17,13 @@ 11 + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + org.spigotmc @@ -24,6 +31,18 @@ 1.16.4-R0.1-SNAPSHOT provided + + net.kyori + adventure-api + 4.11.0 + provided + + + net.kyori + adventure-text-serializer-gson + 4.11.0 + provided + \ No newline at end of file diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/InventoryUtils.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/InventoryUtils.java index e8368c2..61aacd5 100644 --- a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/InventoryUtils.java +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/InventoryUtils.java @@ -1,10 +1,11 @@ package de.studiocode.inventoryaccess.abstraction.util; -import net.md_5.bungee.api.chat.BaseComponent; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface InventoryUtils { @@ -30,7 +31,7 @@ public interface InventoryUtils { * @param inventory The {@link Inventory} * @param title The title of the inventory */ - void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @NotNull BaseComponent[] title); + void openCustomInventory(@NotNull Player player, @NotNull Inventory inventory, @Nullable ComponentWrapper title); /** * Changes the title of the {@link Inventory} the player is currently viewing. @@ -38,6 +39,6 @@ public interface InventoryUtils { * @param player The {@link Player} * @param title The new title */ - void updateOpenInventoryTitle(@NotNull Player player, @NotNull BaseComponent[] title); + void updateOpenInventoryTitle(@NotNull Player player, @NotNull ComponentWrapper title); } diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/ItemUtils.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/ItemUtils.java index 1387951..1f4a108 100644 --- a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/ItemUtils.java +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/ItemUtils.java @@ -1,6 +1,6 @@ package de.studiocode.inventoryaccess.abstraction.util; -import net.md_5.bungee.api.chat.BaseComponent; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; @@ -55,16 +55,16 @@ public interface ItemUtils { * Sets the display name of an {@link ItemMeta} * * @param itemMeta The {@link ItemMeta} - * @param name The display name as a {@link BaseComponent BaseComponent[]} + * @param name The display name */ - void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull BaseComponent[] name); + void setDisplayName(@NotNull ItemMeta itemMeta, @NotNull ComponentWrapper name); /** * Sets the lore of an {@link ItemMeta} * * @param itemMeta The {@link ItemMeta} - * @param lore The lore as a list of {@link BaseComponent BaseComponent[]} + * @param lore The lore */ - void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull BaseComponent[]> lore); + void setLore(@NotNull ItemMeta itemMeta, @NotNull List<@NotNull ComponentWrapper> lore); } diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/PlayerUtils.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/PlayerUtils.java index 330c040..a572cd7 100644 --- a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/PlayerUtils.java +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/abstraction/util/PlayerUtils.java @@ -1,8 +1,8 @@ package de.studiocode.inventoryaccess.abstraction.util; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.map.MapIcon; import de.studiocode.inventoryaccess.map.MapPatch; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +61,7 @@ public interface PlayerUtils { * @param prompt The prompt message to be displayed (since 1.17) * @param force If the {@link Player} should be forced to download the resource pack (since 1.17) */ - default void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable BaseComponent[] prompt, boolean force) { + default void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) { player.setResourcePack(url, hash); } diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/AdventureComponentWrapper.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/AdventureComponentWrapper.java new file mode 100644 index 0000000..76823f8 --- /dev/null +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/AdventureComponentWrapper.java @@ -0,0 +1,19 @@ +package de.studiocode.inventoryaccess.component; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; + +public class AdventureComponentWrapper implements ComponentWrapper { + + private final Component component; + + public AdventureComponentWrapper(Component component) { + this.component = component; + } + + @Override + public String serializeToJson() { + return GsonComponentSerializer.gson().serialize(component); + } + +} diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/BaseComponentWrapper.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/BaseComponentWrapper.java new file mode 100644 index 0000000..7bf1957 --- /dev/null +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/BaseComponentWrapper.java @@ -0,0 +1,19 @@ +package de.studiocode.inventoryaccess.component; + +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; + +public class BaseComponentWrapper implements ComponentWrapper { + + private final BaseComponent[] components; + + public BaseComponentWrapper(BaseComponent[] components) { + this.components = components; + } + + @Override + public String serializeToJson() { + return ComponentSerializer.toString(components); + } + +} diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/ComponentWrapper.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/ComponentWrapper.java new file mode 100644 index 0000000..e053c30 --- /dev/null +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/component/ComponentWrapper.java @@ -0,0 +1,7 @@ +package de.studiocode.inventoryaccess.component; + +public interface ComponentWrapper { + + String serializeToJson(); + +} diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/map/MapIcon.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/map/MapIcon.java index f8f2253..55df3c9 100644 --- a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/map/MapIcon.java +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/map/MapIcon.java @@ -1,5 +1,7 @@ package de.studiocode.inventoryaccess.map; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import net.md_5.bungee.api.chat.BaseComponent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -10,18 +12,22 @@ public class MapIcon { private final byte x; private final byte y; private final byte rot; - private final BaseComponent[] components; + private final ComponentWrapper component; - public MapIcon(@NotNull MapIconType type, int x, int y, int rot, @Nullable BaseComponent[] components) { + public MapIcon(@NotNull MapIconType type, int x, int y, int rot, @Nullable ComponentWrapper component) { this.type = type; this.x = (byte) (x - 128); this.y = (byte) (y - 128); this.rot = (byte) rot; - this.components = components; + this.component = component; + } + + public MapIcon(@NotNull MapIconType type, int x, int y, int rot, @Nullable BaseComponent[] component) { + this(type, x, y, rot, new BaseComponentWrapper(component)); } public MapIcon(MapIconType type, byte x, byte y, byte rot) { - this(type, x, y, rot, null); + this(type, x, y, rot, (ComponentWrapper) null); } @NotNull @@ -42,8 +48,8 @@ public class MapIcon { } @Nullable - public BaseComponent[] getComponents() { - return components; + public ComponentWrapper getComponent() { + return component; } public enum MapIconType { diff --git a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/version/InventoryAccess.java b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/version/InventoryAccess.java index 9b08478..130f163 100644 --- a/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/version/InventoryAccess.java +++ b/InventoryAccess/IA/src/main/java/de/studiocode/inventoryaccess/version/InventoryAccess.java @@ -5,8 +5,8 @@ import de.studiocode.inventoryaccess.abstraction.inventory.CartographyInventory; import de.studiocode.inventoryaccess.abstraction.util.InventoryUtils; import de.studiocode.inventoryaccess.abstraction.util.ItemUtils; import de.studiocode.inventoryaccess.abstraction.util.PlayerUtils; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionUtils; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -22,9 +22,9 @@ public class InventoryAccess { private static final Class CARTOGRAPHY_INVENTORY_CLASS = ReflectionUtils.getImplClass("inventory.CartographyInventoryImpl"); private static final Constructor ANVIL_INVENTORY_CONSTRUCTOR = - ReflectionUtils.getConstructor(ANVIL_INVENTORY_CLASS, false, Player.class, BaseComponent[].class, Consumer.class); + ReflectionUtils.getConstructor(ANVIL_INVENTORY_CLASS, false, Player.class, ComponentWrapper.class, Consumer.class); private static final Constructor CARTOGRAPHY_INVENTORY_CONSTRUCTOR = - ReflectionUtils.getConstructor(CARTOGRAPHY_INVENTORY_CLASS, false, Player.class, BaseComponent[].class); + ReflectionUtils.getConstructor(CARTOGRAPHY_INVENTORY_CLASS, false, Player.class, ComponentWrapper.class); private static final InventoryUtils INVENTORY_UTILS = ReflectionUtils.constructEmpty(INVENTORY_UTILS_CLASS); private static final ItemUtils ITEM_UTILS = ReflectionUtils.constructEmpty(ITEM_UTILS_CLASS); @@ -61,12 +61,12 @@ public class InventoryAccess { * Creates a new {@link AnvilInventory}. * * @param player The {@link Player} that should see this {@link AnvilInventory} - * @param title The inventory title as a {@link BaseComponent BaseComponent[]} + * @param title The inventory title * @param renameHandler A {@link Consumer} that is called whenever the {@link Player} * types something in the renaming section of the anvil * @return The {@link AnvilInventory} */ - public static AnvilInventory createAnvilInventory(@NotNull Player player, @NotNull BaseComponent[] title, Consumer renameHandler) { + public static AnvilInventory createAnvilInventory(@NotNull Player player, @NotNull ComponentWrapper title, Consumer renameHandler) { return ReflectionUtils.construct(ANVIL_INVENTORY_CONSTRUCTOR, player, title, renameHandler); } @@ -74,10 +74,10 @@ public class InventoryAccess { * Creates a new {@link CartographyInventory}. * * @param player The {@link Player} that should see this {@link CartographyInventory} - * @param title The inventory title as a {@link BaseComponent BaseComponent[]} + * @param title The inventory title * @return The {@link CartographyInventory} */ - public static CartographyInventory createCartographyInventory(@NotNull Player player, @NotNull BaseComponent[] title) { + public static CartographyInventory createCartographyInventory(@NotNull Player player, @NotNull ComponentWrapper title) { return ReflectionUtils.construct(CARTOGRAPHY_INVENTORY_CONSTRUCTOR, player, title); } diff --git a/ResourcePack/src/main/java/de/studiocode/invui/resourcepack/ForceResourcePack.java b/ResourcePack/src/main/java/de/studiocode/invui/resourcepack/ForceResourcePack.java index 76b7036..05aaa2e 100644 --- a/ResourcePack/src/main/java/de/studiocode/invui/resourcepack/ForceResourcePack.java +++ b/ResourcePack/src/main/java/de/studiocode/invui/resourcepack/ForceResourcePack.java @@ -1,5 +1,7 @@ package de.studiocode.invui.resourcepack; +import de.studiocode.inventoryaccess.component.BaseComponentWrapper; +import de.studiocode.inventoryaccess.component.ComponentWrapper; import de.studiocode.inventoryaccess.util.ReflectionRegistry; import de.studiocode.inventoryaccess.util.VersionUtils; import de.studiocode.inventoryaccess.version.InventoryAccess; @@ -37,7 +39,7 @@ public class ForceResourcePack implements Listener { private final HashMap tasks = new HashMap<>(); private String resourcePackUrl; - private BaseComponent[] prompt; + private ComponentWrapper prompt; private byte[] hash; private ForceResourcePack() { @@ -63,10 +65,21 @@ public class ForceResourcePack implements Listener { * @param resourcePackUrl The ResourcePack URL String * @param prompt The prompt to be displayed (since 1.17) */ - public void setResourcePack(@Nullable String resourcePackUrl, @Nullable BaseComponent[] prompt) { + public void setResourcePack(@Nullable String resourcePackUrl, @Nullable ComponentWrapper prompt) { setResourcePack(resourcePackUrl, prompt, true); } + /** + * Sets the URL String for the custom ResourcePack every {@link Player} is required to download. + * Can be set to null to stop forcing the Resource Pack. + * + * @param resourcePackUrl The ResourcePack URL String + * @param prompt The prompt to be displayed (since 1.17) + */ + public void setResourcePack(@Nullable String resourcePackUrl, @Nullable BaseComponent[] prompt) { + setResourcePack(resourcePackUrl, new BaseComponentWrapper(prompt), true); + } + /** * Sets the URL String for the custom ResourcePack every {@link Player} is required to download. * Can be set to null to stop forcing the Resource Pack. @@ -75,7 +88,7 @@ public class ForceResourcePack implements Listener { * @param prompt The prompt to be displayed (since 1.17) * @param sendToOnlinePlayers If the resource pack should also be sent to all currently online players */ - public void setResourcePack(@Nullable String resourcePackUrl, @Nullable BaseComponent[] prompt, boolean sendToOnlinePlayers) { + public void setResourcePack(@Nullable String resourcePackUrl, @Nullable ComponentWrapper prompt, boolean sendToOnlinePlayers) { this.prompt = prompt; if (resourcePackUrl != null) { @@ -93,6 +106,18 @@ public class ForceResourcePack implements Listener { } } + /** + * Sets the URL String for the custom ResourcePack every {@link Player} is required to download. + * Can be set to null to stop forcing the Resource Pack. + * + * @param resourcePackUrl The ResourcePack URL String + * @param prompt The prompt to be displayed (since 1.17) + * @param sendToOnlinePlayers If the resource pack should also be sent to all currently online players + */ + public void setResourcePack(@Nullable String resourcePackUrl, @Nullable BaseComponent[] prompt, boolean sendToOnlinePlayers) { + setResourcePack(resourcePackUrl, new BaseComponentWrapper(prompt), sendToOnlinePlayers); + } + public void sendResourcePack(Player player) { if (VersionUtils.isServerHigherOrEqual("1.17.0")) { InventoryAccess.getPlayerUtils().sendResourcePack(player, resourcePackUrl, hash, prompt, true);