Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите шмот

energy455

Активный участник
Пользователь
Баллы
78
Как можно взять у игрока шмот, записать в массив, а потом по команде отдать его?

Спасибо
 
Как можно взять у игрока шмот, записать в массив, а потом по команде отдать его?

Спасибо
Если под "взять" подразумевается "изъять"(удалить), то:
Java:
    Map<Player, ItemStack[]> invContents = new HashMap<Player, ItemStack[]>();//инвентарь
    Map<Player, ItemStack[]> armContents = new HashMap<Player, ItemStack[]>();//броня

    public void removeAll(Player pl)
    {
        if(invContents.containsKey(pl))//Если запись была,
            invContents.remove(pl);    //заменяем на новую
   
        if(armContents.containsKey(pl))
            armContents.remove(pl);
   
        invContents.put(pl, pl.getInventory().getContents());
        armContents.put(pl, pl.getInventory().getArmorContents());
   
        pl.getInventory().clear();//очищаем инвентарь
    }

    //Возвращаем вещи
    public void giveAll(Player pl)
    {
        if(invContents.containsKey(pl))
        {
            pl.getInventory().setContents(invContents.get(pl));
            invContents.remove(pl);
        }
      
        if(armContents.containsKey(pl))
        {
            pl.getInventory().setArmorContents(armContents.get(pl));
            armContents.remove(pl);
        }
    }
 
Последнее редактирование:
Если под "взять" подразумевается "изъять"(удалить), то:
Java:
    Map<Player, ItemStack[]> invContents = new HashMap<Player, ItemStack[]>();//инвентарь
    Map<Player, ItemStack[]> armContents = new HashMap<Player, ItemStack[]>();//броня

    public void removeAll(Player pl)
    {
        if(invContents.containsKey(pl))//Если запись была,
            invContents.remove(pl);    //заменяем на новую
   
        if(armContents.containsKey(pl))
            armContents.remove(pl);
   
        invContents.put(pl, pl.getInventory().getContents());
        armContents.put(pl, pl.getInventory().getArmorContents());
   
        pl.getInventory().clear();//очищаем инвентарь
    }

    //Возвращаем вещи
    public void giveAll(Player pl)
    {
        if(invContents.containsKey(pl))
        {
            pl.getInventory().setContents(invContents.get(pl));
            invContents.remove(pl);
        }
      
        if(armContents.containsKey(pl))
        {
            pl.getInventory().setArmorContents(armContents.get(pl));
            armContents.remove(pl);
        }
    }
Не стоит так делать.
 
Если под "взять" подразумевается "изъять"(удалить), то:
Java:
    Map<Player, ItemStack[]> invContents = new HashMap<Player, ItemStack[]>();//инвентарь
    Map<Player, ItemStack[]> armContents = new HashMap<Player, ItemStack[]>();//броня

    public void removeAll(Player pl)
    {
        if(invContents.containsKey(pl))//Если запись была,
            invContents.remove(pl);    //заменяем на новую
  
        if(armContents.containsKey(pl))
            armContents.remove(pl);
  
        invContents.put(pl, pl.getInventory().getContents());
        armContents.put(pl, pl.getInventory().getArmorContents());
  
        pl.getInventory().clear();//очищаем инвентарь
    }

    //Возвращаем вещи
    public void giveAll(Player pl)
    {
        if(invContents.containsKey(pl))
        {
            pl.getInventory().setContents(invContents.get(pl));
            invContents.remove(pl);
        }
     
        if(armContents.containsKey(pl))
        {
            pl.getInventory().setArmorContents(armContents.get(pl));
            armContents.remove(pl);
        }
    }
спасибо огромное))

вот что я искал
pl.getInventory().getContents())
pl.getInventory().getArmorContents())
getInventory().setContents
getInventory().setArmorContents

thank you
 

Поделиться этой страницей

Назад
Верх