Skip to content

Commit 3f60b9f

Browse files
authored
Fix update being called always (#326)
1 parent 47882da commit 3f60b9f

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

plugin/src/main/java/eu/decentsoftware/holograms/api/holograms/HologramLine.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,9 @@ public void update(boolean force, Player... players) {
463463
hidePreviousIfNecessary();
464464
List<Player> playerList = getPlayers(true, players);
465465
for (Player player : playerList) {
466-
if (renderer instanceof NmsTextHologramRenderer || (containsPlaceholders || force)) {
466+
if (renderer instanceof NmsTextHologramRenderer) {
467+
updateTextIfNecessary(player, true);
468+
} else if (containsPlaceholders || force) {
467469
renderer.updateContent(player, getPartData(player, true, true));
468470
}
469471
}
@@ -498,7 +500,21 @@ public void updateAnimations(Player... players) {
498500
hidePreviousIfNecessary();
499501
List<Player> playerList = getPlayers(true, players);
500502
for (Player player : playerList) {
501-
renderer.updateContent(player, getPartData(player, false, true));
503+
if (renderer instanceof NmsTextHologramRenderer) {
504+
updateTextIfNecessary(player, false);
505+
}
506+
}
507+
}
508+
509+
private void updateTextIfNecessary(Player player, boolean updatePlaceholders) {
510+
UUID uuid = player.getUniqueId();
511+
String lastText = lastTextMap.get(uuid);
512+
String updatedText = getText(player, updatePlaceholders);
513+
if (!updatedText.equals(lastText)) {
514+
lastTextMap.put(uuid, updatedText);
515+
516+
NmsHologramPartData<String> partData = new NmsHologramPartData<>(getPositionSupplier(), () -> updatedText);
517+
((NmsTextHologramRenderer) renderer).updateContent(player, partData);
502518
}
503519
}
504520

0 commit comments

Comments
 (0)