event.load("living_tame"); event.load("entity_damage"); event.load("entity_heal"); event.load("entity_spawn"); entities_list = list.new(); permanent_name = set.new(); set.add(permanent_name, "villager"); set.add(permanent_name, "wandering_trader"); permanent_tamed_name = set.new(); set.add(permanent_tamed_name, "wolf"); set.add(permanent_tamed_name, "cat"); set.add(permanent_tamed_name, "horse"); set.add(permanent_tamed_name, "donkey"); set.add(permanent_tamed_name, "mule"); set.add(permanent_tamed_name, "skeleton_horse"); set.add(permanent_tamed_name, "zombie_horse"); set.add(permanent_tamed_name, "parrot"); msg.string("dev", "§bDamage §rloaded."); @wait wait(); ignoreGoto(event); goto("wait"); @living_tame if(!isPlayer(living_entity)) { if(list.getSize(entities_list) == 0) { sgoto(2, "sgoto_updateEntityName"); } list.add(entities_list, living_entity); } goto("wait"); @entity_spawn if(isLiving(entity) && !isPlayer(entity)) { updateEntityName(entity); } goto("wait"); @entity_heal if(isPlayer(entity) || !isLiving(entity)) { goto("wait"); } if(list.getSize(entities_list) == 0) { sgoto(2, "sgoto_updateEntityName"); } list.add(entities_list, entity); goto("wait"); @entity_damage if(isPlayer(entity) || !isLiving(entity)) { goto("wait"); } if(list.getSize(entities_list) == 0) { sgoto(2, "sgoto_updateEntityName"); } list.add(entities_list, entity); goto("wait"); @sgoto_updateEntityName iter = iterator(entities_list); while(hasNext(iter)) { updateEntityName(next(iter)); } list.clear(entities_list); goto("wait"); function updateEntityName(entity) { if(!isLiving(entity)) { return; } living_entity = entity; entity_type = entity.getType(living_entity); if(entity_type == "armor_stand" || isCitizen(entity)) { return; } entity_name = entity.getName(living_entity); if(entity_name == null) { string_name = ""; } else { string_name = string.text(entity_name); } max_health = living.getMaxHealth(living_entity); health = string.number(math.round(living.getHealth(living_entity))); max_health = string.number(math.roundComma(max_health, 1)); heart_index = string.indexOf(string_name, "❤", 0); if(heart_index == -1) { //Kein Herz gefunden setEntityName(living_entity, health, max_health, string_name); return; } if(heart_index == 2) { //Links vom Herz kein Name setEntityName(living_entity, health, max_health, null); return; } if(heart_index < 2) { return; } string_name = string.subString(string_name, 0, heart_index - 2); setEntityName(living_entity, health, max_health, string_name); } function setEntityName(living_entity, health, max_health, string_name) { entity_type = entity.getType(living_entity); permanent = false; if(set.contains($permanent_name, entity_type)) { permanent = true; } elseif(set.contains($permanent_tamed_name, entity_type)) { if(pet.isTamed(living_entity)) { permanent = true; } } if(string_name == null || string_name == "") { entity.setName(living_entity, text.new(string.concat("§c❤§r", health)), permanent); return; } if(string.contains(string_name, "Boss")) { permanent = true; } entity.setName(living_entity, text.merge(text.new(string.trim(string_name)), text.new(string.concat(" §c❤§r", health))), permanent); }