mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2025-02-18 05:11:37 +01:00
Simplify skinupdatetracker
This commit is contained in:
parent
dddabd13b8
commit
142931a86d
@ -23,6 +23,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
import net.citizensnpcs.Settings.Setting;
|
import net.citizensnpcs.Settings.Setting;
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
@ -170,6 +171,7 @@ public class SkinUpdateTracker {
|
|||||||
*/
|
*/
|
||||||
public void onNPCDespawn(NPC npc) {
|
public void onNPCDespawn(NPC npc) {
|
||||||
Preconditions.checkNotNull(npc);
|
Preconditions.checkNotNull(npc);
|
||||||
|
playerTrackers.remove(npc.getUniqueId());
|
||||||
SkinnableEntity skinnable = getSkinnable(npc);
|
SkinnableEntity skinnable = getSkinnable(npc);
|
||||||
if (skinnable == null)
|
if (skinnable == null)
|
||||||
return;
|
return;
|
||||||
@ -268,16 +270,8 @@ public class SkinUpdateTracker {
|
|||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void reset() {
|
public void reset() {
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
navigating.clear();
|
||||||
if (player.hasMetadata("NPC"))
|
playerTrackers.clear();
|
||||||
continue;
|
|
||||||
|
|
||||||
PlayerTracker tracker = playerTrackers.get(player.getUniqueId());
|
|
||||||
if (tracker == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
tracker.hardReset(player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// hard reset players near a skinnable NPC
|
// hard reset players near a skinnable NPC
|
||||||
@ -342,7 +336,9 @@ public class SkinUpdateTracker {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
List<SkinnableEntity> nearby = new ArrayList<SkinnableEntity>(10);
|
List<SkinnableEntity> nearby = new ArrayList<SkinnableEntity>(10);
|
||||||
|
Set<UUID> seen = Sets.newHashSet();
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
seen.add(player.getUniqueId());
|
||||||
if (player.hasMetadata("NPC"))
|
if (player.hasMetadata("NPC"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -356,6 +352,7 @@ public class SkinUpdateTracker {
|
|||||||
|
|
||||||
nearby.clear();
|
nearby.clear();
|
||||||
}
|
}
|
||||||
|
playerTrackers.keySet().removeIf(uuid -> !seen.contains(uuid));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user