Помогите Переменная из lore

  • Автор темы Автор темы Flllame
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Flllame

Активный участник
Пользователь
Баллы
68
хочу сделать прочность предмету через лор покопавшись в гугле я набросал такой код

private void removeItem(Player p){

int number = Integer.valueOf(p.getInventory().getItemInMainHand().getItemMeta().getLore().get(1).split(" ")[1]);
int number2 = (number + 1);
ItemMeta meta = p.getInventory().getItemInMainHand().getItemMeta();
ArrayList<String> lore = new ArrayList<String>();
lore.add(meta.getLore().get(0));
lore.add(ChatColor.translateAlternateColorCodes('&', "&eПрочность: " + number2));
meta.setLore(lore);
if(number2 > 1){
p.getInventory().getItemInMainHand().setItemMeta(meta);
p.updateInventory();
} else {
p.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
}

естественно такой вариант работать не захотел
есть какие мысли по этому поводу?
 
как-то так мб?

JavaScript:
if string.startsWith("§eПрочность: ") {
int pos = lore.indexOf(string)
int number = Integer.parseInt(string.replace("§eПрочность:"), "");
number++;
lore.remove(pos);
lore.add(pos, "Прочность: " + number);
}
 
если я имею придмет с лорам Прочность: 100 когда я его юзаю его его лор установится Прочность: 99 если меньше 1 то предмет удаляется из руки
мне надо получить из лоры Прочность: 100 цифру 100 как переменую
 
ну как-то так
JavaScript:
for (String s : lore) {
  if (s.startsWith("§eПрочность: ")) {
    int pos = lore.indexOf(string)
    int number = Integer.parseInt(string.replace("§eПрочность: "), "");
    if (number <= 1) {
       p.getInventory().setItemInMainHand(null);
       return;
    }
    number--;
    lore.remove(pos);
    lore.add(pos, "§eПрочность: " + number);
    meta.setLore(lore);
    item.setItemMeta(meta);
    p.getInventory().setItemInMainHand(item);
    break;
  }
}
}
 
что то не получается ничего
что здесь не так ?

private void removeItem(Player p){

ItemStack item = p.getInventory().getItemInMainHand();
ItemMeta item_meta = item.getItemMeta();

ArrayList<String> lore = new ArrayList<String>();

for (String s : lore) {
if (s.startsWith("§eПрочность: ")) {
int pos = lore.indexOf(item_meta.getLore().get(1));
int number = Integer.parseInt(item_meta.getLore().get(1).replace("§eПрочность: "), "");
if (number <= 1) {
p.getInventory().setItemInMainHand(null);
return;
}
number--;
lore.remove(pos);
lore.add(pos, "§eПрочность: " + number);
item_meta.setLore(lore);
item.setItemMeta(item_meta);
p.getInventory().setItemInMainHand(item);
break;
}
}


}
 
к переменой lore не присаивается item_meta.getLore();
 
int pos = lore.indexOf(string)
int number = Integer.parseInt(string.replace("§eПрочность: "), "");
почему string красным подчёркивается ?
слава яйцам проблему нашёл первая строчка .get(0) а я писал 1
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх