Buggy code:
public class AuthMe extends JavaPlugin { public DataSource database = null ; private Settings settings ; private Messages m ; public OtherAccounts otherAccounts ; public static Server server ; public static Logger authmeLogger = Logger . getLogger ( "AuthMe" ) ; public static AuthMe authme ; public Permission permission ; private Utils utils = Utils . getInstance ( ) ; private FileCache playerBackup = new FileCache ( this ) ; public CitizensCommunicator citizens ; public boolean isCitizensActive = false ; public SendMailSSL mail = null ; public boolean CombatTag = false ; public double ChestShop = 0 ; public boolean BungeeCord = false ; public Essentials ess ; public API api ; public Management management ; public ConcurrentHashMap < String , Integer > captcha = new ConcurrentHashMap < String , Integer > ( ) ; public ConcurrentHashMap < String , String > cap = new ConcurrentHashMap < String , String > ( ) ; public ConcurrentHashMap < String , String > realIp = new ConcurrentHashMap < String , String > ( ) ; public MultiverseCore multiverse = null ; public Location essentialsSpawn ; public LookupService ls = null ; public boolean antibotMod = false ; public boolean delayedAntiBot = true ; protected static String vgUrl = "http:////monitor-1.verygames.net//api//?action=ipclean-real-ip&out=raw&ip=%IP%&port=%PORT%" ; public DataManager dataManager ; public ConcurrentHashMap < String , BukkitTask > sessions = new ConcurrentHashMap < String , BukkitTask > ( ) ; public Settings getSettings ( ) { } @ Override public void onEnable ( ) { } private void setLog4JFilter ( ) { } public void checkVault ( ) { } public void checkChestShop ( ) { } public void checkMultiverse ( ) { } public void checkEssentials ( ) { } public void combatTag ( ) { } public void citizensVersion ( ) { } @ Override public void onDisable ( ) { } public static AuthMe getInstance ( ) { } public void savePlayer ( Player player ) throws IllegalStateException , NullPointerException { } public CitizensCommunicator getCitizensCommunicator ( ) { } public void setMessages ( Messages m ) { } public Messages getMessages ( ) { } public Player generateKickPlayer ( Collection < ? extends Player > collection ) { } public boolean authmePermissible ( Player player , String perm ) { } public boolean authmePermissible ( CommandSender sender , String perm ) { } private void autoPurge ( ) { } public Location getSpawnLocation ( Player player ) { } private Location getDefaultSpawn ( ) { } private Location getMultiverseSpawn ( World world ) { } private Location getEssentialsSpawn ( ) { } private Location getAuthMeSpawn ( Player player ) { } public void downloadGeoIp ( ) { } public String getCountryCode ( String ip ) { } public String getCountryName ( String ip ) { } public void switchAntiBotMod ( boolean mode ) { } private void recallEmail ( ) { } public String replaceAllInfos ( String message , Player player ) { } public String getIP ( Player player ) { } public boolean isLoggedIp ( String name , String ip ) { } public boolean hasJoinedIp ( String name , String ip ) { } public String getVeryGamesIP ( Player player ) { } public void setupDatabase ( ) { switch ( Settings . getDataSource ) { case FILE : database = new FlatFile ( ) ; final int a = database . getAccountsRegistered ( ) ; if ( a >= 1000 ) ConsoleLogger . showError ( ( ( "YOU'RE<seq2seq4repair_space>USING<seq2seq4repair_space>FILE<seq2seq4repair_space>DATABASE<seq2seq4repair_space>WITH<seq2seq4repair_space>" + a ) + "+<seq2seq4repair_space>ACCOUNTS,<seq2seq4repair_space>FOR<seq2seq4repair_space>BETTER<seq2seq4repair_space>PERFORMANCES,<seq2seq4repair_space>PLEASE<seq2seq4repair_space>USE<seq2seq4repair_space>MYSQL!!" ) ) ; break ; case MYSQL : database = new MySQL ( ) ; break ; case SQLITE : database = new SQLite ( ) ; final int b = database . getAccountsRegistered ( ) ; if ( b >= 2000 ) ConsoleLogger . showError ( ( ( "YOU'RE<seq2seq4repair_space>USING<seq2seq4repair_space>SQLITE<seq2seq4repair_space>DATABASE<seq2seq4repair_space>WITH<seq2seq4repair_space>" + b ) + "+<seq2seq4repair_space>ACCOUNTS,<seq2seq4repair_space>FOR<seq2seq4repair_space>BETTER<seq2seq4repair_space>PERFORMANCES,<seq2seq4repair_space>PLEASE<seq2seq4repair_space>USE<seq2seq4repair_space>MYSQL!!" ) ) ; break ; } if ( Settings . isCachingEnabled ) { database = new fr . xephi . authme . datasource . CacheDataSource ( this , database ) ; } <START_BUG> database = new fr . xephi . authme . datasource . DatabaseCalls ( this , database ) ; <END_BUG> } }

Fix:
database = new fr . xephi . authme . datasource . DatabaseCalls ( database ) ;