NichtStudioCode / InvUI

A spigot library for creating custom inventory-based GUIs.
MIT License
242 stars 19 forks source link

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException #87

Closed Naimadx123 closed 1 month ago

Naimadx123 commented 1 month ago
[14:51:51 ERROR]: Could not pass event InventoryClickEvent to mrEconomy v1.0.0-SNAPSHOT
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.util.ReflectionUtils.construct(ReflectionUtils.java:74) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.InventoryAccess.createAnvilInventory(InventoryAccess.java:73) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.invui.window.AnvilSplitWindowImpl.<init>(AnvilSplitWindowImpl.java:36) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.invui.window.AnvilSplitWindowImpl$BuilderImpl.build(AnvilSplitWindowImpl.java:90) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.invui.window.AnvilSplitWindowImpl$BuilderImpl.build(AnvilSplitWindowImpl.java:55) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.invui.window.AbstractWindow$AbstractBuilder.build(AbstractWindow.java:674) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/zone.vao.mreconomy.listeners.InventoryClickEventListener.onSplitMenu(InventoryClickEventListener.java:223) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/zone.vao.mreconomy.listeners.InventoryClickEventListener.onInvClick(InventoryClickEventListener.java:89) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor533.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:84) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-130-b1b5d4c]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3122) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:69) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:33) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:56) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1537) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1514) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1507) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1466) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1473) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1318) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:330) ~[paper-1.21.jar:1.21-130-b1b5d4c]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.util.ReflectionUtils.construct(ReflectionUtils.java:72) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        ... 32 more
Caused by: java.lang.NoSuchMethodError: 'void org.bukkit.craftbukkit.inventory.CraftInventoryAnvil.<init>(org.bukkit.Location, net.minecraft.world.Container, net.minecraft.world.Container, net.minecraft.world.inventory.AnvilMenu)'
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.r20.AnvilInventoryImpl.<init>(AnvilInventoryImpl.java:52) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.r20.AnvilInventoryImpl.<init>(AnvilInventoryImpl.java:41) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar/xyz.xenondevs.inventoryaccess.util.ReflectionUtils.construct(ReflectionUtils.java:72) ~[mrEconomy-1.0.0-SNAPSHOT-1723647097737.jar:?]
        ... 32 more

my code:

public void onSplitMenu(Player player) {
    final List<Item> items = new ArrayList<>();

    final PagedGui<Item> itemsGui = PagedGui.items()
        .setStructure(
            ". . . . . . . . .",
            ". x x x x x x x .",
            ". x x x x x x x .",
            ". . . < . > . . ."
        )
        .addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL)
        .addIngredient('<', new BackItem())
        .addIngredient('>', new ForwardItem())
        .build();

    ItemStack is1 = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
    ItemMeta im1 = is1.getItemMeta();

    im1.setDisplayName(ChatColor.RESET + "");
    is1.setItemMeta(im1);

    final Window window = AnvilWindow.split()
        .setUpperGui(PagedGui.items()
            .setContent(items)
            .setStructure("x x x")
            .addIngredient('x', new SimpleItem(is1))
        )
        .setLowerGui(itemsGui)
        .setViewer(player)
        .setTitle("Prices")
        .addRenameHandler(search -> {
          items.clear();

          for (Material material : Material.values()) {
            if (material.isAir()) continue;

            if (material.name().toLowerCase().contains(search.toLowerCase().replace(" ", "_"))) {

              ItemStack is = new ItemStack(material);
              ItemMeta im = is.getItemMeta();

              List<String> lores = new ArrayList<>();
              lores.add(ColorAPI.colorize("&6&Price: "+ MrEconomy.getInstance().getCurrPriceOfMaterial(material)));
              im.setLore(lores);

              is.setItemMeta(im);

              items.add(new SimpleItem(is));
            }
          }

          itemsGui.setContent(items);
        })
        .build();

    window.open();
  }