Fixed several NPEs related to Window titles

This commit is contained in:
NichtStudioCode 2023-10-04 20:43:35 +02:00
parent d7401d4d04
commit 3a74406a0b
8 changed files with 15 additions and 9 deletions

@ -8,6 +8,7 @@ import xyz.xenondevs.inventoryaccess.abstraction.inventory.CartographyInventory;
import xyz.xenondevs.inventoryaccess.abstraction.util.InventoryUtils;
import xyz.xenondevs.inventoryaccess.abstraction.util.ItemUtils;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.BungeeComponentWrapper;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
@ -68,8 +69,8 @@ public class InventoryAccess {
* types something in the renaming section of the anvil.
* @return The {@link AnvilInventory}
*/
public static AnvilInventory createAnvilInventory(@NotNull Player player, @NotNull ComponentWrapper title, @Nullable List<@NotNull Consumer<String>> renameHandlers) {
return ReflectionUtils.construct(ANVIL_INVENTORY_CONSTRUCTOR, player, title, renameHandlers);
public static AnvilInventory createAnvilInventory(@NotNull Player player, @Nullable ComponentWrapper title, @Nullable List<@NotNull Consumer<String>> renameHandlers) {
return ReflectionUtils.construct(ANVIL_INVENTORY_CONSTRUCTOR, player, title == null ? BungeeComponentWrapper.EMPTY : title, renameHandlers);
}
/**
@ -79,8 +80,8 @@ public class InventoryAccess {
* @param title The inventory title
* @return The {@link CartographyInventory}
*/
public static CartographyInventory createCartographyInventory(@NotNull Player player, @NotNull ComponentWrapper title) {
return ReflectionUtils.construct(CARTOGRAPHY_INVENTORY_CONSTRUCTOR, player, title);
public static CartographyInventory createCartographyInventory(@NotNull Player player, @Nullable ComponentWrapper title) {
return ReflectionUtils.construct(CARTOGRAPHY_INVENTORY_CONSTRUCTOR, player, title == null ? BungeeComponentWrapper.EMPTY : title);
}
}

@ -9,6 +9,8 @@ import xyz.xenondevs.inventoryaccess.util.AdventureComponentUtils;
public class AdventureComponentWrapper implements ComponentWrapper {
public static final AdventureComponentWrapper EMPTY = new AdventureComponentWrapper(Component.empty());
private final Component component;
public AdventureComponentWrapper(Component component) {

@ -1,6 +1,7 @@
package xyz.xenondevs.inventoryaccess.component;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.inventoryaccess.component.i18n.BungeeComponentLocalizer;
@ -9,6 +10,8 @@ import xyz.xenondevs.inventoryaccess.util.BungeeComponentUtils;
public class BungeeComponentWrapper implements ComponentWrapper {
public static final BungeeComponentWrapper EMPTY = new BungeeComponentWrapper(new BaseComponent[] {new TextComponent("")});
private final BaseComponent[] components;
public BungeeComponentWrapper(BaseComponent[] components) {

@ -268,7 +268,7 @@ public abstract class AbstractWindow implements Window, GuiParent {
InventoryAccess.getInventoryUtils().openCustomInventory(
viewer,
getInventories()[0],
title.localized(viewer)
title != null ? title.localized(viewer) : null
);
}

@ -25,7 +25,7 @@ final class AnvilSingleWindowImpl extends AbstractSingleWindow implements AnvilW
boolean closable
) {
super(player, title, gui, null, closable);
anvilInventory = InventoryAccess.createAnvilInventory(player, title.localized(player), renameHandlers);
anvilInventory = InventoryAccess.createAnvilInventory(player, title != null ? title.localized(player) : null, renameHandlers);
inventory = anvilInventory.getBukkitInventory();
}

@ -27,7 +27,7 @@ final class AnvilSplitWindowImpl extends AbstractSplitWindow implements AnvilWin
) {
super(player, title, upperGui, lowerGui, null, closeable);
anvilInventory = InventoryAccess.createAnvilInventory(player, title.localized(player), renameHandlers);
anvilInventory = InventoryAccess.createAnvilInventory(player, title != null ? title.localized(player) : null, renameHandlers);
upperInventory = anvilInventory.getBukkitInventory();
}

@ -33,7 +33,7 @@ final class CartographySingleWindowImpl extends AbstractSingleWindow implements
super(player, title, createWrappingGui(gui), null, closeable);
if (gui.getWidth() != 2 || gui.getHeight() != 1) throw new IllegalArgumentException("Gui has to be 2x1");
cartographyInventory = InventoryAccess.createCartographyInventory(player, title.localized(player));
cartographyInventory = InventoryAccess.createCartographyInventory(player, title != null ? title.localized(player) : null);
inventory = cartographyInventory.getBukkitInventory();
resetMap();

@ -32,7 +32,7 @@ final class CartographySplitWindowImpl extends AbstractSplitWindow implements Ca
) {
super(player, title, createWrappingGui(upperGui), lowerGui, null, closeable);
cartographyInventory = InventoryAccess.createCartographyInventory(player, title.localized(player));
cartographyInventory = InventoryAccess.createCartographyInventory(player, title != null ? title.localized(player) : null);
upperInventory = cartographyInventory.getBukkitInventory();
resetMap();