From 402095c94651c2c92835309d72d5d2fc0fbc6738 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 2 Jan 2023 00:49:39 +0800 Subject: [PATCH] Don't reload locationlookup --- main/src/main/java/net/citizensnpcs/Citizens.java | 3 --- .../net/citizensnpcs/trait/ScoreboardTrait.java | 13 ++++++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java index 0ac7c6845..1beb0f264 100644 --- a/main/src/main/java/net/citizensnpcs/Citizens.java +++ b/main/src/main/java/net/citizensnpcs/Citizens.java @@ -484,9 +484,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { shops.loadFromDisk(); shops.load(); - locationLookup.cancel(); - locationLookup = new LocationLookup(); - locationLookup.runTaskTimer(CitizensAPI.getPlugin(), 0, 5); Template.shutdown(); getServer().getPluginManager().callEvent(new CitizensReloadEvent()); diff --git a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java index 5b5c33dea..ca5589caf 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java @@ -27,6 +27,7 @@ public class ScoreboardTrait extends Trait { private boolean changed; @Persist private ChatColor color; + private String lastName; private final PerPlayerMetadata metadata; private ChatColor previousGlowingColor; @Persist @@ -81,9 +82,7 @@ public class ScoreboardTrait extends Trait { @Override public void onDespawn() { previousGlowingColor = null; - if (npc.getEntity() == null) - return; - String name = npc.getEntity() instanceof Player ? npc.getEntity().getName() : npc.getUniqueId().toString(); + String name = lastName; String teamName = npc.data().get(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME, ""); if (teamName.isEmpty()) return; @@ -129,11 +128,19 @@ public class ScoreboardTrait extends Trait { return; if (!Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { + for (Player player : Bukkit.getOnlinePlayers()) { + metadata.remove(player.getUniqueId(), team.getName()); + NMS.sendTeamPacket(player, team, 1); + } team.unregister(); npc.data().remove(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME); return; } + if (npc.isSpawned()) { + lastName = npc.getEntity() instanceof Player ? npc.getEntity().getName() : npc.getUniqueId().toString(); + } + Set newTags = new HashSet(tags); if (SUPPORT_TAGS) { try {