Solved Respawn and Death event

Discussion in 'Plugin Development' started by bigflori, Nov 16, 2018.

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

    bigflori

    Hello!
    Can someone explain me why it is not add any items to my inventory after respawning?
    Btw. when I remove e.getDrops().clear(); it works but I don't want to drop their items

    Code:
    package me.bigflori.boosters.Features;
    
    import java.util.List;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.inventory.ItemStack;
    
    import me.bigflori.boosters.gl;
    
    public class SaveRod extends gl implements Listener {
    
        @SuppressWarnings("static-access")
        @EventHandler
        public void onSaveRodDeathEvent(PlayerDeathEvent e) {
            if(vars.saveRod) {
                if(e.getEntity() instanceof Player) {
                    Player p = (Player) e.getEntity();
                    List<ItemStack> drops = e.getDrops();
                    vars.saveRod_drops.put(p.getName(), drops);
                    e.getDrops().clear();
                }
            }
        }
    
        @SuppressWarnings("static-access")
        @EventHandler
        public void onSaveRodRespawnEvent(PlayerRespawnEvent e) {
            if(vars.saveRod) {
                Player p = e.getPlayer();
                if(vars.saveRod_drops.containsKey(p.getName())) {
                    for(ItemStack is : vars.saveRod_drops.get(p.getName())) {
                        p.getInventory().addItem(is);
                    }
                    vars.saveRod_drops.remove(p.getName());
                }
            }
        }
    
    }
    
    
    EDIT: Solved by myself
    Everything the same only this changed:
    Code:
    if(e.getEntity() instanceof Player) {
         Player p = (Player) e.getEntity();
         List<ItemStack> drops = new ArrayList<>();
         drops.addAll(e.getDrops());
         vars.saveRod_drops.put(p.getName(), drops);
         e.getDrops().clear();
    }
    
     
    Last edited: Nov 16, 2018
Thread Status:
Not open for further replies.

Share This Page