diff --git a/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java b/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java index e55ed8e0..545eca39 100644 --- a/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java +++ b/src/main/java/com/massivecraft/factions/scoreboards/FTeamWrapper.java @@ -14,6 +14,7 @@ public class FTeamWrapper { private static final Map wrappers = new HashMap(); private static final List tracking = new ArrayList(); private static int factionTeamPtr; + private static final Set updating = new HashSet(); private final Map teams = new HashMap(); private final String teamName; @@ -25,12 +26,15 @@ public class FTeamWrapper { return; } - Bukkit.getScheduler().runTask(P.p, new Runnable() { - @Override - public void run() { - applyUpdates(faction); - } - }); + if (updating.add(faction)) { + Bukkit.getScheduler().runTask(P.p, new Runnable() { + @Override + public void run() { + updating.remove(faction); + applyUpdates(faction); + } + }); + } } public static void applyUpdates(Faction faction) { @@ -38,6 +42,11 @@ public class FTeamWrapper { return; } + if (updating.contains(faction)) { + // Faction will be updated soon. + return; + } + FTeamWrapper wrapper = wrappers.get(faction); Set factionMembers = faction.getFPlayers();