- Баллы
- 66
- Имя в Minecraft
- ___CouRage___
Здравствуйте!
Проблема такая -
Всё работает как надо, хоть и "наколхожено", но только если на голове есть шлем с лором "1"
Без него - ругань в консоль. Ума не приложу, что делать.
Может быть есть способ упростить код?
=============================
Переписал всё с нуля, получилось вот так:
Меня пугает большое количество "if" - есть ли способ сделать код компактнее?
Проблема такая -
Код:
public void ScalyArmor(EntityDamageByEntityEvent event) {
Entity obj = event.getEntity();
if (obj instanceof Player) {
Player player = ((Player) obj).getPlayer();
ItemStack helmet = player.getEquipment().getHelmet();
String itemid = String.valueOf(helmet.getItemMeta().getLore().get(0));
float currXP = ((Player) obj).getExp();
int currLvL = ((Player) obj).getLevel();
if (currXP >= 0.05 && currLvL >= 15 && itemid == "1") {
((Player) obj).setExp((float) (((Player) obj).getExp()-0.05));
} else if (currXP <= 0.05 && currLvL >= 15 && itemid == "1") {
((Player) obj).setLevel(((Player) obj).getLevel()-1);
((Player) obj).setExp(1);
} else if (itemid != "1") {
player.sendMessage("Ошибка...");
}
}
}
Без него - ругань в консоль. Ума не приложу, что делать.
Может быть есть способ упростить код?
=============================
Переписал всё с нуля, получилось вот так:
Код:
public void Helmets(EntityDamageByEntityEvent event) {
Entity entity = event.getEntity();
if (entity instanceof Player) {
entity.sendMessage("Игрок найден!");
ItemStack helmet = ((Player) entity).getEquipment().getHelmet();
if (helmet != null && helmet.getItemMeta().hasLore()) {
entity.sendMessage("Предмет с lore найден");
String lore = String.valueOf(((Player) entity).getEquipment().getHelmet().getItemMeta().getLore().get(0));
String loreID[] = lore.split(": ");
String ID = loreID[1];
entity.sendMessage("Lore " + ID + " найден!");
if (Objects.equals(ID, "1")) {
//ПЛАСТИНЧАТЫЙ ШЛЕМ
entity.sendMessage("Выбран шлем с ID " + ID);
if (((Player) entity).getExp() >= 0.03 && ((Player) entity).getLevel() >= 30) {
((Player) entity).setExp((float) (((Player) entity).getExp()-0.03));
} else if (((Player) entity).getExp() < 0.03 && ((Player) entity).getLevel() >= 30) {
((Player) entity).setExp((float) 1.0);
((Player) entity).setLevel(((Player) entity).getLevel()-1);
} else {
((Player) entity).setExp((float) 1.0);
((Player) entity).getEquipment().setHelmet(null);
}
}
if (Objects.equals(ID, "2")) {
//"ЗАГОТОВКА" ПОД ДРУГОЙ ШЛЕМ
entity.sendMessage("Выбран шлем с ID " + ID);
}
}
}
}
Последнее редактирование:
