2022-04-30 09:41:17 -04:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.db.handlers ;
import engine.Enum ;
import engine.Enum.GameObjectType ;
import engine.gameManager.DbManager ;
import engine.objects.BaseClass ;
2023-05-20 19:02:56 -04:00
import org.pmw.tinylog.Logger ;
2022-04-30 09:41:17 -04:00
2023-05-20 19:02:56 -04:00
import java.sql.Connection ;
import java.sql.PreparedStatement ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
2022-04-30 09:41:17 -04:00
import java.util.ArrayList ;
public class dbBaseClassHandler extends dbHandlerBase {
2023-05-23 10:27:03 -04:00
public dbBaseClassHandler ( ) {
this . localClass = BaseClass . class ;
this . localObjectType = Enum . GameObjectType . BaseClass ;
}
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
public BaseClass GET_BASE_CLASS ( final int id ) {
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
if ( id = = 0 )
return null ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
BaseClass baseClass = ( BaseClass ) DbManager . getFromCache ( GameObjectType . BaseClass , id ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
if ( baseClass ! = null )
return baseClass ;
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
try ( Connection connection = DbManager . getConnection ( ) ;
PreparedStatement preparedStatement = connection . prepareStatement ( " SELECT * FROM `obj_account` WHERE `UID`=? " ) ) {
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
preparedStatement . setLong ( 1 , id ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
ResultSet rs = preparedStatement . executeQuery ( ) ;
baseClass = ( BaseClass ) getObjectFromRs ( rs ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
} catch ( SQLException e ) {
Logger . error ( e ) ;
}
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
return baseClass ;
}
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
public ArrayList < BaseClass > GET_BASECLASS_FOR_RACE ( final int id ) {
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
ArrayList < BaseClass > baseClasses = new ArrayList < > ( ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
try ( Connection connection = DbManager . getConnection ( ) ;
PreparedStatement preparedStatement = connection . prepareStatement ( " SELECT b.* FROM `static_rune_baseclass` b, `static_rune_racebaseclass` r WHERE b.`ID` = r.`BaseClassID` && r.`RaceID` = ? " ) ) {
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
preparedStatement . setInt ( 1 , id ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
ResultSet rs = preparedStatement . executeQuery ( ) ;
baseClasses = getObjectsFromRs ( rs , 20 ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
} catch ( SQLException e ) {
Logger . error ( e ) ;
}
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
return baseClasses ;
}
2022-04-30 09:41:17 -04:00
2023-05-23 10:27:03 -04:00
public ArrayList < BaseClass > GET_ALL_BASE_CLASSES ( ) {
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
ArrayList < BaseClass > baseClasses = new ArrayList < > ( ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
try ( Connection connection = DbManager . getConnection ( ) ;
PreparedStatement preparedStatement = connection . prepareStatement ( " SELECT * FROM `static_rune_baseclass`; " ) ) {
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
ResultSet rs = preparedStatement . executeQuery ( ) ;
baseClasses = getObjectsFromRs ( rs , 20 ) ;
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
} catch ( SQLException e ) {
Logger . error ( e ) ;
}
2023-05-20 19:02:56 -04:00
2023-05-23 10:27:03 -04:00
return baseClasses ;
}
2022-04-30 09:41:17 -04:00
}