public HashMap<Integer, CraftingRecipe> loadCraftingRecipes() { final HashMap<Integer, CraftingRecipe> list = new HashMap<Integer, CraftingRecipe>(); try { final PreparedStatement ps = ItemDatabase.queries.prepare("SELECT * FROM crafting_recipes where isactive = 1"); final ResultSet rs = ItemDatabase.queries.executeSelect(ps); if (rs != null) { while (rs.next()) { Log.debug("CRAFTING: loading recipe:" + rs.getInt("id")); final CraftingRecipe recipe = new CraftingRecipe( rs.getInt("id"), HelperFunctions.readEncodedString(rs.getBytes("name"))); recipe.setResultItemId(rs.getInt("resultItemID")); recipe.setResultItemCount(rs.getInt("resultItemCount")); recipe.setSkillID(rs.getInt("skillID")); recipe.setRequiredSkillLevel(rs.getInt("skillLevelReq")); recipe.setRecipeItemId(rs.getInt("recipeItemID")); recipe.setQualityChangeable(rs.getBoolean("qualityChangeable")); recipe.setAllowDyes(rs.getBoolean("allowDyes")); recipe.setAllowEssences(rs.getBoolean("allowEssences")); recipe.setStationReq(HelperFunctions.readEncodedString(rs.getBytes("stationReq"))); recipe.setMustMatchLayout(rs.getBoolean("layoutReq")); for (int i = 0; i < CraftingPlugin.GRID_SIZE; ++i) { final LinkedList<CraftingComponent> componentRow = new LinkedList<CraftingComponent>(); for (int j = 0; j < CraftingPlugin.GRID_SIZE; ++j) { final CraftingComponent component = new CraftingComponent( "", rs.getInt("component" + (i * CraftingPlugin.GRID_SIZE + j + 1) + "Count"), rs.getInt("component" + (i * CraftingPlugin.GRID_SIZE + j + 1))); componentRow.add(component); Log.debug( "CRAFTING: adding item: " + component.getItemId() + " to row: " + i + " in column: " + j); } recipe.addCraftingComponentRow(componentRow); } list.put(recipe.getID(), recipe); Log.debug("CRAFTING: put recipe:" + recipe.getID()); } } } catch (SQLException e) { e.printStackTrace(); } return list; }
public HashMap<Integer, MerchantTable> loadMerchantTables() { final HashMap<Integer, MerchantTable> map = new HashMap<Integer, MerchantTable>(); try { final PreparedStatement ps = ItemDatabase.queries.prepare("SELECT * FROM merchant_tables where isactive = 1"); final ResultSet rs = ItemDatabase.queries.executeSelect(ps); if (rs != null) { while (rs.next()) { final int tableID = rs.getInt("id"); final MerchantTable m = new MerchantTable(tableID, HelperFunctions.readEncodedString(rs.getBytes("name"))); this.loadMerchantItems(m); map.put(tableID, m); } } } catch (SQLException e) { e.printStackTrace(); } return map; }
private LinkedList<String> getAbilityCooldowns(final int abilityID) { final LinkedList<String> list = new LinkedList<String>(); try { final PreparedStatement ps = ItemDatabase.queries.prepare("SELECT cooldown1Type FROM abilities where id=" + abilityID); final ResultSet rs = ItemDatabase.queries.executeSelect(ps); if (rs != null) { while (rs.next()) { Log.debug("COOLDOWN: Reading in cooldown data for ability: " + abilityID); final String cooldown = HelperFunctions.readEncodedString(rs.getBytes("cooldown1Type")); if (cooldown != null && !cooldown.equals("")) { list.add(cooldown); } } } } catch (SQLException e) { e.printStackTrace(); } Log.debug("COOLDOWN: " + abilityID + " has cooldowns: " + list); return list; }
public ArrayList<Template> loadItemTemplates() { Log.debug("ITEM: loading item templates"); final ArrayList<Template> list = new ArrayList<Template>(); try { final PreparedStatement ps = ItemDatabase.queries.prepare("SELECT * FROM item_templates where isactive = 1"); final ResultSet rs = ItemDatabase.queries.executeSelect(ps); if (rs != null) { while (rs.next()) { final Template tmpl = new Template( HelperFunctions.readEncodedString(rs.getBytes("name")), rs.getInt("id"), ObjectManagerPlugin.ITEM_TEMPLATE); Log.debug("ITEM: loading item template " + rs.getInt("id")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "baseName", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("name"))); tmpl.put( InventoryClient.ITEM_NAMESPACE, "category", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("category"))); tmpl.put( InventoryClient.ITEM_NAMESPACE, "subcategory", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("subcategory"))); tmpl.put(InventoryClient.ITEM_NAMESPACE, "itemID", (Serializable) rs.getInt("id")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_icon", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("icon"))); final String itemType = HelperFunctions.readEncodedString(rs.getBytes("itemType")); tmpl.put(InventoryClient.ITEM_NAMESPACE, "itemType", (Serializable) itemType); tmpl.put( InventoryClient.ITEM_NAMESPACE, "subType", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("subType"))); if (itemType.equals("Weapon") || itemType.equals("Armor")) { final AgisEquipInfo eqInfo = this.getEquipInfo(HelperFunctions.readEncodedString(rs.getBytes("slot"))); tmpl.put( InventoryClient.ITEM_NAMESPACE, "slot", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("slot"))); tmpl.put(InventoryClient.ITEM_NAMESPACE, "item_equipInfo", (Serializable) eqInfo); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_activateHook", (Serializable) new EquipActivateHook()); final String displayID = HelperFunctions.readEncodedString(rs.getBytes("display")); tmpl.put(InventoryClient.ITEM_NAMESPACE, "displayVal", (Serializable) displayID); } tmpl.put( InventoryClient.ITEM_NAMESPACE, "itemGrade", (Serializable) rs.getInt("itemQuality")); tmpl.put(InventoryClient.ITEM_NAMESPACE, "binding", (Serializable) rs.getInt("binding")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "isUnique", (Serializable) rs.getBoolean("isUnique")); if (itemType.equals("Bag") || itemType.equals("Container")) { tmpl.put( InventoryClient.ITEM_NAMESPACE, "numSlots", (Serializable) rs.getInt("stackLimit")); tmpl.put(InventoryClient.ITEM_NAMESPACE, "stackLimit", (Serializable) 1); } else { tmpl.put( InventoryClient.ITEM_NAMESPACE, "stackLimit", (Serializable) rs.getInt("stackLimit")); } tmpl.put( InventoryClient.ITEM_NAMESPACE, "purchaseCurrency", (Serializable) rs.getInt("purchaseCurrency")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "purchaseCost", (Serializable) rs.getInt("purchaseCost")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "sellable", (Serializable) rs.getBoolean("sellable")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "levelReq", (Serializable) rs.getInt("levelReq")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "aspectReq", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("aspectReq"))); tmpl.put( InventoryClient.ITEM_NAMESPACE, "raceReq", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("raceReq"))); final HashMap<String, Integer> itemStats = new HashMap<String, Integer>(); for (int i = 1; i <= 12; ++i) { final String effectType = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "type")); if (effectType == null) { break; } if (effectType.equals("")) { break; } if (effectType.equals("Stat")) { if (itemType.equals("Weapon") || itemType.equals("Armor")) { final String stat = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "name")); final String value = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); if (stat != null && !stat.isEmpty()) { itemStats.put(stat, Integer.parseInt(value)); } } } else if (effectType.equals("UseAbility")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int abilityID = Integer.parseInt(value2); tmpl.put(InventoryClient.ITEM_NAMESPACE, "abilityID", (Serializable) abilityID); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_activateHook", (Serializable) new AbilityActivateHook(abilityID)); final LinkedList<String> cooldowns = this.getAbilityCooldowns(abilityID); for (int j = 0; j < cooldowns.size(); ++j) { tmpl.put( InventoryClient.ITEM_NAMESPACE, "cooldown_" + j, (Serializable) cooldowns.get(j)); } } else if (effectType.equals("AutoAttack")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int abilityID = Integer.parseInt(value2); tmpl.put(InventoryClient.ITEM_NAMESPACE, "autoAttack", (Serializable) abilityID); } else if (effectType.equals("CreateClaim")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int size = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_activateHook", (Serializable) new CreateClaimActivateHook(size)); } else if (effectType.equals("Currency")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int currencyID = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, AgisItem.TEMPL_ACQUIRE_HOOK, (Serializable) new CurrencyItemAcquireHook(currencyID)); } else if (effectType.equals("CurrencyItem")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int currencyID = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_activateHook", (Serializable) new CurrencyItemActivateHook(currencyID)); } else if (effectType.equals("BuildingMaterial")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int buildHealthValue = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, "buildHealthValue", (Serializable) buildHealthValue); } else if (effectType.equals("Blueprint")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int recipeID = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, "item_activateHook", (Serializable) new RecipeItemActivateHook(recipeID)); } else if (effectType.equals("SpawnMob")) { final String value2 = HelperFunctions.readEncodedString(rs.getBytes("effect" + i + "value")); final int mobTemplateID = Integer.parseInt(value2); tmpl.put( InventoryClient.ITEM_NAMESPACE, AgisItem.TEMPL_ACQUIRE_HOOK, (Serializable) new SpawnMobAcquireHook(mobTemplateID)); } } tmpl.put(InventoryClient.ITEM_NAMESPACE, "bonusStats", (Serializable) itemStats); if (itemType.equals("Weapon")) { tmpl.put(InventoryClient.ITEM_NAMESPACE, "damage", (Serializable) rs.getInt("damage")); tmpl.put( InventoryClient.ITEM_NAMESPACE, "damageType", (Serializable) HelperFunctions.readEncodedString(rs.getBytes("damageType"))); final float delay = rs.getFloat("delay") * 1000.0f; tmpl.put(InventoryClient.ITEM_NAMESPACE, "delay", (Serializable) (int) delay); } list.add(tmpl); Log.debug( "ITEM: loaded item template " + rs.getInt("id") + " with name: " + HelperFunctions.readEncodedString(rs.getBytes("name"))); } } } catch (SQLException e) { e.printStackTrace(); } return list; }