Working GUI plugin, still sending error in console

Discussion in 'Plugin Development' started by ashj1234, Oct 2, 2018.

Thread Status:
Not open for further replies.
  1. Offline

    ashj1234

    Code:
    [15:58:56 ERROR]: Could not pass event InventoryClickEvent to EnergyRPG v0.1
    org.bukkit.event.EventException
      at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1630) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:31) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:9) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
      at java.base/java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
      at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      at java.base/java.lang.Thread.run(Unknown Source) [?:?]
    Caused by: java.lang.NullPointerException
      at me.matthew.energyrpg.events.UpgradeEvents.onInventoryClick(UpgradeEvents.java:56) ~[?:?]
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
      at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
      at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
      ... 15 more
    
    Code is:
    Code:
    public class UpgradeEvents implements Listener {
       
        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
            if (event.getCurrentItem().equals(null) || event.getCurrentItem().getType().equals(Material.AIR)) {
                return;
            }
           
            if (event.getInventory().getTitle().equals(Main.translate("&9Kovács pult. Fejlessz!"))) {
                if (event.getInventory().getItem(0).getItemMeta().getDisplayName().equals(Main.translate("&6Bézbózütő"))) {
                    if (event.getInventory().getItem(2).getType().equals(Material.NETHER_STAR)) {
                        ItemMeta metabezbozuto1 = Items.bezbozuto.getItemMeta();
                        metabezbozuto1.setDisplayName(Main.translate("&6Bézbózütő +1"));
                        metabezbozuto1.spigot().setUnbreakable(true);
                        List<String> lorebezbozuto1 = new ArrayList<String>();
                        lorebezbozuto1.add(Main.translate("&2            Szint:"));
                        lorebezbozuto1.add(Main.translate("&f              0"));
                        lorebezbozuto1.add(Main.translate("&2           Sebzés:"));
                        lorebezbozuto1.add(Main.translate("&f       5 [-> +2: 6]"));
                        lorebezbozuto1.add(Main.translate("&2  Zombik ellen kiváló fegyver!"));
                        metabezbozuto1.setLore(lorebezbozuto1);
                        Items.bezbozuto.setItemMeta(metabezbozuto1);
                       
                        if (event.isLeftClick()) {
                            if (event.getCurrentItem().getType().equals(Material.ANVIL)) {
                                event.getInventory().setItem(0, new ItemStack(Material.AIR));
                                event.getInventory().setItem(2, new ItemStack(Material.AIR));
                                event.getInventory().setItem(8, new ItemStack(Material.AIR));
                                event.getInventory().setItem(4, Items.bezbozuto);
                                event.setCancelled(true);
                            }
                        }
                    } else {
                        return;
                    }
                } else if (event.getInventory().getItem(0).getItemMeta().getDisplayName().equals(Main.translate("&6Bézbózütő +1"))) { // Ahha.
                    if (event.getInventory().getItem(2).getType().equals(Material.NETHER_STAR)) {
                        ItemMeta metabezbozuto2 = Items.bezbozuto.getItemMeta();
                        metabezbozuto2.setDisplayName(Main.translate("&6Bézbózütő +2"));
                        metabezbozuto2.spigot().setUnbreakable(true);
                        List<String> lorebezbozuto2 = new ArrayList<String>();
                        lorebezbozuto2.add(Main.translate("&2            Szint:"));
                        lorebezbozuto2.add(Main.translate("&f              0"));
                        lorebezbozuto2.add(Main.translate("&2           Sebzés:"));
                        lorebezbozuto2.add(Main.translate("&f       6 [-> +3: 7]"));
                        lorebezbozuto2.add(Main.translate("&2  Zombik ellen kiváló fegyver!"));
                        metabezbozuto2.setLore(lorebezbozuto2);
                        Items.bezbozuto.setItemMeta(metabezbozuto2);
                       
                        if (event.isLeftClick()) {
                            if (event.getCurrentItem().getType().equals(Material.ANVIL)) {
                                event.getInventory().setItem(0, new ItemStack(Material.AIR));
                                event.getInventory().setItem(2, new ItemStack(Material.AIR));
                                event.getInventory().setItem(8, new ItemStack(Material.AIR));
                                event.getInventory().setItem(4, Items.bezbozuto);
                                event.setCancelled(true);
                            }
                        }
                    } else {
                        return;
                    }
                }
                   
               
               
            }
        }
       
        @EventHandler
        public void onEntityInteractByEntity(PlayerInteractEntityEvent event) {
            if (!(event.getRightClicked() instanceof Player)) {
                return;
            }
            Player player = event.getPlayer();
            Player selectedplayer = (Player) event.getRightClicked();
            if (selectedplayer.getName().equalsIgnoreCase("Kovács")) {
                openUpgraderInv(player);
                player.sendMessage(Main.translate("&eTesting..."));
            }
        }
       
        public static void openUpgraderInv(Player player) {
            Inventory inv = Bukkit.getServer().createInventory(player, 9, Main.translate("&9Kovács pult. Fejlessz!"));
            ItemStack idk = new ItemStack(Material.ANVIL, 1);
            ItemMeta metaidk = Items.bezbozuto.getItemMeta();
            metaidk.setDisplayName(Main.translate("&2Kovácsolás Indítása"));
            metaidk.spigot().setUnbreakable(true);
            List<String> loreidk = new ArrayList<String>();
            loreidk.add(Main.translate("&eFejlesztéshez kattints IDE!"));
            metaidk.setLore(loreidk);
            idk.setItemMeta(metaidk);
            //inv.setItem(0, idk);
           
            ItemStack kardhelye = new ItemStack(Material.STAINED_GLASS_PANE, 1);
            ItemMeta metakardhelye = kardhelye.getItemMeta();
            metakardhelye.setDisplayName(Main.translate("&e<-- Fejlesztendő kard helye"));
            kardhelye.setItemMeta(metakardhelye);
           
    
            ItemStack ekko = new ItemStack(Material.STAINED_GLASS_PANE, 1);
            ItemMeta metaekko = ekko.getItemMeta();
            metaekko.setDisplayName(Main.translate("&e<-- Isteni Ékkövek helye"));
            List<String> loreekko = new ArrayList<String>();
            loreekko.add(Main.translate("&4    (A megadott mennyiségben)"));
            metaekko.setLore(loreekko);
            ekko.setItemMeta(metaekko);
           
            ItemStack kovacsjegy = new ItemStack(Material.STAINED_GLASS_PANE, 1);
            ItemMeta metakovacsjegy = kovacsjegy.getItemMeta();
            metakovacsjegy.setDisplayName(Main.translate("&e<-- Kovácsjegy helye"));
            List<String> lorekovacsjegy = new ArrayList<String>();
            lorekovacsjegy.add(Main.translate("&4(A kovács csak a jegyért cserébe fejleszt)"));
            metakovacsjegy.setLore(lorekovacsjegy);
            kovacsjegy.setItemMeta(metakovacsjegy);
           
           
            ItemStack specitem = new ItemStack(Material.STAINED_GLASS_PANE, 1);
            ItemMeta metaspecitem = specitem.getItemMeta();
            metaspecitem.setDisplayName(Main.translate("&e<-- Speciális Item helye"));
            List<String> lorespecitem = new ArrayList<String>();
            lorespecitem.add(Main.translate("&4(Némely erős fegyver speciális"));
            lorespecitem.add(Main.translate("&4  fejlesztési Itemet igényel)"));
            metaspecitem.setLore(lorespecitem);
            specitem.setItemMeta(metaspecitem);
           
            inv.setItem(7, specitem);
            inv.setItem(5, kovacsjegy);
            inv.setItem(3, ekko);
            inv.setItem(1, kardhelye);
            inv.setItem(8, idk);
            player.openInventory(inv);
        }
       
    }
    What it does: makes items name upgrade from "normalname" to "normalname +1" and +2 and so on in a GUI
    When error is printed: clicking on the defined items such as Nether Star and Wood Sword in the inventory.
    Why is error printed: thats your part...
     

    Attached Files:

    Last edited by a moderator: Oct 2, 2018
  2. Online

    timtower Administrator Administrator Moderator

    @ashj1234 You are checking the displayName() before you check if there is a displayname.
     
  3. Offline

    ashj1234

    Tried this :
    code (open)

    if (!event.getView().getTopInventory().getItem(0).hasItemMeta()) {
    return;
    }

    Cant get to work. :/ And yes You're right. Ty :)
     
  4. Online

    timtower Administrator Administrator Moderator

  5. Offline

    ashj1234

    @timtower It doesnt work. I mean I can't type in here this: .getItem(0).hasDisplayName or .hasItemMeta().hasDisplayName
     
  6. Online

    timtower Administrator Administrator Moderator

    @ashj1234 getItemMeta().hasDisplayName()
     
  7. Offline

    ashj1234

    Attached Files:

  8. Online

    timtower Administrator Administrator Moderator

    @ashj1234 getItemMeta().hasDisplayName()
     
Thread Status:
Not open for further replies.

Share This Page