ОСНОВНОЙBukkit - здоровье во имя
Я пытаюсь добавить строку здоровья рядом с моим именем сущностей, как:
Уровень 3 Скелет ||||
Где бары, сколько здоровья, из 5. Я пробовал все, что кажется, но я не могу понять это! Я думаю, что это очень просто, но я просто не могу это получить ...
@EventHandler
public void entityDamageEntity(EntityDamageEvent event) {
LivingEntity entity = (LivingEntity) event.getEntity();
if (entity.getCustomName() != null) {
entity.setCustomName(entity.getCustomName().replaceAll("|", ""));
int health = (int) Math.ceil(entity.getHealth()/entity.getMaxHealth() * 5);
int i = 1;
String healthbar = " |";
while(i < health){
i++;
healthbar = healthbar + "|";
}
entity.setCustomName(entity.getCustomName() + healthbar);
}
}
Я просто не могу заставить его работать! Это странно, попробуйте использовать его с именованным объектом. Если кто-то может указать на ошибку, что было бы здорово = D
http://i.stack.imgur.com/RYdcI.png
FIXED КОД:
@EventHandler
public void entityDamageEntity(EntityDamageEvent event) {
LivingEntity entity = (LivingEntity) event.getEntity();
if (entity.getCustomName() != null) {
entity.setCustomName(entity.getCustomName().replaceAll("\\|", ""));
int health = (int) ((float) entity.getHealth()/entity.getMaxHealth() *5);
if (health > 0){
char[] bars = new char[health + 1];
Arrays.fill(bars, '|');
entity.setCustomName(entity.getCustomName() + " " + new String(bars));
entity.setCustomName(entity.getCustomName().replaceAll(" ", " "));
} else {
entity.setCustomName(entity.getCustomName());
entity.setCustomName(entity.getCustomName().replaceAll(" ", " "));
}
}
}
Спасибо, что поняли это. – Paul
никаких проблем, рад, что все исправлено – greedybuddha
Да. У меня была проблема с 'entity.setCustomName (entity.getCustomName() +" "+ new String (бары));' Добавление пробела между именем сущностей и столбцами, поэтому после этого я добавил: ' entity.setCustomName (entity.getCustomName(). replaceAll ("", "")); – Paul