ServerPlugin Wenn ich ein item im Inventar habe kommt ein fehler von meine Plugin!

Dieses Thema im Forum "Programmierung" wurde erstellt von CrackRudi, 18. April 2016.

  1. CrackRudi
    Offline

    CrackRudi

    Registriert seit:
    18. April 2016
    Beiträge:
    33
    Hallo Liebs Form,
    Ich habe ein Problem mit meinem Plugin.Ich habe ein Plugin Programmiert mit einer Inventar Gui wo ich Items definiert habe aber wenn ich jetzt diese Items ins Inventar nehme und sie im Inventar bewege kommt ein Fehler!

    Classe : http://pastebin.com/w7NYgCfs




    [18:06:51 ERROR]: Could not pass event InventoryCreativeEvent to CreackBurnSurvivalSystem v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:2000) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.PacketPlayInSetCreativeSlot.a(SourceFile:23) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.PacketPlayInSetCreativeSlot.a(SourceFile:9) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_25]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
    at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:721) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
    Caused by: java.lang.NullPointerException
    at de.crackrudi.crackburnsurvival.cmd.CMD_Vip.onClick(CMD_Vip.java:130) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    ... 15 more
     
    #1
  2. Bolver
    Offline

    Bolver

    Registriert seit:
    9. Juni 2014
    Beiträge:
    8
    Hey,

    ich habe zwar schon länger nicht mehr Plugins gecodet jedoch stand ich mal vor genau dem selben Problem.

    Du fragst immer beim Click im Inventar ab welches Item sich in dem Slot befindet aber dein Fehler ist,
    wenn du das Item auf ein leeres Feld legst nimmt er den Stack durch dein ClickEvent und fragt dann ab welches Item sich dort befindet aber weil da keins ist bekommst du eine Exception.
     
    #2
  3. CrackRudi
    Offline

    CrackRudi

    Registriert seit:
    18. April 2016
    Beiträge:
    33
    Hey, und wie kann ich dass ändern?
     
    #3
  4. Bamas
    Online

    Bamas

    Registriert seit:
    30. März 2016
    Beiträge:
    7
    Ohne die Bukkit API jetzt auswendig zu kennen sollte sowas wie if(event.GetItem != null) helfen.
     
    #4
    jensIO gefällt das.
  5. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Caused by: java.lang.NullPointerException
    at de.crackrudi.crackburnsurvival.cmd.CMD_Vip.onClick(CMD_Vip.java:130) ~[?:?]

    In Zeile 130 ist irgendwas NULL... Ich vermute mal einfach das entweder das Itemstack ist oder das Itemstack keine Itemmeta hat.
    Überprüf einfach vorher ob alles vorhanden ist.
     
    #5
    jensIO gefällt das.
  6. MysticRunes
    Offline

    MysticRunes

    Registriert seit:
    19. November 2013
    Beiträge:
    40
    Du prüfst jedes mal ob ein Item einen bestimmten Namen hat, sobald du aber den richtigen Namen gefunden hast brauchst du nicht noch die anderen Items überprüfen, deshalb solltest du die ifs in else if umwandeln.

    Besser wäre villeicht sogar Folgendes:
    Code (Text):
    1.  
    2.   @EventHandler
    3.    public void onInventoryClick(InventoryClickEvent e){
    4.      final int slot = e.getRawSlot();
    5.      switch(slot){
    6.       case 0: //erster slot angeklickt?
    7.            //.....
    8.            break;
    9.       case 1: //zweiter slot angeklickt?
    10.            //.....
    11.            break;
    12.      }
    13.  
    Um den Fehler zu beheben könntest du das hier probieren (Bin mir da aber nicht 100% sicher):
    Code (Text):
    1. if(e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR){
     
    #6
    CrackRudi und jensIO gefällt das.
  7. CrackRudi
    Offline

    CrackRudi

    Registriert seit:
    18. April 2016
    Beiträge:
    33
    Danke bin grade am probieren ab es klappt Danke
     
    #7
  8. CrackRudi
    Offline

    CrackRudi

    Registriert seit:
    18. April 2016
    Beiträge:
    33
    Hey,
    so habe jetzt noch mal etwas programmiert aber es kommt der gleiche Fehler!

    Code (Text):
    1. [18:55:17 ERROR]: Could not pass event InventoryCreativeEvent to CreackBurnSurvivalSystem v1.0
    2. org.bukkit.event.EventException
    3.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    4.         at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    5.         at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    6.         at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    7.         at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:2000) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    8.         at net.minecraft.server.v1_9_R1.PacketPlayInSetCreativeSlot.a(SourceFile:23) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    9.         at net.minecraft.server.v1_9_R1.PacketPlayInSetCreativeSlot.a(SourceFile:9) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    10.         at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    11.         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_25]
    12.         at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
    13.         at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    14.         at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:721) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    15.         at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    16.         at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    17.         at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    18.         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
    19. Caused by: java.lang.NullPointerException
    20.         at de.crackrudi.crackburnsurvival.cmd.CMD_Vip.onClick(CMD_Vip.java:134) ~[?:?]
    21.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    22.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25]
    23.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
    24.         at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
    25.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.9.2.jar:git-Spigot-944aa20-8d16fc0]
    26.         ... 15 more
    Code (Text):
    1. package de.crackrudi.events;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.block.Action;
    9. import org.bukkit.event.inventory.InventoryClickEvent;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11. import org.bukkit.event.player.PlayerJoinEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15.  
    16. import net.md_5.bungee.api.ChatColor;
    17.  
    18. public class Event_VipGui implements Listener {
    19.  
    20.     String pr = "§7[§eCrackBurn§7] ";
    21.  
    22.     private void openGUI(Player player) {
    23.         Inventory inv = Bukkit.createInventory(null, 27,pr + ChatColor.GOLD + "Vip Menü");
    24.      
    25.         // Heal
    26.         ItemStack heal = new ItemStack(Material.RED_ROSE);
    27.         ItemMeta healmeta = heal.getItemMeta();
    28.      
    29.         //Feed
    30.         ItemStack feed = new ItemStack(Material.BREAD);
    31.         ItemMeta feedmeta = feed.getItemMeta();
    32.      
    33.         //WorkBench
    34.         ItemStack workbench = new ItemStack(Material.WORKBENCH);
    35.         ItemMeta workbenchmeta = workbench.getItemMeta();
    36.      
    37.         //EnderChest
    38.         ItemStack enderchest = new ItemStack(Material.ENDER_CHEST);
    39.         ItemMeta enderchestmeta = enderchest.getItemMeta();
    40.      
    41.         //Kit Vip
    42.         ItemStack vipkit = new ItemStack(Material.DIAMOND_SWORD);
    43.         ItemMeta vipkitmeta = vipkit.getItemMeta();
    44.      
    45.         //Spawn
    46.         ItemStack spawn = new ItemStack(Material.FIREWORK);
    47.         ItemMeta spawnmeta = spawn.getItemMeta();
    48.      
    49.         //RandomTeleporter
    50.         ItemStack randomtp = new ItemStack(Material.COMPASS);
    51.         ItemMeta randomtpmeta = randomtp.getItemMeta();
    52.      
    53.      
    54.         //Names
    55.      
    56.      
    57.         //Heal Name
    58.         healmeta.setDisplayName(ChatColor.DARK_RED + "Healt dich!");
    59.         heal.setItemMeta(healmeta);
    60.      
    61.         //Feed Name
    62.         feedmeta.setDisplayName(ChatColor.DARK_BLUE + "Feed Dich!");
    63.         feed.setItemMeta(feedmeta);
    64.      
    65.         //WorkBench Name
    66.         workbenchmeta.setDisplayName(ChatColor.DARK_GREEN + "Öffne WorkBench!");
    67.         workbench.setItemMeta(workbenchmeta);
    68.      
    69.         //EnderChest Name
    70.         enderchestmeta.setDisplayName(ChatColor.DARK_GREEN + "Öffne EnderChest!");
    71.         enderchest.setItemMeta(enderchestmeta);
    72.      
    73.         //KitVip Name
    74.         vipkitmeta.setDisplayName(ChatColor.DARK_AQUA + "Vip Kit!");
    75.         vipkit.setItemMeta(vipkitmeta);
    76.      
    77.         //Spawn Name
    78.         spawnmeta.setDisplayName(ChatColor.DARK_GRAY + "Teleportiert zum Spawn!");
    79.         spawn.setItemMeta(spawnmeta);
    80.      
    81.         //RandomTeleport Name
    82.         randomtpmeta.setDisplayName(ChatColor.GOLD + "Random Welt Teleporter!");
    83.         randomtp.setItemMeta(randomtpmeta);
    84.      
    85.         inv.setItem(1, heal);
    86.         inv.setItem(3, feed);
    87.         inv.setItem(6, randomtp);
    88.         inv.setItem(8, workbench);
    89.         inv.setItem(10, enderchest);
    90.         inv.setItem(12, spawn);
    91.         inv.setItem(14, vipkit);
    92.      
    93.         player.openInventory(inv);
    94.  
    95.  
    96.     }
    97.  
    98.     @EventHandler
    99.     public void onInventoryClick(InventoryClickEvent event) {
    100.         if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Vip Menü"))
    101.             return;
    102.         Player player = (Player) event.getWhoClicked();
    103.         event.setCancelled(true);
    104.      
    105.         if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR || !event.getCurrentItem().hasItemMeta()){
    106.             player.closeInventory();
    107.             return;
    108.          
    109.          
    110.         }
    111.      
    112.         switch(event.getCurrentItem().getType()) {
    113.         case RED_ROSE:
    114.             player.performCommand("heal");
    115.             player.closeInventory();
    116.             player.sendMessage(pr + "Du wurdest Geheilt!");
    117.          
    118.             break;
    119.          
    120.         case BREAD:
    121.             player.performCommand("feed");
    122.             player.closeInventory();
    123.             player.sendMessage(pr + "Du wurdest gefüttert!");
    124.          
    125.             break;
    126.          
    127.         default:
    128.             player.closeInventory();
    129.          
    130.             break;
    131.              
    132.      
    133.         }
    134.     }
    135.  
    136.     @EventHandler
    137.     public void onVipJoin(PlayerJoinEvent event) {
    138.         Player p = event.getPlayer();
    139.      
    140.         if(p.hasPermission("crackburn.joinVip")){
    141.             event.getPlayer().getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE));
    142.          
    143.         }
    144.      
    145.     }
    146.  
    147.     @EventHandler
    148.     public void onPlayerInteract(PlayerInteractEvent event) {
    149.         Action a = event.getAction();
    150.         ItemStack is = event.getItem();
    151.      
    152.         if(a == Action.PHYSICAL || is == null || is.getType() == Material.AIR)
    153.             return;
    154.      
    155.         if(is.getType() == Material.GOLDEN_APPLE)
    156.             openGUI(event.getPlayer());
    157.      
    158.      
    159.      
    160.     }
    161.  
    162. }
    163.  
    Ich weiß nicht woran es liegt habe alle so gemacht !
    Es kommt immer noch der Gleiche Fehler! (Wenn ich ein Item nehme das ich in meiner Gui habe kommt ein Fehler!)


    ps: Ich benutze die 1.9

    Danke für eure Hilfe!
     
    #8
  9. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Master Tipp: lern einfach Java.....
    Du hast in diesem post noch nicht mal die Klasse gepostet in der der Fehler entsteht...
    1. Caused by: java.lang.NullPointerException
    2. at de.crackrudi.crackburnsurvival.cmd.CMD_Vip.onClick(CMD_Vip.java:134) ~[?:?]
     
    #9
    jensIO gefällt das.
  10. CrackRudi
    Offline

    CrackRudi

    Registriert seit:
    18. April 2016
    Beiträge:
    33
    Oh ich bin so ein Lappen stimmt sry aber danke für deine Antwort :) sry
     
    #10