Buggy code:
public class NbtRepository implements Repository , IScheduler { public static final ArrayListMultimap < MyPetPlayer , InactiveMyPet > myPets = ArrayListMultimap . create ( ) ; protected static final Map < UUID , MyPetPlayer > players = Maps . newHashMap ( ) ; private File NBTPetFile ; private int autoSaveTimer = 0 ; private Backup backupManager ; public static boolean SAVE_ON_PET_ADD = true ; public static boolean SAVE_ON_PET_REMOVE = true ; public static boolean SAVE_ON_PET_UPDATE = true ; public static boolean SAVE_ON_PLAYER_ADD = true ; public static boolean SAVE_ON_PLAYER_REMOVE = true ; public static boolean SAVE_ON_PLAYER_UPDATE = true ; public static int AUTOSAVE_TIME = 60 ; @ Override public void disable ( ) { } @ Override public void save ( ) { } @ Override public void init ( ) { } @ Override public void countMyPets ( final RepositoryCallback < Integer > callback ) { } @ Override public void countMyPets ( MyPetType type , final RepositoryCallback < Integer > callback ) { } public void saveData ( boolean async ) { } private void loadData ( File f ) { } public Backup getBackupManager ( ) { } @ Override public void schedule ( ) { } @ Override public List < InactiveMyPet > getAllMyPets ( Map < UUID , MyPetPlayer > owners ) { } @ Override public void hasMyPets ( final MyPetPlayer myPetPlayer , final RepositoryCallback < Boolean > callback ) { } @ Override public void getMyPets ( final MyPetPlayer owner , final RepositoryCallback < List < InactiveMyPet > > callback ) { } @ Override public void getMyPet ( final UUID uuid , final RepositoryCallback < InactiveMyPet > callback ) { } @ Override public void removeMyPet ( final UUID uuid , final RepositoryCallback < Boolean > callback ) { } @ Override public void removeMyPet ( final InactiveMyPet inactiveMyPet , final RepositoryCallback < Boolean > callback ) { } @ Override public void addMyPet ( final InactiveMyPet inactiveMyPet , final RepositoryCallback < Boolean > callback ) { } @ Override public void updateMyPet ( final MyPet myPet , final RepositoryCallback < Boolean > callback ) { } private int loadPets ( TagList petList ) { } private TagList savePets ( ) { } @ Override public List < MyPetPlayer > getAllMyPetPlayers ( ) { } @ Override public void isMyPetPlayer ( final Player player , final RepositoryCallback < Boolean > callback ) { } public void getMyPetPlayer ( final UUID uuid , final RepositoryCallback < MyPetPlayer > callback ) { } @ Override public void getMyPetPlayer ( final Player player , final RepositoryCallback < MyPetPlayer > callback ) { } @ Override public void updatePlayer ( final MyPetPlayer player , final RepositoryCallback < Boolean > callback ) { } @ Override public void addMyPetPlayer ( final MyPetPlayer player , final RepositoryCallback < Boolean > callback ) { <START_BUG> if ( NbtRepository . players . containsKey ( player . getInternalUUID ( ) ) ) { <END_BUG> NbtRepository . players . put ( player . getInternalUUID ( ) , player ) ; if ( NbtRepository . SAVE_ON_PLAYER_ADD ) { saveData ( true ) ; } if ( callback != null ) { callback . setValue ( true ) ; callback . run ( ) ; } return ; } if ( callback != null ) { callback . setValue ( false ) ; callback . run ( ) ; } } @ Override public void removeMyPetPlayer ( final MyPetPlayer player , final RepositoryCallback < Boolean > callback ) { } private TagList savePlayers ( ) { } private int loadPlayers ( TagList playerList ) { } No newline ; at end ; of file ; }

Fix:
if ( ! ( NbtRepository . players . containsKey ( player . getInternalUUID ( ) ) ) ) {