Restore inventory before the player leaves the game

Discussion in 'Plugin Development' started by Zenok, Jan 25, 2014.

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

    Zenok

    I tried to restore player inventory before the player leaves the game, but doesn't work

    some method to do this?

    Code:java
    1. public static Map<String, ItemStack[]> ACCOUNT_ITEMS = new HashMap<String, ItemStack[]>();
    2. public static Map<String, ItemStack[]> ACCOUNT_EQUIPMENT = new HashMap<String, ItemStack[]>();


    Code:java
    1.  
    2. @EventHandler
    3. public void onPlayerQuit(PlayerQuitEvent event) {
    4. Player player = event.getPlayer();
    5. restoreInventory(player);
    6. }
    7. //---------------------------------------------------------------------------------------------------------
    8. public static void saveInventory(Player player) {
    9. ItemStack[] items = player.getInventory().getContents();
    10. ItemStack[] equipment = player.getEquipment().getArmorContents();
    11.  
    12. ACCOUNT_ITEMS.put(player.getName(), items);
    13. ACCOUNT_EQUIPMENT.put(player.getName(), equipment);
    14. player.getInventory().clear();
    15.  
    16. player.getInventory().setHelmet(null);
    17. player.getInventory().setChestplate(null);
    18. player.getInventory().setLeggings(null);
    19. player.getInventory().setBoots(null);
    20. }
    21. //---------------------------------------------------------------------------------------------------------
    22. public static void restoreInventory(Player player) {
    23. //SET PLAYER ITEMS
    24. if(ACCOUNT_ITEMS.containsKey(player.getName())){
    25. player.getInventory().clear();
    26. player.getInventory().setContents(ACCOUNT_ITEMS.get(player.getName()));
    27.  
    28. ACCOUNT_ITEMS.remove(player.getName());
    29. }
    30.  
    31. //SET PLAYER EQUIPMENT
    32. if(ACCOUNT_EQUIPMENT.containsKey(player.getName())){
    33. player.getInventory().setHelmet(null);
    34. player.getInventory().setChestplate(null);
    35. player.getInventory().setLeggings(null);
    36. player.getInventory().setBoots(null);
    37.  
    38. player.getEquipment().setArmorContents(ACCOUNT_EQUIPMENT.get(player.getName()));
    39. ACCOUNT_EQUIPMENT.remove(player.getName());
    40. }
    41. }
     
  2. Offline

    MrInspector

    You don't have a @EventHandler.

    Code:java
    1. // Example
    2. @EventHandler
    3. public void onQuit(PlayerQuitEvent e){
    4. // do your stuff here
    5. }
    6. }
     
  3. Offline

    Zenok

    Sorry, I forgot to add in the code. But it is already added

    Still not working
     
Thread Status:
Not open for further replies.

Share This Page