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