Care Packages (help)

Discussion in 'Plugin Development' started by maxben34, Nov 13, 2013.

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

    maxben34

    I'm trying to make a carepackage that will spawn in with a random item (killstreak reward). I have yet to code the many of the killstreak rewards, because I am stuck on getting this carepackage to work. Basically what it's supposed to do is when a snowball is thrown, a chest drops from the sky at that location. Only the player that threw the snowball can open it, since he has a key (Nametag). When the chest is right clicked with the key, it should open the Care package inventory (In the code it is the "care" object). When a player takes the items from the carepackage, the inventory will automatically close and the carepackage will get removed.
    Currently my code isn't working and when a chest is right clicked with an nametag it gives a stacktrace, lags the server, and opens the inventory without any items.

    Code:
    Code:java
    1. @EventHandler
    2. public void onInventoryClick(InventoryOpenEvent e){
    3.  
    4. Inventory inventory = e.getInventory();
    5.  
    6. if (inventory.getType().equals(InventoryType.CHEST)){
    7. final Player player = (Player) e.getPlayer();
    8. ItemStack itemInHand = player.getItemInHand();
    9. if (!itemInHand.getType().equals(Material.NAME_TAG)) {
    10. e.setCancelled(true);
    11. player.damage(1.0, player);
    12. return;
    13. }
    14. Bukkit.getScheduler().scheduleSyncDelayedTask(this,new Runnable(){
    15. public void run(){
    16. player.openInventory(care);
    17. cpackage();
    18. }
    19. },1);
    20. }
    21. }
    22.  
    23. @EventHandler
    24. public void onCarePackageTake(InventoryClickEvent e){
    25. if(e.getInventory().getName().equals(care.getName())){
    26. Player player = (Player) e.getWhoClicked();
    27. ItemStack clicked = e.getCurrentItem();
    28. Material c = clicked.getType();
    29. player.getInventory().setItem(8, new ItemStack(c));
    30. player.closeInventory();
    31. }
    32. }
    33. @SuppressWarnings("deprecation")
    34. @EventHandler
    35. public void onInventoryClose(InventoryCloseEvent e){
    36. if(e.getInventory().getName().equals(care.getName())){
    37. Location loc = e.getPlayer().getLocation();
    38. if (loc.getBlock().getRelative(6, 6, 6).getType().equals(Material.CHEST)) {
    39. Block c = loc.getBlock().getRelative(6, 6, 6);
    40. ((Player) e.getPlayer()).sendMessage("The care package is now gone!");
    41. c.setType(Material.AIR);
    42. c.getWorld().playEffect(c.getLocation(), Effect.STEP_SOUND, c.getTypeId());
    43. }
    44.  
    45. }
    46. }
    47. }


    Stack Trace:
    Code:
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callInventoryO
    penEvent(CraftEventFactory.java:559)
            at net.minecraft.server.v1_6_R3.EntityPlayer.openContainer(EntityPlayer.
    java:552)
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:193)
            at me.maxben34.carepackage.carepackage.onInventoryClick(carepackage.java
    :1083)
            at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
    Caused by: java.lang.StackOverflowError
            at java.util.HashMap.<init>(Unknown Source)
            at java.util.HashMap.<init>(Unknown Source)
            at java.util.HashSet.<init>(Unknown Source)
            at net.minecraft.server.v1_6_R3.Container.<init>(Container.java:26)
            at net.minecraft.server.v1_6_R3.ContainerChest.<init>(ContainerChest.jav
    a:35)
     
  2. Offline

    Windy Day

    Well which line is line 1083? The numbering is off.
     
  3. Offline

    maxben34

    Oh sorry I forgot. I think it would translate to line 14 but the whole code isn't working right, since when the care inventory opens correctly the mouse gets glitches in the inventory and you can't close it.
     
Thread Status:
Not open for further replies.

Share This Page