Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.6 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.db.handlers;
import engine.gameManager.DbManager;
import engine.objects.Realm;
import org.pmw.tinylog.Logger;
import java.sql.*;
import java.util.concurrent.ConcurrentHashMap;
public class dbRealmHandler extends dbHandlerBase {
public dbRealmHandler() {
}
public ConcurrentHashMap<Integer, Realm> LOAD_ALL_REALMS() {
ConcurrentHashMap<Integer, Realm> realmList;
Realm thisRealm;
realmList = new ConcurrentHashMap<>();
int recordsRead = 0;
try (Connection connection = DbManager.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM obj_realm")) {
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
recordsRead++;
thisRealm = new Realm(rs);
realmList.put(thisRealm.getRealmID(), thisRealm);
}
} catch (SQLException e) {
Logger.error(e);
}
Logger.info("read: " + recordsRead + " cached: " + realmList.size());
return realmList;
}
public void REALM_UPDATE(Realm realm) {
try (Connection connection = DbManager.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("CALL realm_UPDATE(?,?,?,?)")) {
preparedStatement.setInt(1, realm.getRealmID());
preparedStatement.setInt(2, (realm.getRulingCity() == null) ? 0 : realm.getRulingCity().getObjectUUID());
preparedStatement.setInt(3, realm.getCharterType());
if (realm.ruledSince != null)
preparedStatement.setTimestamp(4, Timestamp.valueOf(realm.ruledSince));
else
preparedStatement.setNull(4, java.sql.Types.DATE);
preparedStatement.execute();
} catch (SQLException e) {
Logger.error(e);
}
}
}