fix: viewable rule updating fot display name
This commit is contained in:
parent
ba3b087024
commit
0f86d64967
@ -25,6 +25,7 @@ import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class Human extends EntityCreature {
|
||||
|
||||
@ -40,6 +41,7 @@ public class Human extends EntityCreature {
|
||||
private final PlayerInfoRemovePacket removePacket;
|
||||
private final Team team;
|
||||
private Entity displayNameEntity;
|
||||
private Predicate<Player> lastViewableRule;
|
||||
|
||||
public Human(String name, PlayerSkin skin) {
|
||||
this(Component.text(name, NamedTextColor.YELLOW), skin);
|
||||
@ -107,6 +109,18 @@ public class Human extends EntityCreature {
|
||||
super.updateOldViewer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateViewableRule() {
|
||||
super.updateViewableRule();
|
||||
if (displayNameEntity != null) displayNameEntity.updateViewableRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateViewableRule(@Nullable Predicate<Player> predicate) {
|
||||
super.updateViewableRule(lastViewableRule = predicate);
|
||||
if (displayNameEntity != null) displayNameEntity.updateViewableRule(predicate);
|
||||
}
|
||||
|
||||
private Team pickTeam() {
|
||||
return npcTeams.computeIfAbsent(teamColor.asHexString(), $ -> MinecraftServer.getTeamManager()
|
||||
.createBuilder("NPC_r%s_g%s_b%s".formatted(teamColor.red(), teamColor.green(), teamColor.blue()))
|
||||
@ -123,6 +137,7 @@ public class Human extends EntityCreature {
|
||||
meta.setText(name);
|
||||
meta.setHasNoGravity(true);
|
||||
meta.setBillboardRenderConstraints(AbstractDisplayMeta.BillboardConstraints.VERTICAL);
|
||||
if (lastViewableRule != null) displayNameEntity.updateViewableRule(lastViewableRule);
|
||||
displayNameEntity.setInstance(instance, getPosition().add(displayNamePositionOffset));
|
||||
}
|
||||
return displayNameEntity;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user