package com.massivecraft.factions; import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.zcore.persist.PlayerEntityCollection; import java.io.File; import java.lang.reflect.Type; import java.util.Map; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.CopyOnWriteArrayList; public class FPlayers extends PlayerEntityCollection { public static FPlayers i = new FPlayers(); P p = P.p; private FPlayers() { super(FPlayer.class, new CopyOnWriteArrayList(), new ConcurrentSkipListMap(String.CASE_INSENSITIVE_ORDER), new File(P.p.getDataFolder(), "players.json"), P.p.gson); this.setCreative(true); } @Override public Type getMapType() { return new TypeToken>() { }.getType(); } public void clean() { for (FPlayer fplayer : this.get()) { if (!Factions.i.exists(fplayer.getFactionId())) { p.log("Reset faction data (invalid faction) for player " + fplayer.getName()); fplayer.resetFactionData(false); } } } }