Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Получи инвентарь игрока, получи коллекцию этих предметов, делай итерацию и ищи там нужный предмет с нужной метой, потом забирай его.Привет, хочу сделать прокачку предметов по типу бартера, типо нужно отдать другие предметы, чтобы получить прокачанный предмет. Столкнулся с такой проблемой что не знаю как проверить предмет в инвентаре игрока.
А зачем создавать коллекцию листа да и еще добавлять в него объекты массива, если можно тупо сделать forEach по массиву?public static void getpredmet(Player p) {
ItemStack[] arr = p.getInventory().getContents();
ArrayList<ItemStack> im = new ArrayList<ItemStack>();
for(int x = 0; x < arr.length;x++) {
im.add(arr[x]);
}
for (int i = 0; i < im.size(); i++) {
if(im.get(i) != null) {
Bukkit.broadcastMessage("§3#" + String.valueOf(im.get(i).getType()));
}
}
}
Посмотреть вложение 54735
Посмотреть вложение 54737
хз, я этого не знал)А зачем создавать коллекцию листа да и еще добавлять в него объекты массива, если можно тупо сделать forEach по массиву?
Учи stream api и foreach обычный.хз, я этого не знал)
Массивы не умеют в forEach(). Нужно либо в коллекцию, либо Stream.of(array)Учи stream api и foreach обычный.
Player.getInventory().getContents().forEach(stack -> {/*Твой код, stack это предмет*/});
В принципе я принцип показал. Можно обычным форычем можно стрим открыть.Массивы не умеют в forEach(). Нужно либо в коллекцию, либо Stream.of(array)
e.getPlayer().getInventory().forEach(item -> {
item.isSimilar(item2);
});
Ему по мете надо, а не по материалу. Более того, ответ на этот вопрос уже был дан ранееif(p.getInventory().contains(Material.IRON_INGOT)) {
/* ТВОЙ КОД */
}