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.

228 lines
7.3 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.db.handlers;
import engine.loot.LootManager;
import engine.objects.Item;
import engine.objects.LootTable;
import org.pmw.tinylog.Logger;
import java.sql.ResultSet;
import java.sql.SQLException;
public class dbLootTableHandler extends dbHandlerBase {
public dbLootTableHandler() {
}
public void populateLootGroups() {
int recordsRead = 0;
prepareCallable("SELECT `groupID`, `minRoll`, `maxRoll`, `lootTableID`, `pModTableID`, `sModTableID` FROM `static_lootgroups`");
try {
ResultSet rs = executeQuery();
if (rs != null)
while (rs.next()) {
recordsRead++;
LootTable lootTable = LootTable.getLootGroup(rs.getInt("groupID"));
lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("lootTableID"), rs.getInt("pModTableID"), rs.getInt("sModTableID"), "");
}
Logger.info("read: " + recordsRead + " cached: " + LootTable.getLootGroups().size());
} catch (SQLException e) {
} finally {
closeCallable();
}
}
public void populateLootTables() {
int recordsRead = 0;
prepareCallable("SELECT `lootTable`, `minRoll`, `maxRoll`, `itemBaseUUID`, `minSpawn`, `maxSpawn` FROM `static_loottables`");
try {
ResultSet rs = executeQuery();
if (rs != null)
while (rs.next()) {
recordsRead++;
LootTable lootTable = LootTable.getLootTable(rs.getInt("lootTable"));
lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("itemBaseUUID"), rs.getInt("minSpawn"), rs.getInt("maxSpawn"), "");
}
Logger.info("read: " + recordsRead + " cached: " + LootTable.getLootTables().size());
} catch (SQLException e) {
} finally {
closeCallable();
}
}
public void populateModTables() {
int recordsRead = 0;
prepareCallable("SELECT `modTable`,`minRoll`,`maxRoll`,`value`,`action` FROM `static_modtables`");
try {
ResultSet rs = executeQuery();
if (rs != null)
while (rs.next()) {
recordsRead++;
LootTable lootTable = LootTable.getModTable(rs.getInt("modTable"));
lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("value"), 0, 0, rs.getString("action"));
}
Logger.info("read: " + recordsRead + " cached: " + LootTable.getModTables().size());
} catch (SQLException e) {
} finally {
closeCallable();
}
}
public void populateModGroups() {
int recordsRead = 0;
prepareCallable("SELECT `modGroup`,`minRoll`,`maxRoll`,`subTableID` FROM `static_modgroups`");
try {
ResultSet rs = executeQuery();
if (rs != null)
while (rs.next()) {
recordsRead++;
LootTable lootTable = LootTable.getModGroup(rs.getInt("modGroup"));
lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("subTableID"), 0, 0, "");
}
Logger.info("read: " + recordsRead + " cached: " + LootTable.getModGroups().size());
} catch (SQLException e) {
} finally {
closeCallable();
}
}
public void LOAD_ENCHANT_VALUES() {
prepareCallable("SELECT `IDString`, `minMod` FROM `static_power_effectmod` WHERE `modType` = ?");
setString(1,"Value");
try {
ResultSet rs = executeQuery();
while (rs.next()) {
Item.addEnchantValue(rs.getString("IDString"), rs.getInt("minMod"));
}
} catch (SQLException e) {
Logger.error( e);
} finally {
closeCallable();
}
}
public void LOAD_ALL_LOOTGROUPS() {
int recordsRead = 0;
prepareCallable("SELECT * FROM static_lootgroups");
try {
ResultSet rs = executeQuery();
while (rs.next()) {
LootManager.GenTableRow row = new LootManager.GenTableRow(rs);
LootManager.AddGenTableRow(rs.getInt("groupID"), row);
}
Logger.info( "read: " + recordsRead);
} catch (SQLException e) {
Logger.error( e.getErrorCode() + ' ' + e.getMessage(), e);
} finally {
closeCallable();
}
}
public void LOAD_ALL_LOOTTABLES() {
int recordsRead = 0;
prepareCallable("SELECT * FROM static_loottables");
try {
ResultSet rs = executeQuery();
while (rs.next()) {
recordsRead++;
LootManager.ItemTableRow row = new LootManager.ItemTableRow(rs);
LootManager.AddItemTableRow(rs.getInt("lootTable"),row);
}
Logger.info("read: " + recordsRead);
} catch (SQLException e) {
Logger.error( e.getErrorCode() + ' ' + e.getMessage(), e);
} finally {
closeCallable();
}
}
public void LOAD_ALL_MODGROUPS() {
int recordsRead = 0;
prepareCallable("SELECT * FROM static_modgroups");
try {
ResultSet rs = executeQuery();
while (rs.next()) {
recordsRead++;
LootManager.ModTypeTableRow mttr = new LootManager.ModTypeTableRow(rs);
LootManager.AddModTypeTableRow(rs.getInt("modGroup"), mttr);
}
Logger.info( "read: " + recordsRead);
} catch (SQLException e) {
Logger.error(e.getErrorCode() + ' ' + e.getMessage(), e);
} finally {
closeCallable();
}
}
public void LOAD_ALL_MODTABLES() {
int recordsRead = 0;
prepareCallable("SELECT * FROM static_modtables");
try {
ResultSet rs = executeQuery();
while (rs.next()) {
recordsRead++;
try {
LootManager.ModTableRow mtr = new LootManager.ModTableRow(rs);
LootManager.AddModTableRow(rs.getInt("modTable"),mtr);
}
catch(Exception ex){
Logger.info("MOD TABLE ERROR: " + rs.getInt("modTable"));
}
}
Logger.info( "read: " + recordsRead);
} catch (SQLException e) {
Logger.error( e.getErrorCode() + ' ' + e.getMessage(), e);
} finally {
closeCallable();
}
}
}