固定的
我正在尝试在我的实体名称旁边添加一个健康栏,例如:
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
固定代码:
@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(" ", " "));
}
}
}