|  |  |  | @ -13,7 +13,6 @@ import engine.gameManager.DbManager;@@ -13,7 +13,6 @@ import engine.gameManager.DbManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.LootManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.loot.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.Item; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.LootTable; | 
			
		
	
		
			
				
					|  |  |  |  | import org.pmw.tinylog.Logger; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import java.sql.Connection; | 
			
		
	
	
		
			
				
					|  |  |  | @ -38,7 +37,7 @@ public class dbLootHandler extends dbHandlerBase {@@ -38,7 +37,7 @@ public class dbLootHandler extends dbHandlerBase { | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT `genTable`, `minRoll`, `maxRoll`, `itemTableID`, `pModTableID`, `sModTableID` FROM `static_gentables`")) { | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_gentables`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -68,15 +67,16 @@ public class dbLootHandler extends dbHandlerBase {@@ -68,15 +67,16 @@ public class dbLootHandler extends dbHandlerBase { | 
			
		
	
		
			
				
					|  |  |  |  |         return genTables; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public HashMap<Integer, ArrayList<BootySetEntry>> LOAD_BOOTY_TABLES() { | 
			
		
	
		
			
				
					|  |  |  |  |     public HashMap<Integer, ArrayList<ItemTableEntry>> LOAD_ITEM_TABLES() { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         HashMap<Integer, ArrayList<BootySetEntry>> bootySets = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         BootySetEntry bootySetEntry; | 
			
		
	
		
			
				
					|  |  |  |  |         int bootySetID; | 
			
		
	
		
			
				
					|  |  |  |  |         HashMap<Integer, ArrayList<ItemTableEntry>> itemTables = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         ItemTableEntry itemTableEntry; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int itemTableID; | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM static_npc_bootySet")) { | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_itemTables`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -84,114 +84,64 @@ public class dbLootHandler extends dbHandlerBase {@@ -84,114 +84,64 @@ public class dbLootHandler extends dbHandlerBase { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 recordsRead++; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 bootySetID = rs.getInt("bootySet"); | 
			
		
	
		
			
				
					|  |  |  |  |                 bootySetEntry = new BootySetEntry(rs); | 
			
		
	
		
			
				
					|  |  |  |  |                 itemTableID = rs.getInt("itemTable"); | 
			
		
	
		
			
				
					|  |  |  |  |                 itemTableEntry = new ItemTableEntry(rs); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (bootySets.get(bootySetID) == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<BootySetEntry> bootyList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootyList.add(bootySetEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootySets.put(bootySetID, bootyList); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (itemTables.get(itemTableID) == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<ItemTableEntry> itemTableList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                     itemTableList.add(itemTableEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     itemTables.put(itemTableID, itemTableList); | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<BootySetEntry> bootyList = bootySets.get(bootySetID); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootyList.add(bootySetEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootySets.put(bootySetID, bootyList); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  |             return bootySets; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + bootySets.size()); | 
			
		
	
		
			
				
					|  |  |  |  |         return bootySets; | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<ItemTableEntry> itemTableList = itemTables.get(itemTableID); | 
			
		
	
		
			
				
					|  |  |  |  |                     itemTableList.add(itemTableEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     itemTables.put(itemTableID, itemTableList); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void populateGenTables() { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT `genTable`, `minRoll`, `maxRoll`, `itemTableID`, `pModTableID`, `sModTableID` FROM `static_gentables`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             while (rs.next()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 recordsRead++; | 
			
		
	
		
			
				
					|  |  |  |  |                 LootTable lootTable = LootTable.getGenTable(rs.getInt("genTable")); | 
			
		
	
		
			
				
					|  |  |  |  |                 lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("itemTableID"), rs.getInt("pModTableID"), rs.getInt("sModTableID"), ""); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  |             return itemTables; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + LootTable.getGenTables().size()); | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + itemTables.size()); | 
			
		
	
		
			
				
					|  |  |  |  |         return itemTables; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void populateItemTables() { | 
			
		
	
		
			
				
					|  |  |  |  |     public HashMap<Integer, ArrayList<BootySetEntry>> LOAD_BOOTY_TABLES() { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         HashMap<Integer, ArrayList<BootySetEntry>> bootySets = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         BootySetEntry bootySetEntry; | 
			
		
	
		
			
				
					|  |  |  |  |         int bootySetID; | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT `itemTable`, `minRoll`, `maxRoll`, `itemBaseUUID`, `minSpawn`, `maxSpawn` FROM `static_itemtables`")) { | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM static_npc_bootySet")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             while (rs.next()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 recordsRead++; | 
			
		
	
		
			
				
					|  |  |  |  |                 LootTable lootTable = LootTable.getItemTable(rs.getInt("itemTable")); | 
			
		
	
		
			
				
					|  |  |  |  |                 lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("itemBaseUUID"), rs.getInt("minSpawn"), rs.getInt("maxSpawn"), ""); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + LootTable.getItemTables().size()); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void populateModTables() { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT `modTable`,`minRoll`,`maxRoll`,`value`,`action` FROM `static_modtables`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             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")); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |                 bootySetID = rs.getInt("bootySet"); | 
			
		
	
		
			
				
					|  |  |  |  |                 bootySetEntry = new BootySetEntry(rs); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + LootTable.getModTables().size()); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (bootySets.get(bootySetID) == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<BootySetEntry> bootyList = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootyList.add(bootySetEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootySets.put(bootySetID, bootyList); | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     ArrayList<BootySetEntry> bootyList = bootySets.get(bootySetID); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootyList.add(bootySetEntry); | 
			
		
	
		
			
				
					|  |  |  |  |                     bootySets.put(bootySetID, bootyList); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void populateModTypeTables() { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int recordsRead = 0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  |              PreparedStatement preparedStatement = connection.prepareStatement("SELECT `modType`,`minRoll`,`maxRoll`,`subTableID` FROM `static_modtypetables`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             while (rs.next()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 recordsRead++; | 
			
		
	
		
			
				
					|  |  |  |  |                 LootTable lootTable = LootTable.getModTypeTable(rs.getInt("modType")); | 
			
		
	
		
			
				
					|  |  |  |  |                 lootTable.addRow(rs.getFloat("minRoll"), rs.getFloat("maxRoll"), rs.getInt("subTableID"), 0, 0, ""); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  |             return bootySets; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + LootTable.getModTypeTables().size()); | 
			
		
	
		
			
				
					|  |  |  |  |         Logger.info("read: " + recordsRead + " cached: " + bootySets.size()); | 
			
		
	
		
			
				
					|  |  |  |  |         return bootySets; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void LOAD_ENCHANT_VALUES() { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |