Solved Inventory Help

Discussion in 'Plugin Development' started by AngryCupcake274, Jul 22, 2014.

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

    AngryCupcake274

    Hello, I am developing a plugin, and testing out some sign stuff. When a player clicks a sign, it should fill up their entire hotbar with shovels, but it only fills up one slot. But when the player relogs to the server, all the slots are filled.
    Here is my code:
    Code:java
    1. public void devTest() {
    2. List<String> spadeLores = new ArrayList<String>();
    3. spadeLores.add("Spleef!!");
    4. String spadeName = "The Spleefing Machine";
    5. ItemStack spade = new ItemStack(Material.DIAMOND_SPADE);
    6. ItemMeta spadeMeta = spade.getItemMeta();
    7. spadeMeta.setDisplayName(spadeName);
    8. spadeMeta.setLore(spadeLores);
    9. spade.setItemMeta(spadeMeta);
    10. spade.addUnsafeEnchantment(Enchantment.DIG_SPEED, 10);
    11. p2.getInventory().clear();
    12.  
    13. p2.getInventory().setHeldItemSlot(0);
    14. p2.getInventory().addItem(spade);
    15. p2.getInventory().setHeldItemSlot(1);
    16. p2.getInventory().addItem(spade);
    17. p2.getInventory().setHeldItemSlot(2);
    18. p2.getInventory().addItem(spade);
    19. p2.getInventory().setHeldItemSlot(3);
    20. p2.getInventory().addItem(spade);
    21. p2.getInventory().setHeldItemSlot(4);
    22. p2.getInventory().addItem(spade);
    23. p2.getInventory().setHeldItemSlot(5);
    24. p2.getInventory().addItem(spade);
    25. p2.getInventory().setHeldItemSlot(6);
    26. p2.getInventory().addItem(spade);
    27. p2.getInventory().setHeldItemSlot(7);
    28. p2.getInventory().addItem(spade);
    29. p2.getInventory().setHeldItemSlot(8);
    30. p2.getInventory().addItem(spade);
    31. p2.getInventory().setHeldItemSlot(4);
    32. p2.getInventory().addItem(spade);
    33. }

    P.S.
    This code is activated when the sign is clicked.
     
  2. Offline

    Bavestry

    Try checking this method out, rather than using addItem(), and setHeldItemSlot(), though I don't think it's that big of a deal.

    Code:java
    1. p2.getInventory().setItem(0, spade);
     
  3. Offline

    mythbusterma

    AngryCupcake274

    Make sure to call Player#updateInventory() when you're done
     
  4. Offline

    AngryCupcake274

    mythbusterma

    Thank you. I had a feeling I had to update the inventory, but I didn't know how to. It worked, and now you get 9 Spleefing Machines!
     
Thread Status:
Not open for further replies.

Share This Page