Войти или зарегистрироваться

Помогите ArmorContens

CraftCoder

Старожил
Пользователь
Баллы
108
Имя в Minecraft
CraftCoderr
Всем привет!

Получаю броню вот так armorsave.put(p, p.getInventory().getArmorContents());
armorsave = new HashMap<Player, ItemStack[]>();
Вопрос: как теперь эту броню запихнуть в inventory в котором уже что-то есть?
 
Никогда нигде не храни объект игрока. Храни его имя и получай через Bukkit.getPlayer(Exact)().
 
Проходишься for'ом по ItemStack[]'у и добавляешь предмет в инвентарь.
Не могу, NullPointerException
Даже если в пустой инвентарь inventory положить armorsave(inventory.setcontens(armorsave.get(p)), то складывается только первая одетая вещь, т.е если одета шапка кераса и ботинки, положится только шапка, а если одето штаны и ботинки, то положится только штаны.

И еще, armorsave.get(p).length возвращает null;
 
Последнее редактирование:
Не могу, NullPointerException
Может быть код? Сомневаюсь, что тут есть люди диагностирующие ваши баги удаленно.
Даже если в пустой инвентарь inventory положить armorsave(inventory.setcontens(armorsave.get(p)), то складывается только первая одетая вещь, т.е если одета шапка кераса и ботинки, положится только шапка, а если одето штаны и ботинки, то положится только штаны.

И еще, armorsave.get(p).length возвращает null;
Что за магическую конструкцию вы написали "armorsave(inventory.setcontens(armorsave.get(p))"? У вас метод называется так же как HashMap?
armorsave.get(p).length - а чем мы вам поможем, если вы сами положили в HashMap ItemStack[] = null?
 
Может быть код? Сомневаюсь, что тут есть люди диагностирующие ваши баги удаленно.Что за магическую конструкцию вы написали "armorsave(inventory.setcontens(armorsave.get(p))"? У вас метод называется так же как HashMap?
armorsave.get(p).length - а чем мы вам поможем, если вы сами положили в HashMap ItemStack[] = null?
Нет я же в HashMap ItemStack[] положил p.getArmorContens.
 
Нет я же в HashMap ItemStack[] положил p.getArmorContens.
Возможно вы неверно написали и на самом деле armorsave.get(p) возвращает null? Тогда это значит что по ключу p у вас нет данных в HashMap. И простите но у Player нет метода о котором вы говорите - getArmorContens.
 
Возможно вы неверно написали и на самом деле armorsave.get(p) возвращает null? Тогда это значит что по ключу p у вас нет данных в HashMap. И простите но у Player нет метода о котором вы говорите - getArmorContens.
Да, возвращает null, но я складываю p.Inventory.getArmorContents, почему же null возвращает.
 
Я лупень...
Все работает всем спасибо, kris13 лайки нужны? Могу твои сообщения пролайкать.
Да нет, я помогаю, потому что когда что-то объясняешь другому человеку время от времени приходят интересные мысли. Это как в том анекдоте про преподавателя и студента "Я ему и так объяснил и по другому, уже даже сам понял, а он никак понять не может" =)
 
Да не там другое, но если хочешь и тебе лайк поставлю
Именно это. get() в мапе возвращает null, если нет объекта с таким ключом, а у тебя его не было, так как объект игрока 100 раз успел измениться с момента помещения в мапу.
 
И еще, не по теме, но как узнать пустой инвентарь или нет, я делаю так
Код:
for(int i = 0; i<44; i++) {
if(event.getInventory().getContents()[i] != null){n++;}
};           
if(n < 45)
{
//что-то делаю
}
, не получается:(
 
И еще, не по теме, но как узнать пустой инвентарь или нет, я делаю так
Код:
for(int i = 0; i<44; i++) {
if(event.getInventory().getContents()[i] != null){n++;}
};        
if(n < 45)
{
//что-то делаю
}
, не получается:(
Что это за говнокод наркомания?
Код:
if(event.getInventory().getContents().length == 0) something();
 
Назад
Верх