// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.db.handlers; import engine.objects.BootySetEntry; import engine.objects.ItemBase; import org.pmw.tinylog.Logger; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; public class dbItemBaseHandler extends dbHandlerBase { public dbItemBaseHandler() { } public void LOAD_BAKEDINSTATS(ItemBase itemBase) { try { prepareCallable("SELECT * FROM `static_item_bakedinstat` WHERE `itemID` = ?"); setInt(1, itemBase.getUUID()); ResultSet rs = executeQuery(); while (rs.next()) { if (rs.getBoolean("fromUse")) itemBase.getUsedStats().put(rs.getInt("token"), rs.getInt("numTrains")); else itemBase.getBakedInStats().put(rs.getInt("token"), rs.getInt("numTrains")); } } catch (SQLException e) { Logger.error( e.toString()); } finally { closeCallable(); } } public void LOAD_ANIMATIONS(ItemBase itemBase) { ArrayList tempList = new ArrayList<>(); ArrayList tempListOff = new ArrayList<>(); try { prepareCallable("SELECT * FROM `static_itembase_animations` WHERE `itemBaseUUID` = ?"); setInt(1, itemBase.getUUID()); ResultSet rs = executeQuery(); while (rs.next()) { int animation = rs.getInt("animation"); boolean rightHand = rs.getBoolean("rightHand"); if (rightHand) tempList.add(animation); else tempListOff.add(animation); } } catch (SQLException e) { Logger.error( e.toString()); } finally { closeCallable(); } itemBase.setAnimations(tempList); itemBase.setOffHandAnimations(tempListOff); } public void LOAD_ALL_ITEMBASES() { ItemBase itemBase; int recordsRead = 0; prepareCallable("SELECT * FROM static_itembase"); try { ResultSet rs = executeQuery(); while (rs.next()) { recordsRead++; itemBase = new ItemBase(rs); // Add ItemBase to internal cache ItemBase.addToCache(itemBase); } Logger.info( "read: " + recordsRead + "cached: " + ItemBase.getUUIDCache().size()); } catch (SQLException e) { Logger.error( e.toString()); } finally { closeCallable(); } } public HashMap> LOAD_RUNES_FOR_NPC_AND_MOBS() { HashMap> runeSets = new HashMap<>(); int runeSetID; int runeBaseID; int recordsRead = 0; prepareCallable("SELECT * FROM static_npc_runeSet"); try { ResultSet rs = executeQuery(); while (rs.next()) { recordsRead++; runeSetID = rs.getInt("runeSet"); runeBaseID = rs.getInt("runeBase"); if (runeSets.get(runeSetID) == null){ ArrayList runeList = new ArrayList<>(); runeList.add(runeBaseID); runeSets.put(runeSetID, runeList); } else{ ArrayListruneList = runeSets.get(runeSetID); runeList.add(runeSetID); runeSets.put(runeSetID, runeList); } } Logger.info("read: " + recordsRead + " cached: " + runeSets.size()); } catch (SQLException e) { Logger.error( e.toString()); } finally { closeCallable(); } return runeSets; } public HashMap> LOAD_BOOTY_FOR_MOBS() { HashMap> bootySets = new HashMap<>(); BootySetEntry bootySetEntry; int bootySetID; int recordsRead = 0; prepareCallable("SELECT * FROM static_npc_bootySet"); try { ResultSet rs = executeQuery(); while (rs.next()) { recordsRead++; bootySetID = rs.getInt("bootySet"); bootySetEntry = new BootySetEntry(rs); if (bootySets.get(bootySetID) == null){ ArrayList bootyList = new ArrayList<>(); bootyList.add(bootySetEntry); bootySets.put(bootySetID, bootyList); } else{ ArrayListbootyList = bootySets.get(bootySetID); bootyList.add(bootySetEntry); bootySets.put(bootySetID, bootyList); } } Logger.info("read: " + recordsRead + " cached: " + bootySets.size()); } catch (SQLException e) { Logger.error( e.toString()); } finally { closeCallable(); } return bootySets; } }