2018-07-06 13:30:00 +00:00
package com.eu.habbo.database ;
import com.eu.habbo.Emulator ;
import com.eu.habbo.core.ConfigurationManager ;
import com.zaxxer.hikari.HikariDataSource ;
2019-05-26 21:14:53 +03:00
public class Database {
2018-07-08 21:32:00 +00:00
2018-07-06 13:30:00 +00:00
private HikariDataSource dataSource ;
2018-07-08 21:32:00 +00:00
2018-07-06 13:30:00 +00:00
private DatabasePool databasePool ;
2019-05-26 21:14:53 +03:00
public Database ( ConfigurationManager config ) {
2018-07-06 13:30:00 +00:00
long millis = System . currentTimeMillis ( ) ;
boolean SQLException = false ;
2019-05-26 21:14:53 +03:00
try {
2018-07-06 13:30:00 +00:00
this . databasePool = new DatabasePool ( ) ;
2019-05-26 21:14:53 +03:00
if ( ! this . databasePool . getStoragePooling ( config ) ) {
2018-11-17 13:28:00 +00:00
Emulator . getLogging ( ) . logStart ( " Failed to connect to the database. Please check config.ini and make sure the MySQL process is running. Shutting down... " ) ;
2018-07-06 13:30:00 +00:00
SQLException = true ;
return ;
}
this . dataSource = this . databasePool . getDatabase ( ) ;
2019-05-26 21:14:53 +03:00
} catch ( Exception e ) {
2018-07-06 13:30:00 +00:00
SQLException = true ;
e . printStackTrace ( ) ;
Emulator . getLogging ( ) . logStart ( " Failed to connect to your database. " ) ;
Emulator . getLogging ( ) . logStart ( e . getMessage ( ) ) ;
2019-05-26 21:14:53 +03:00
} finally {
2018-07-06 13:30:00 +00:00
if ( SQLException )
Emulator . prepareShutdown ( ) ;
}
Emulator . getLogging ( ) . logStart ( " Database -> Connected! ( " + ( System . currentTimeMillis ( ) - millis ) + " MS) " ) ;
}
2018-07-08 21:32:00 +00:00
2019-05-26 21:14:53 +03:00
public void dispose ( ) {
if ( this . databasePool ! = null ) {
2018-07-06 13:30:00 +00:00
this . databasePool . getDatabase ( ) . close ( ) ;
}
this . dataSource . close ( ) ;
}
2019-05-26 21:14:53 +03:00
public HikariDataSource getDataSource ( ) {
2018-07-06 13:30:00 +00:00
return this . dataSource ;
}
2019-05-26 21:14:53 +03:00
public DatabasePool getDatabasePool ( ) {
2018-07-06 13:30:00 +00:00
return this . databasePool ;
}
}