Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
clone.Как сохранить инвенарь я понял, а как востановить его после очистки, нет.
Как это реализовать?
JavaScript:p.getInventory()); //PlayerInventory p.getInventory().clear(); //PlayerInventory
Ты получаешь ссылку на объект, а тебе нужно новую копию. Попробуй использовать метод clone.Как сохранить инвенарь я понял, а как востановить его после очистки, нет.
Как это реализовать?
JavaScript:p.getInventory()); //PlayerInventory p.getInventory().clear(); //PlayerInventory
p.getInventory().clone();
p.getInventory().clear();
Самый ужасный вариант, что я видел.Записать инвентарь в хешмап при событие дамага, потом с помощью цикла вернуть каждый стак.
А как иначе?Самый ужасный вариант, что я видел.
HashMap<Player, Inventory> s = new HashMap<Player, Inventory>();
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
public void asd(PlayerDeathEvent e){
Player p = (Player) e.getEntity();
s.put(p, p.getInventory());
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
public void e(PlayerRespawnEvent e) {
e.getPlayer().getInventory().setContents(s.get(e.getPlayer()).getContents());
s.remove(e.getPlayer());
}
Спасибо, только сделал не через Inventory, а через ItemStack[]. (Через Inventory почему то не завилосьПопробуй так. Не тестил.Java:HashMap<Player, Inventory> s = new HashMap<Player, Inventory>(); @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) public void asd(PlayerDeathEvent e){ Player p = (Player) e.getEntity(); s.put(p, p.getInventory()); } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) public void e(PlayerRespawnEvent e) { e.getPlayer().getInventory().setContents(s.get(e.getPlayer()).getContents()); s.remove(e.getPlayer()); }
)Map<Player, ItemStack[]> DataPlayersInv = new HashMap<Player, ItemStack[]>();
public void GoToLevel(Player p) {
DataPlayersInv.put(p, p.getInventory().getContents());
p.getInventory().clear();
}
public void Exit(Player p){
p.getInventory().clear();
p.getInventory().setContents(DataPlayersInv.get(p));
p.updateInventory();
DataPlayersInv.remove(p);
}