- Баллы
- 173
- Имя в Minecraft
- Nick
Пытаюсь сохранить определенный предмет в инвентаре, чтобы он не мог выпасть при смерти, однако происходят странности. Когда имеются только те предметы которые нужно сохранить(с меткой), они сохраняются. Но если в инвентаре есть хотя бы один предмет без метки, то не сохраняется ни чего.
Код:
private static final Map<Player, ItemStack[]> INVENTORIES = new HashMap<>();
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerDeath(PlayerDeathEvent e) {
Player p = e.getEntity();
List<ItemStack> contents = new ArrayList<>();
for (ItemStack drop : e.getDrops()) {
if(drop.getItemMeta()==null)return;
if(drop.getItemMeta().getDisplayName().equalsIgnoreCase(null))return;
if (drop.getItemMeta().getDisplayName().endsWith("§b метка")) {
contents.add(drop);
e.getDrops().remove(drop);
}
}
INVENTORIES.put(p, contents.toArray(new ItemStack[contents.size()]));
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerRespawn(PlayerRespawnEvent e) {
Player p = e.getPlayer();
p.getInventory().addItem(INVENTORIES.get(p));
INVENTORIES.remove(p);
}