Rename and clean up MapleItemInformationProvider

This commit is contained in:
P0nk committed 2021-09-09 22:45:55 +02:00
1 parent 8f54b3e5de
commit 9c8abf6f62
81 files changed
+474 -343

No files matched your search

+3 -3
View File
@@ -69,7 +69,7 @@ function action(mode, type, selection) {
//var level = cm.getPlayer().getPet(i).getLevel(); //var level = cm.getPlayer().getPet(i).getLevel();
//var closeness = cm.getPlayer().getPet(i).getCloseness(); //var closeness = cm.getPlayer().getPet(i).getCloseness();
//var fullness = cm.getPlayer().getPet(i).getFullness(); //var fullness = cm.getPlayer().getPet(i).getFullness();
//MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); //ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (id < 5000029 || id > 5000033) { if (id < 5000029 || id > 5000033) {
cm.sendOk("Something wrong, try again."); cm.sendOk("Something wrong, try again.");
cm.dispose(); cm.dispose();
@@ -89,8 +89,8 @@ function action(mode, type, selection) {
cm.dispose(); cm.dispose();
} }
/*if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) { /*if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
name = MapleItemInformationProvider.getInstance().getName(after); name = ItemInformationProvider.getInstance().getName(after);
}*/ }*/
cm.gainItem(5380000, -1); cm.gainItem(5380000, -1);
+4 -4
View File
@@ -207,8 +207,8 @@ function getScrollSuccessTier(scrollStats) {
function getAvailableScrollsPool(baseScrolls, rewardTier, successTier) { function getAvailableScrollsPool(baseScrolls, rewardTier, successTier) {
var scrolls = []; var scrolls = [];
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider'); const ItemInformationProvider = Java.type('server.ItemInformationProvider');
var ii = MapleItemInformationProvider.getInstance(); var ii = ItemInformationProvider.getInstance();
for (var i = 0; i < baseScrolls.length; i++) { for (var i = 0; i < baseScrolls.length; i++) {
for (var j = 0; j < 100; j++) { for (var j = 0; j < 100; j++) {
@@ -245,8 +245,8 @@ function getPlayerCardTierPower() {
if (ceTier >= 8) { // is special card if (ceTier >= 8) { // is special card
const LifeFactory = Java.type('server.life.LifeFactory'); const LifeFactory = Java.type('server.life.LifeFactory');
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider'); const ItemInformationProvider = Java.type('server.ItemInformationProvider');
var mobLevel = LifeFactory.getMonsterLevel(MapleItemInformationProvider.getInstance().getCardMobId(cardid)); var mobLevel = LifeFactory.getMonsterLevel(ItemInformationProvider.getInstance().getCardMobId(cardid));
var mobTier = getLevelTier(mobLevel) - 1; var mobTier = getLevelTier(mobLevel) - 1;
countTier[mobTier] += (ce.getValue() * 1.2); countTier[mobTier] += (ce.getValue() * 1.2);
+2 -2
View File
@@ -37,8 +37,8 @@ function raiseOpen() {
} }
if (diffExp > 0) { // thanks IxianMace for noticing Mimiana egg not following progress by EXP if (diffExp > 0) { // thanks IxianMace for noticing Mimiana egg not following progress by EXP
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider'); const ItemInformationProvider = Java.type('server.ItemInformationProvider');
var consItem = MapleItemInformationProvider.getInstance().getQuestConsumablesInfo(4220137); var consItem = ItemInformationProvider.getInstance().getQuestConsumablesInfo(4220137);
var exp = consItem.exp; var exp = consItem.exp;
var grade = consItem.grade; var grade = consItem.grade;
+2 -2
View File
@@ -86,8 +86,8 @@ function end(mode, type, selection) {
return; return;
} }
/* if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) { /* if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
name = MapleItemInformationProvider.getInstance().getName(after); name = ItemInformationProvider.getInstance().getName(after);
} */ } */
//qm.unequipPet(qm.getClient()); //qm.unequipPet(qm.getClient());
+2 -2
View File
@@ -87,8 +87,8 @@ function end(mode, type, selection) {
} }
} while (after == pet.getItemId()); } while (after == pet.getItemId());
/*if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) { /*if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
name = MapleItemInformationProvider.getInstance().getName(after); name = ItemInformationProvider.getInstance().getName(after);
} */ } */
qm.gainMeso(-10000); qm.gainMeso(-10000);
+8 -8
View File
@@ -58,7 +58,7 @@ import scripting.AbstractPlayerInteraction;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import scripting.item.ItemScriptManager; import scripting.item.ItemScriptManager;
import server.*; import server.*;
import server.MapleItemInformationProvider.ScriptedItem; import server.ItemInformationProvider.ScriptedItem;
import server.events.Events; import server.events.Events;
import server.events.RescueGaga; import server.events.RescueGaga;
import server.events.gm.Fitness; import server.events.gm.Fitness;
@@ -94,7 +94,7 @@ import java.util.concurrent.locks.Lock;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class Character extends AbstractCharacterObject { public class Character extends AbstractCharacterObject {
private static final MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); private static final ItemInformationProvider ii = ItemInformationProvider.getInstance();
private static final String LEVEL_200 = "[Congrats] %s has reached Level %d! Congratulate %s on such an amazing achievement!"; private static final String LEVEL_200 = "[Congrats] %s has reached Level %d! Congratulate %s on such an amazing achievement!";
private static final String[] BLOCKED_NAMES = {"admin", "owner", "moderator", "intern", "donor", "administrator", "FREDRICK", "help", "helper", "alert", "notice", "maplestory", "fuck", "wizet", "fucking", "negro", "fuk", "fuc", "penis", "pussy", "asshole", "gay", private static final String[] BLOCKED_NAMES = {"admin", "owner", "moderator", "intern", "donor", "administrator", "FREDRICK", "help", "helper", "alert", "notice", "maplestory", "fuck", "wizet", "fucking", "negro", "fuk", "fuc", "penis", "pussy", "asshole", "gay",
"nigger", "homo", "suck", "cum", "shit", "shitty", "condom", "security", "official", "rape", "nigga", "sex", "tit", "boner", "orgy", "clit", "asshole", "fatass", "bitch", "support", "gamemaster", "cock", "gaay", "gm", "nigger", "homo", "suck", "cum", "shit", "shitty", "condom", "security", "official", "rape", "nigga", "sex", "tit", "boner", "orgy", "clit", "asshole", "fatass", "bitch", "support", "gamemaster", "cock", "gaay", "gm",
@@ -902,7 +902,7 @@ public class Character extends AbstractCharacterObject {
return; return;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (InventoryType invType : InventoryType.values()) { for (InventoryType invType : InventoryType.values()) {
Inventory inv = this.getInventory(invType); Inventory inv = this.getInventory(invType);
@@ -2977,7 +2977,7 @@ public class Character extends AbstractCharacterObject {
InventoryManipulator.removeFromSlot(client, inv.getType(), item.getPosition(), item.getQuantity(), true); InventoryManipulator.removeFromSlot(client, inv.getType(), item.getPosition(), item.getQuantity(), true);
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Item item : toberemove) { for (Item item : toberemove) {
List<Integer> toadd = new ArrayList<>(); List<Integer> toadd = new ArrayList<>();
Pair<Integer, String> replace = ii.getReplaceOnExpire(item.getItemId()); Pair<Integer, String> replace = ii.getReplaceOnExpire(item.getItemId());
@@ -3593,7 +3593,7 @@ public class Character extends AbstractCharacterObject {
System.out.println("IN ACTION:"); System.out.println("IN ACTION:");
for (Entry<BuffStat, MapleBuffStatValueHolder> bpl : effects.entrySet()) { for (Entry<BuffStat, MapleBuffStatValueHolder> bpl : effects.entrySet()) {
System.out.println(bpl.getKey().name() + " -> " + MapleItemInformationProvider.getInstance().getName(bpl.getValue().effect.getSourceId())); System.out.println(bpl.getKey().name() + " -> " + ItemInformationProvider.getInstance().getName(bpl.getValue().effect.getSourceId()));
} }
} finally { } finally {
chrLock.unlock(); chrLock.unlock();
@@ -9348,7 +9348,7 @@ public class Character extends AbstractCharacterObject {
} }
} }
public int sellAllItemsFromPosition(MapleItemInformationProvider ii, InventoryType type, short pos) { public int sellAllItemsFromPosition(ItemInformationProvider ii, InventoryType type, short pos) {
int mesoGain = 0; int mesoGain = 0;
Inventory inv = getInventory(type); Inventory inv = getInventory(type);
@@ -9367,7 +9367,7 @@ public class Character extends AbstractCharacterObject {
return (mesoGain); return (mesoGain);
} }
private int standaloneSell(Client c, MapleItemInformationProvider ii, InventoryType type, short slot, short quantity) { private int standaloneSell(Client c, ItemInformationProvider ii, InventoryType type, short slot, short quantity) {
if (quantity == 0xFFFF || quantity == 0) { if (quantity == 0xFFFF || quantity == 0) {
quantity = 1; quantity = 1;
} }
@@ -9506,7 +9506,7 @@ public class Character extends AbstractCharacterObject {
Equip eqp = eqpUpg.getKey(); Equip eqp = eqpUpg.getKey();
setMergeFlag(eqp); setMergeFlag(eqp);
String showStr = " '" + MapleItemInformationProvider.getInstance().getName(eqp.getItemId()) + "': "; String showStr = " '" + ItemInformationProvider.getInstance().getName(eqp.getItemId()) + "': ";
String upgdStr = eqp.gainStats(eqpStatups).getLeft(); String upgdStr = eqp.gainStats(eqpStatups).getLeft();
this.forceUpdateItem(eqp); this.forceUpdateItem(eqp);
@@ -25,7 +25,7 @@ package client.command.commands.gm0;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.gachapon.MapleGachapon; import server.gachapon.MapleGachapon;
public class GachaCommand extends Command { public class GachaCommand extends Command {
@@ -56,7 +56,7 @@ public class GachaCommand extends Command {
String talkStr = "The #b" + gachaName + "#k Gachapon contains the following items.\r\n\r\n"; String talkStr = "The #b" + gachaName + "#k Gachapon contains the following items.\r\n\r\n";
for (int i = 0; i < 2; i++){ for (int i = 0; i < 2; i++){
for (int id : gacha.getItems(i)){ for (int id : gacha.getItems(i)){
talkStr += "-" + MapleItemInformationProvider.getInstance().getName(id) + "\r\n"; talkStr += "-" + ItemInformationProvider.getInstance().getName(id) + "\r\n";
} }
} }
talkStr += "\r\nPlease keep in mind that there are items that are in all gachapons and are not listed here."; talkStr += "\r\nPlease keep in mind that there are items that are in all gachapons and are not listed here.";
@@ -26,7 +26,7 @@ package client.command.commands.gm1;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.life.MonsterDropEntry; import server.life.MonsterDropEntry;
import server.life.MonsterInformationProvider; import server.life.MonsterInformationProvider;
import tools.Pair; import tools.Pair;
@@ -57,7 +57,7 @@ public class WhatDropsFromCommand extends Command {
output += mobName + " drops the following items:\r\n\r\n"; output += mobName + " drops the following items:\r\n\r\n";
for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){ for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){
try { try {
String name = MapleItemInformationProvider.getInstance().getName(drop.itemId); String name = ItemInformationProvider.getInstance().getName(drop.itemId);
if (name == null || name.equals("null") || drop.chance == 0){ if (name == null || name.equals("null") || drop.chance == 0){
continue; continue;
} }
@@ -26,7 +26,7 @@ package client.command.commands.gm1;
import client.Character; import client.Character;
import client.Client; import client.Client;
import client.command.Command; import client.command.Command;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.life.MonsterInformationProvider; import server.life.MonsterInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.Pair; import tools.Pair;
@@ -53,7 +53,7 @@ public class WhoDropsCommand extends Command {
try { try {
String searchString = player.getLastCommandMessage(); String searchString = player.getLastCommandMessage();
String output = ""; String output = "";
Iterator<Pair<Integer, String>> listIterator = MapleItemInformationProvider.getInstance().getItemDataByName(searchString).iterator(); Iterator<Pair<Integer, String>> listIterator = ItemInformationProvider.getInstance().getItemDataByName(searchString).iterator();
if (listIterator.hasNext()) { if (listIterator.hasNext()) {
int count = 1; int count = 1;
while (listIterator.hasNext() && count <= 3) { while (listIterator.hasNext() && count <= 3) {
@@ -30,7 +30,7 @@ import client.inventory.Pet;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class ItemCommand extends Command { public class ItemCommand extends Command {
{ {
@@ -47,7 +47,7 @@ public class ItemCommand extends Command {
} }
int itemId = Integer.parseInt(params[0]); int itemId = Integer.parseInt(params[0]);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if(ii.getName(itemId) == null) { if(ii.getName(itemId) == null) {
player.yellowMessage("Item id '" + params[0] + "' does not exist."); player.yellowMessage("Item id '" + params[0] + "' does not exist.");
@@ -31,7 +31,7 @@ import client.inventory.Item;
import client.inventory.Pet; import client.inventory.Pet;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class ItemDropCommand extends Command { public class ItemDropCommand extends Command {
{ {
@@ -48,7 +48,7 @@ public class ItemDropCommand extends Command {
} }
int itemId = Integer.parseInt(params[0]); int itemId = Integer.parseInt(params[0]);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if(ii.getName(itemId) == null) { if(ii.getName(itemId) == null) {
player.yellowMessage("Item id '" + params[0] + "' does not exist."); player.yellowMessage("Item id '" + params[0] + "' does not exist.");
@@ -29,7 +29,7 @@ import client.command.Command;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class RechargeCommand extends Command { public class RechargeCommand extends Command {
{ {
@@ -39,7 +39,7 @@ public class RechargeCommand extends Command {
@Override @Override
public void execute(Client c, String[] params) { public void execute(Client c, String[] params) {
Character player = c.getPlayer(); Character player = c.getPlayer();
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Item torecharge : c.getPlayer().getInventory(InventoryType.USE).list()) { for (Item torecharge : c.getPlayer().getInventory(InventoryType.USE).list()) {
if (ItemConstants.isThrowingStar(torecharge.getItemId())){ if (ItemConstants.isThrowingStar(torecharge.getItemId())){
torecharge.setQuantity(ii.getSlotMax(c, torecharge.getItemId())); torecharge.setQuantity(ii.getSlotMax(c, torecharge.getItemId()));
@@ -31,7 +31,7 @@ import provider.DataProvider;
import provider.DataProviderFactory; import provider.DataProviderFactory;
import provider.DataTool; import provider.DataTool;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.quest.Quest; import server.quest.Quest;
import tools.Pair; import tools.Pair;
@@ -117,7 +117,7 @@ public class SearchCommand extends Command {
} }
} }
} else { } else {
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) { for (Pair<Integer, String> itemPair : ItemInformationProvider.getInstance().getAllItems()) {
if (sb.length() < 32654) {//ohlol if (sb.length() < 32654) {//ohlol
if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) { if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n"); sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n");
@@ -28,7 +28,7 @@ import client.Client;
import client.Stat; import client.Stat;
import client.command.Command; import client.command.Command;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class FaceCommand extends Command { public class FaceCommand extends Command {
{ {
@@ -46,7 +46,7 @@ public class FaceCommand extends Command {
try { try {
if (params.length == 1) { if (params.length == 1) {
int itemId = Integer.parseInt(params[0]); int itemId = Integer.parseInt(params[0]);
if (!ItemConstants.isFace(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { if (!ItemConstants.isFace(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
player.yellowMessage("Face id '" + params[0] + "' does not exist."); player.yellowMessage("Face id '" + params[0] + "' does not exist.");
return; return;
} }
@@ -56,7 +56,7 @@ public class FaceCommand extends Command {
player.equipChanged(); player.equipChanged();
} else { } else {
int itemId = Integer.parseInt(params[1]); int itemId = Integer.parseInt(params[1]);
if (!ItemConstants.isFace(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { if (!ItemConstants.isFace(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
player.yellowMessage("Face id '" + params[1] + "' does not exist."); player.yellowMessage("Face id '" + params[1] + "' does not exist.");
} }
@@ -28,7 +28,7 @@ import client.Client;
import client.Stat; import client.Stat;
import client.command.Command; import client.command.Command;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class HairCommand extends Command { public class HairCommand extends Command {
{ {
@@ -46,7 +46,7 @@ public class HairCommand extends Command {
try { try {
if (params.length == 1) { if (params.length == 1) {
int itemId = Integer.parseInt(params[0]); int itemId = Integer.parseInt(params[0]);
if (!ItemConstants.isHair(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { if (!ItemConstants.isHair(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
player.yellowMessage("Hair id '" + params[0] + "' does not exist."); player.yellowMessage("Hair id '" + params[0] + "' does not exist.");
return; return;
} }
@@ -56,7 +56,7 @@ public class HairCommand extends Command {
player.equipChanged(); player.equipChanged();
} else { } else {
int itemId = Integer.parseInt(params[1]); int itemId = Integer.parseInt(params[1]);
if (!ItemConstants.isHair(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { if (!ItemConstants.isHair(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
player.yellowMessage("Hair id '" + params[1] + "' does not exist."); player.yellowMessage("Hair id '" + params[1] + "' does not exist.");
return; return;
} }
@@ -31,7 +31,7 @@ import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public class ProItemCommand extends Command { public class ProItemCommand extends Command {
{ {
@@ -46,7 +46,7 @@ public class ProItemCommand extends Command {
return; return;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
int itemid = Integer.parseInt(params[0]); int itemid = Integer.parseInt(params[0]);
if(ii.getName(itemid) == null) { if(ii.getName(itemid) == null) {
@@ -27,7 +27,7 @@ import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import config.YamlConfig; import config.YamlConfig;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
@@ -59,7 +59,7 @@ public abstract class CharacterFactory {
newchar.setMapId(recipe.getMap()); newchar.setMapId(recipe.getMap());
Inventory equipped = newchar.getInventory(InventoryType.EQUIPPED); Inventory equipped = newchar.getInventory(InventoryType.EQUIPPED);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
int top = recipe.getTop(), bottom = recipe.getBottom(), shoes = recipe.getShoes(), weapon = recipe.getWeapon(); int top = recipe.getTop(), bottom = recipe.getBottom(), shoes = recipe.getShoes(), weapon = recipe.getWeapon();
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
/** /**
* *
@@ -38,7 +38,7 @@ public class BowmanCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon); CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
recipe.setDex(25); recipe.setDex(25);
recipe.setRemainingAp(133); recipe.setRemainingAp(133);
@@ -60,7 +60,7 @@ public class BowmanCreator extends CharacterFactory {
return recipe; return recipe;
} }
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) { private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
Item nEquip = ii.getEquipById(equipid); Item nEquip = ii.getEquipById(equipid);
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
@@ -28,7 +28,7 @@ import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import constants.skills.Magician; import constants.skills.Magician;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
/** /**
* *
@@ -42,7 +42,7 @@ public class MagicianCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) { private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon); CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
recipe.setInt(20); recipe.setInt(20);
recipe.setRemainingAp(138); recipe.setRemainingAp(138);
@@ -83,7 +83,7 @@ public class MagicianCreator extends CharacterFactory {
return recipe; return recipe;
} }
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) { private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
Item nEquip = ii.getEquipById(equipid); Item nEquip = ii.getEquipById(equipid);
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
/** /**
* *
@@ -38,7 +38,7 @@ public class PirateCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon); CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
recipe.setDex(20); recipe.setDex(20);
recipe.setRemainingAp(138); recipe.setRemainingAp(138);
@@ -64,7 +64,7 @@ public class PirateCreator extends CharacterFactory {
return recipe; return recipe;
} }
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) { private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
Item nEquip = ii.getEquipById(equipid); Item nEquip = ii.getEquipById(equipid);
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
/** /**
* *
@@ -38,7 +38,7 @@ public class ThiefCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon); CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
recipe.setDex(25); recipe.setDex(25);
recipe.setRemainingAp(133); recipe.setRemainingAp(133);
@@ -62,7 +62,7 @@ public class ThiefCreator extends CharacterFactory {
return recipe; return recipe;
} }
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) { private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
Item nEquip = ii.getEquipById(equipid); Item nEquip = ii.getEquipById(equipid);
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
@@ -28,7 +28,7 @@ import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType; import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import constants.skills.Warrior; import constants.skills.Warrior;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
/** /**
* *
@@ -42,7 +42,7 @@ public class WarriorCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) { private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon); CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
recipe.setStr(35); recipe.setStr(35);
recipe.setRemainingAp(123); recipe.setRemainingAp(123);
@@ -83,7 +83,7 @@ public class WarriorCreator extends CharacterFactory {
return recipe; return recipe;
} }
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) { private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
Item nEquip = ii.getEquipById(equipid); Item nEquip = ii.getEquipById(equipid);
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
+11 -11
View File
@@ -25,7 +25,7 @@ import client.Client;
import config.YamlConfig; import config.YamlConfig;
import constants.game.ExpTable; import constants.game.ExpTable;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
import tools.Randomizer; import tools.Randomizer;
@@ -83,7 +83,7 @@ public class Equip extends Item {
this.itemExp = 0; this.itemExp = 0;
this.itemLevel = 1; this.itemLevel = 1;
this.isElemental = (MapleItemInformationProvider.getInstance().getEquipLevel(id, false) > 1); this.isElemental = (ItemInformationProvider.getInstance().getEquipLevel(id, false) > 1);
} }
@Override @Override
@@ -306,7 +306,7 @@ public class Equip extends Item {
} }
private static boolean isPhysicalWeapon(int itemid) { private static boolean isPhysicalWeapon(int itemid) {
Equip eqp = (Equip) MapleItemInformationProvider.getInstance().getEquipById(itemid); Equip eqp = (Equip) ItemInformationProvider.getInstance().getEquipById(itemid);
return eqp.getWatk() >= eqp.getMatk(); return eqp.getWatk() >= eqp.getMatk();
} }
@@ -476,7 +476,7 @@ public class Equip extends Item {
List<Pair<StatUpgrade, Integer>> stats = new LinkedList<>(); List<Pair<StatUpgrade, Integer>> stats = new LinkedList<>();
if(isElemental) { if(isElemental) {
List<Pair<String, Integer>> elementalStats = MapleItemInformationProvider.getInstance().getItemLevelupStats(getItemId(), itemLevel); List<Pair<String, Integer>> elementalStats = ItemInformationProvider.getInstance().getItemLevelupStats(getItemId(), itemLevel);
for(Pair<String, Integer> p: elementalStats) { for(Pair<String, Integer> p: elementalStats) {
if(p.getRight() > 0) stats.add(new Pair<>(StatUpgrade.valueOf(p.getLeft()), p.getRight())); if(p.getRight() > 0) stats.add(new Pair<>(StatUpgrade.valueOf(p.getLeft()), p.getRight()));
@@ -510,8 +510,8 @@ public class Equip extends Item {
itemLevel++; itemLevel++;
String lvupStr = "'" + MapleItemInformationProvider.getInstance().getName(this.getItemId()) + "' is now level " + itemLevel + "! "; String lvupStr = "'" + ItemInformationProvider.getInstance().getName(this.getItemId()) + "' is now level " + itemLevel + "! ";
String showStr = "#e'" + MapleItemInformationProvider.getInstance().getName(this.getItemId()) + "'#b is now #elevel #r" + itemLevel + "#k#b!"; String showStr = "#e'" + ItemInformationProvider.getInstance().getName(this.getItemId()) + "'#b is now #elevel #r" + itemLevel + "#k#b!";
Pair<String, Pair<Boolean, Boolean>> res = this.gainStats(stats); Pair<String, Pair<Boolean, Boolean>> res = this.gainStats(stats);
lvupStr += res.getLeft(); lvupStr += res.getLeft();
@@ -519,11 +519,11 @@ public class Equip extends Item {
boolean gotVicious = res.getRight().getRight(); boolean gotVicious = res.getRight().getRight();
if (gotVicious) { if (gotVicious) {
//c.getPlayer().dropMessage(6, "A new Vicious Hammer opportunity has been found on the '" + MapleItemInformationProvider.getInstance().getName(getItemId()) + "'!"); //c.getPlayer().dropMessage(6, "A new Vicious Hammer opportunity has been found on the '" + ItemInformationProvider.getInstance().getName(getItemId()) + "'!");
lvupStr += "+VICIOUS "; lvupStr += "+VICIOUS ";
} }
if (gotSlot) { if (gotSlot) {
//c.getPlayer().dropMessage(6, "A new upgrade slot has been found on the '" + MapleItemInformationProvider.getInstance().getName(getItemId()) + "'!"); //c.getPlayer().dropMessage(6, "A new upgrade slot has been found on the '" + ItemInformationProvider.getInstance().getName(getItemId()) + "'!");
lvupStr += "+UPGSLOT "; lvupStr += "+UPGSLOT ";
} }
@@ -559,7 +559,7 @@ public class Equip extends Item {
} }
public synchronized void gainItemExp(Client c, int gain) { // Ronan's Equip Exp gain method public synchronized void gainItemExp(Client c, int gain) { // Ronan's Equip Exp gain method
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if(!ii.isUpgradeable(this.getItemId())) { if(!ii.isUpgradeable(this.getItemId())) {
return; return;
} }
@@ -601,7 +601,7 @@ public class Equip extends Item {
private boolean reachedMaxLevel() { private boolean reachedMaxLevel() {
if (isElemental) { if (isElemental) {
if (itemLevel < MapleItemInformationProvider.getInstance().getEquipLevel(getItemId(), true)) { if (itemLevel < ItemInformationProvider.getInstance().getEquipLevel(getItemId(), true)) {
return false; return false;
} }
} }
@@ -610,7 +610,7 @@ public class Equip extends Item {
} }
public String showEquipFeatures(Client c) { public String showEquipFeatures(Client c) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if(!ii.isUpgradeable(this.getItemId())) return ""; if(!ii.isUpgradeable(this.getItemId())) return "";
String eqpName = ii.getName(getItemId()); String eqpName = ii.getName(getItemId());
@@ -27,7 +27,7 @@ import client.inventory.manipulator.InventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.ThreadManager; import server.ThreadManager;
import tools.FilePrinter; import tools.FilePrinter;
import tools.Pair; import tools.Pair;
@@ -113,7 +113,7 @@ public class Inventory implements Iterable<Item> {
} }
public Item findByName(String name) { public Item findByName(String name) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Item item : list()) { for (Item item : list()) {
String itemName = ii.getName(item.getItemId()); String itemName = ii.getName(item.getItemId());
if (itemName == null) { if (itemName == null) {
@@ -421,7 +421,7 @@ public class Inventory implements Iterable<Item> {
} }
private static boolean checkItemRestricted(List<Pair<Item, InventoryType>> items) { private static boolean checkItemRestricted(List<Pair<Item, InventoryType>> items) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
// thanks Shavit for noticing set creation that would be only effective in rare situations // thanks Shavit for noticing set creation that would be only effective in rare situations
for (Pair<Item, InventoryType> p : items) { for (Pair<Item, InventoryType> p : items) {
+3 -3
View File
@@ -23,7 +23,7 @@ package client.inventory;
import client.inventory.manipulator.KarmaManipulator; import client.inventory.manipulator.KarmaManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
@@ -152,7 +152,7 @@ public class Item implements Comparable<Item> {
} }
public void setFlag(short b) { public void setFlag(short b) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (ii.isAccountRestricted(id)) { if (ii.isAccountRestricted(id)) {
b |= ItemConstants.ACCOUNT_SHARING; // thanks Shinigami15 for noticing ACCOUNT_SHARING flag not being applied properly to items server-side b |= ItemConstants.ACCOUNT_SHARING; // thanks Shinigami15 for noticing ACCOUNT_SHARING flag not being applied properly to items server-side
} }
@@ -189,6 +189,6 @@ public class Item implements Comparable<Item> {
} }
public boolean isUntradeable() { public boolean isUntradeable() {
return ((this.getFlag() & ItemConstants.UNTRADEABLE) == ItemConstants.UNTRADEABLE) || (MapleItemInformationProvider.getInstance().isDropRestricted(this.getItemId()) && !KarmaManipulator.hasKarmaFlag(this)); return ((this.getFlag() & ItemConstants.UNTRADEABLE) == ItemConstants.UNTRADEABLE) || (ItemInformationProvider.getInstance().isDropRestricted(this.getItemId()) && !KarmaManipulator.hasKarmaFlag(this));
} }
} }
+4 -4
View File
@@ -24,7 +24,7 @@ package client.inventory;
import client.Character; import client.Character;
import client.inventory.manipulator.CashIdGenerator; import client.inventory.manipulator.CashIdGenerator;
import constants.game.ExpTable; import constants.game.ExpTable;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.movement.AbsoluteLifeMovement; import server.movement.AbsoluteLifeMovement;
import server.movement.LifeMovement; import server.movement.LifeMovement;
import server.movement.LifeMovementFragment; import server.movement.LifeMovementFragment;
@@ -130,7 +130,7 @@ public class Pet extends Item {
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, 1, 0, 100, 0, 0)")) { PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, 1, 0, 100, 0, 0)")) {
int ret = CashIdGenerator.generateCashId(); int ret = CashIdGenerator.generateCashId();
ps.setInt(1, ret); ps.setInt(1, ret);
ps.setString(2, MapleItemInformationProvider.getInstance().getName(itemid)); ps.setString(2, ItemInformationProvider.getInstance().getName(itemid));
ps.executeUpdate(); ps.executeUpdate();
return ret; return ret;
} catch (SQLException e) { } catch (SQLException e) {
@@ -144,7 +144,7 @@ public class Pet extends Item {
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, ?, ?, ?, 0, 0)")) { PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, ?, ?, ?, 0, 0)")) {
int ret = CashIdGenerator.generateCashId(); int ret = CashIdGenerator.generateCashId();
ps.setInt(1, ret); ps.setInt(1, ret);
ps.setString(2, MapleItemInformationProvider.getInstance().getName(itemid)); ps.setString(2, ItemInformationProvider.getInstance().getName(itemid));
ps.setByte(3, level); ps.setByte(3, level);
ps.setInt(4, closeness); ps.setInt(4, closeness);
ps.setInt(5, fullness); ps.setInt(5, fullness);
@@ -307,7 +307,7 @@ public class Pet extends Item {
} }
public Pair<Integer, Boolean> canConsume(int itemId) { public Pair<Integer, Boolean> canConsume(int itemId) {
return MapleItemInformationProvider.getInstance().canPetConsume(this.getItemId(), itemId); return ItemInformationProvider.getInstance().canPetConsume(this.getItemId(), itemId);
} }
public void updatePosition(List<LifeMovementFragment> movement) { public void updatePosition(List<LifeMovementFragment> movement) {
@@ -28,7 +28,7 @@ import client.inventory.*;
import client.newyear.NewYearCardRecord; import client.newyear.NewYearCardRecord;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.maps.MapleMap; import server.maps.MapleMap;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
@@ -75,7 +75,7 @@ public class InventoryManipulator {
} }
private static boolean addByIdInternal(Client c, Character chr, InventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) { private static boolean addByIdInternal(Client c, Character chr, InventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (!type.equals(InventoryType.EQUIP)) { if (!type.equals(InventoryType.EQUIP)) {
short slotMax = ii.getSlotMax(c, itemId); short slotMax = ii.getSlotMax(c, itemId);
List<Item> existing = inv.listById(itemId); List<Item> existing = inv.listById(itemId);
@@ -184,7 +184,7 @@ public class InventoryManipulator {
} }
private static boolean addFromDropInternal(Client c, Character chr, InventoryType type, Inventory inv, Item item, boolean show, int petId) { private static boolean addFromDropInternal(Client c, Character chr, InventoryType type, Inventory inv, Item item, boolean show, int petId) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
int itemid = item.getItemId(); int itemid = item.getItemId();
if (ii.isPickupRestricted(itemid) && chr.haveItemWithId(itemid, true)) { if (ii.isPickupRestricted(itemid) && chr.haveItemWithId(itemid, true)) {
c.sendPacket(PacketCreator.getInventoryFull()); c.sendPacket(PacketCreator.getInventoryFull());
@@ -284,7 +284,7 @@ public class InventoryManipulator {
} }
public static boolean checkSpace(Client c, int itemid, int quantity, String owner) { public static boolean checkSpace(Client c, int itemid, int quantity, String owner) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
InventoryType type = ItemConstants.getInventoryType(itemid); InventoryType type = ItemConstants.getInventoryType(itemid);
Character chr = c.getPlayer(); Character chr = c.getPlayer();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
@@ -339,7 +339,7 @@ public class InventoryManipulator {
int returnValue; int returnValue;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
InventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : InventoryType.CANHOLD; InventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : InventoryType.CANHOLD;
Character chr = c.getPlayer(); Character chr = c.getPlayer();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
@@ -484,7 +484,7 @@ public class InventoryManipulator {
if (dst > inv.getSlotLimit()) { if (dst > inv.getSlotLimit()) {
return; return;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Item source = inv.getItem(src); Item source = inv.getItem(src);
Item initialTarget = inv.getItem(dst); Item initialTarget = inv.getItem(dst);
if (source == null) { if (source == null) {
@@ -513,7 +513,7 @@ public class InventoryManipulator {
} }
public static void equip(Client c, short src, short dst) { public static void equip(Client c, short src, short dst) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Character chr = c.getPlayer(); Character chr = c.getPlayer();
Inventory eqpInv = chr.getInventory(InventoryType.EQUIP); Inventory eqpInv = chr.getInventory(InventoryType.EQUIP);
@@ -672,7 +672,7 @@ public class InventoryManipulator {
} }
private static boolean isDisappearingItemDrop(Item it) { private static boolean isDisappearingItemDrop(Item it) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (ii.isDropRestricted(it.getItemId())) { if (ii.isDropRestricted(it.getItemId())) {
return true; return true;
} else if (ii.isCash(it.getItemId())) { } else if (ii.isCash(it.getItemId())) {
@@ -29,9 +29,9 @@ import config.YamlConfig;
import constants.game.GameConstants; import constants.game.GameConstants;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.packet.InPacket; import net.packet.InPacket;
import server.ItemInformationProvider;
import server.MakerItemFactory; import server.MakerItemFactory;
import server.MakerItemFactory.MakerItemCreateEntry; import server.MakerItemFactory.MakerItemCreateEntry;
import server.MapleItemInformationProvider;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -47,7 +47,7 @@ import java.util.Map;
*/ */
public class MakerProcessor { public class MakerProcessor {
private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); private static ItemInformationProvider ii = ItemInformationProvider.getInstance();
public static void makerAction(InPacket p, Client c) { public static void makerAction(InPacket p, Client c) {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
@@ -376,7 +376,7 @@ public class MakerProcessor {
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) { if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1)); eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
} }
item = MapleItemInformationProvider.getInstance().scrollEquipWithId(eqp, 2049100, true, 2049100, c.getPlayer().isGM()); item = ItemInformationProvider.getInstance().scrollEquipWithId(eqp, 2049100, true, 2049100, c.getPlayer().isGM());
} }
if(!reagentids.isEmpty()) { if(!reagentids.isEmpty()) {
@@ -28,7 +28,7 @@ import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import tools.PacketCreator; import tools.PacketCreator;
@@ -116,7 +116,7 @@ public class PetAutopotProcessor {
} }
} }
stat = MapleItemInformationProvider.getInstance().getItemEffect(toUse.getItemId()); stat = ItemInformationProvider.getInstance().getItemEffect(toUse.getItemId());
hasHpGain = stat.getHp() > 0 || stat.getHpRate() > 0.0; hasHpGain = stat.getHp() > 0 || stat.getHpRate() > 0.0;
hasMpGain = stat.getMp() > 0 || stat.getMpRate() > 0.0; hasMpGain = stat.getMp() > 0 || stat.getMpRate() > 0.0;
@@ -36,7 +36,7 @@ import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.server.channel.Channel; import net.server.channel.Channel;
import server.DueyPackage; import server.DueyPackage;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleTrade; import server.MapleTrade;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.FilePrinter; import tools.FilePrinter;
@@ -239,7 +239,7 @@ public class DueyProcessor {
private static int addPackageItemFromInventory(int packageId, Client c, byte invTypeId, short itemPos, short amount) { private static int addPackageItemFromInventory(int packageId, Client c, byte invTypeId, short itemPos, short amount) {
if (invTypeId > 0) { if (invTypeId > 0) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
InventoryType invType = InventoryType.getByType(invTypeId); InventoryType invType = InventoryType.getByType(invTypeId);
Inventory inv = c.getPlayer().getInventory(invType); Inventory inv = c.getPlayer().getInventory(invType);
@@ -411,7 +411,7 @@ public class DueyProcessor {
if (!InventoryManipulator.checkSpace(c, dpItem.getItemId(), dpItem.getQuantity(), dpItem.getOwner())) { if (!InventoryManipulator.checkSpace(c, dpItem.getItemId(), dpItem.getQuantity(), dpItem.getOwner())) {
int itemid = dpItem.getItemId(); int itemid = dpItem.getItemId();
if (MapleItemInformationProvider.getInstance().isPickupRestricted(itemid) && c.getPlayer().getInventory(ItemConstants.getInventoryType(itemid)).findById(itemid) != null) { if (ItemInformationProvider.getInstance().isPickupRestricted(itemid) && c.getPlayer().getInventory(ItemConstants.getInventoryType(itemid)).findById(itemid) != null) {
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode())); c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode()));
} else { } else {
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode())); c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode()));
@@ -32,7 +32,7 @@ import client.inventory.ItemFactory;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.server.Server; import net.server.Server;
import net.server.world.World; import net.server.world.World;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.maps.HiredMerchant; import server.maps.HiredMerchant;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.FilePrinter; import tools.FilePrinter;
@@ -290,7 +290,7 @@ public class FredrickProcessor {
for (Pair<Item, InventoryType> it : items) { for (Pair<Item, InventoryType> it : items) {
Item item = it.getLeft(); Item item = it.getLeft();
InventoryManipulator.addFromDrop(chr.getClient(), item, false); InventoryManipulator.addFromDrop(chr.getClient(), item, false);
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()); String itemName = ItemInformationProvider.getInstance().getName(item.getItemId());
FilePrinter.print(FilePrinter.FREDRICK + chr.getName() + ".txt", chr.getName() + " gained " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")"); FilePrinter.print(FilePrinter.FREDRICK + chr.getName() + ".txt", chr.getName() + " gained " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")");
} }
@@ -32,7 +32,7 @@ import client.inventory.manipulator.KarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStorage; import server.MapleStorage;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
@@ -45,7 +45,7 @@ import tools.PacketCreator;
public class StorageProcessor { public class StorageProcessor {
public static void storageAction(InPacket p, Client c) { public static void storageAction(InPacket p, Client c) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Character chr = c.getPlayer(); Character chr = c.getPlayer();
MapleStorage storage = chr.getStorage(); MapleStorage storage = chr.getStorage();
byte mode = p.readByte(); byte mode = p.readByte();
@@ -28,7 +28,7 @@ import client.inventory.InventoryType;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.life.LifeFactory; import server.life.LifeFactory;
import server.life.Monster; import server.life.Monster;
import server.maps.MapObject; import server.maps.MapObject;
@@ -52,7 +52,7 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
Character target; Character target;
switch (mode) { switch (mode) {
case 0x00: // Level1~Level8 & Package1~Package2 case 0x00: // Level1~Level8 & Package1~Package2
int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(p.readInt()); int[][] toSpawn = ItemInformationProvider.getInstance().getSummonMobs(p.readInt());
for (int[] toSpawnChild : toSpawn) { for (int[] toSpawnChild : toSpawn) {
if (Randomizer.nextInt(100) < toSpawnChild[1]) { if (Randomizer.nextInt(100) < toSpawnChild[1]) {
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition()); c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
@@ -24,14 +24,14 @@ package net.server.channel.handlers;
import client.Client; import client.Client;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
public final class CancelItemEffectHandler extends AbstractPacketHandler { public final class CancelItemEffectHandler extends AbstractPacketHandler {
@Override @Override
public final void handlePacket(InPacket p, Client c) { public final void handlePacket(InPacket p, Client c) {
int itemId = -p.readInt(); int itemId = -p.readInt();
if (MapleItemInformationProvider.getInstance().noCancelMouse(itemId)) { if (ItemInformationProvider.getInstance().noCancelMouse(itemId)) {
return; return;
} }
c.getPlayer().cancelEffect(itemId); c.getPlayer().cancelEffect(itemId);
@@ -37,7 +37,7 @@ import net.server.Server;
import server.CashShop; import server.CashShop;
import server.CashShop.CashItem; import server.CashShop.CashItem;
import server.CashShop.CashItemFactory; import server.CashShop.CashItemFactory;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -484,7 +484,7 @@ public final class CashOperationHandler extends AbstractPacketHandler {
private static boolean canBuy(Character chr, CashItem item, int cash) { private static boolean canBuy(Character chr, CashItem item, int cash) {
if (item != null && item.isOnSale() && item.getPrice() <= cash) { if (item != null && item.isOnSale() && item.getPrice() <= cash) {
FilePrinter.print(FilePrinter.CASHITEM_BOUGHT, chr + " bought " + MapleItemInformationProvider.getInstance().getName(item.getItemId()) + " (SN " + item.getSN() + ") for " + item.getPrice()); FilePrinter.print(FilePrinter.CASHITEM_BOUGHT, chr + " bought " + ItemInformationProvider.getInstance().getName(item.getItemId()) + " (SN " + item.getSN() + ") for " + item.getPrice());
return true; return true;
} else { } else {
return false; return false;
@@ -31,7 +31,7 @@ import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.CashShop; import server.CashShop;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
@@ -87,7 +87,7 @@ public final class CouponCodeHandler extends AbstractPacketHandler {
for (Entry<Integer, Integer> e : couponItems.entrySet()) { for (Entry<Integer, Integer> e : couponItems.entrySet()) {
int item = e.getKey(), qty = e.getValue(); int item = e.getKey(), qty = e.getValue();
if (MapleItemInformationProvider.getInstance().getName(item) == null) { if (ItemInformationProvider.getInstance().getName(item) == null) {
item = 4000000; item = 4000000;
qty = 1; qty = 1;
@@ -238,7 +238,7 @@ public final class CouponCodeHandler extends AbstractPacketHandler {
qty = (short) quantity; qty = (short) quantity;
} }
if (MapleItemInformationProvider.getInstance().isCash(item)) { if (ItemInformationProvider.getInstance().isCash(item)) {
Item it = CashShop.generateCouponItem(item, qty); Item it = CashShop.generateCouponItem(item, qty);
cs.addToInventory(it); cs.addToInventory(it);
@@ -31,7 +31,7 @@ import config.YamlConfig;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
public final class InventoryMergeHandler extends AbstractPacketHandler { public final class InventoryMergeHandler extends AbstractPacketHandler {
@@ -59,7 +59,7 @@ public final class InventoryMergeHandler extends AbstractPacketHandler {
try { try {
//------------------- RonanLana's SLOT MERGER ----------------- //------------------- RonanLana's SLOT MERGER -----------------
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Item srcItem, dstItem; Item srcItem, dstItem;
for(short dst = 1; dst <= inventory.getSlotLimit(); dst++) { for(short dst = 1; dst <= inventory.getSlotLimit(); dst++) {
@@ -28,7 +28,7 @@ import config.YamlConfig;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
import java.util.ArrayList; import java.util.ArrayList;
@@ -44,7 +44,7 @@ class PairedQuicksort {
private int i = 0; private int i = 0;
private int j = 0; private int j = 0;
private final ArrayList<Integer> intersect; private final ArrayList<Integer> intersect;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) { private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
Item x, w; Item x, w;
@@ -29,8 +29,8 @@ import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleItemInformationProvider.RewardItem; import server.ItemInformationProvider.RewardItem;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
import tools.Randomizer; import tools.Randomizer;
@@ -50,7 +50,7 @@ public final class ItemRewardHandler extends AbstractPacketHandler {
Item it = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); // null check here thanks to Thora Item it = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); // null check here thanks to Thora
if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(InventoryType.USE).countById(itemId) < 1) return; if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(InventoryType.USE).countById(itemId) < 1) return;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId); Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId);
for (RewardItem reward : rewards.getRight()) { for (RewardItem reward : rewards.getRight()) {
if (!InventoryManipulator.checkSpace(c, reward.itemid, reward.quantity, "")) { if (!InventoryManipulator.checkSpace(c, reward.itemid, reward.quantity, "")) {
@@ -33,8 +33,8 @@ import net.packet.InPacket;
import net.packet.Packet; import net.packet.Packet;
import net.server.Server; import net.server.Server;
import net.server.channel.Channel; import net.server.channel.Channel;
import server.ItemInformationProvider;
import server.MTSItemInfo; import server.MTSItemInfo;
import server.MapleItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -809,7 +809,7 @@ public final class MTSHandler extends AbstractPacketHandler {
public Packet getMTSSearch(int tab, int type, int cOi, String search, int page) { public Packet getMTSSearch(int tab, int type, int cOi, String search, int page) {
List<MTSItemInfo> items = new ArrayList<>(); List<MTSItemInfo> items = new ArrayList<>();
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
String listaitems = ""; String listaitems = "";
if (cOi != 0) { if (cOi != 0) {
List<String> retItems = new ArrayList<>(); List<String> retItems = new ArrayList<>();
@@ -26,7 +26,7 @@ import client.Client;
import client.processor.action.PetAutopotProcessor; import client.processor.action.PetAutopotProcessor;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
public final class PetAutoPotHandler extends AbstractPacketHandler { public final class PetAutoPotHandler extends AbstractPacketHandler {
@@ -40,7 +40,7 @@ public final class PetAutoPotHandler extends AbstractPacketHandler {
int itemId = p.readInt(); int itemId = p.readInt();
Character chr = c.getPlayer(); Character chr = c.getPlayer();
MapleStatEffect stat = MapleItemInformationProvider.getInstance().getItemEffect(itemId); MapleStatEffect stat = ItemInformationProvider.getInstance().getItemEffect(itemId);
if (stat.getHp() > 0 || stat.getHpRate() > 0.0) { if (stat.getHp() > 0 || stat.getHpRate() > 0.0) {
float estimatedHp = ((float) chr.getHp()) / chr.getMaxHp(); float estimatedHp = ((float) chr.getHp()) / chr.getMaxHp();
chr.setAutopotHpAlert(estimatedHp + 0.05f); chr.setAutopotHpAlert(estimatedHp + 0.05f);
@@ -34,7 +34,7 @@ import constants.game.GameConstants;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleTrade; import server.MapleTrade;
import server.maps.*; import server.maps.*;
import server.maps.MiniGame.MiniGameType; import server.maps.MiniGame.MiniGameType;
@@ -471,7 +471,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
} else if (mode == Action.SET_MESO.getCode()) { } else if (mode == Action.SET_MESO.getCode()) {
chr.getTrade().setMeso(p.readInt()); chr.getTrade().setMeso(p.readInt());
} else if (mode == Action.SET_ITEMS.getCode()) { } else if (mode == Action.SET_ITEMS.getCode()) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
InventoryType ivType = InventoryType.getByType(p.readByte()); InventoryType ivType = InventoryType.getByType(p.readByte());
short pos = p.readShort(); short pos = p.readShort();
Item item = chr.getInventory(ivType).getItem(pos); Item item = chr.getInventory(ivType).getItem(pos);
@@ -565,7 +565,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.serverNotice(1, "Could not perform shop operation with that item.")); c.sendPacket(PacketCreator.serverNotice(1, "Could not perform shop operation with that item."));
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
} else if (MapleItemInformationProvider.getInstance().isUnmerchable(ivItem.getItemId())) { } else if (ItemInformationProvider.getInstance().isUnmerchable(ivItem.getItemId())) {
if (ItemConstants.isPet(ivItem.getItemId())) { if (ItemConstants.isPet(ivItem.getItemId())) {
c.sendPacket(PacketCreator.serverNotice(1, "Pets are not allowed to be sold on the Player Store.")); c.sendPacket(PacketCreator.serverNotice(1, "Pets are not allowed to be sold on the Player Store."));
} else { } else {
@@ -8,8 +8,8 @@ import client.inventory.InventoryType;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleItemInformationProvider.QuestConsItem; import server.ItemInformationProvider.QuestConsItem;
import server.quest.Quest; import server.quest.Quest;
import tools.PacketCreator; import tools.PacketCreator;
@@ -30,7 +30,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
QuestConsItem consItem = ii.getQuestConsumablesInfo(itemid); QuestConsItem consItem = ii.getQuestConsumablesInfo(itemid);
if (consItem == null) { if (consItem == null) {
return; return;
@@ -34,7 +34,7 @@ import constants.inventory.ItemConstants;
import constants.skills.*; import constants.skills.*;
import net.packet.InPacket; import net.packet.InPacket;
import net.packet.Packet; import net.packet.Packet;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Randomizer; import tools.Randomizer;
@@ -91,7 +91,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
} }
} else { } else {
Item weapon = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -11); Item weapon = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -11);
WeaponType type = MapleItemInformationProvider.getInstance().getWeaponType(weapon.getItemId()); WeaponType type = ItemInformationProvider.getInstance().getWeaponType(weapon.getItemId());
if (type == WeaponType.NOT_A_WEAPON) { if (type == WeaponType.NOT_A_WEAPON) {
return; return;
} }
@@ -34,7 +34,7 @@ import net.packet.InPacket;
import net.server.channel.Channel; import net.server.channel.Channel;
import net.server.world.World; import net.server.world.World;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Pair; import tools.Pair;
@@ -273,7 +273,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
public static void giveMarriageRings(Character player, Character partner, int marriageRingId) { public static void giveMarriageRings(Character player, Character partner, int marriageRingId) {
Pair<Integer, Integer> rings = Ring.createRing(marriageRingId, player, partner); Pair<Integer, Integer> rings = Ring.createRing(marriageRingId, player, partner);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Item ringObj = ii.getEquipById(marriageRingId); Item ringObj = ii.getEquipById(marriageRingId);
Equip ringEqp = (Equip) ringObj; Equip ringEqp = (Equip) ringObj;
@@ -27,8 +27,8 @@ import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import scripting.item.ItemScriptManager; import scripting.item.ItemScriptManager;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleItemInformationProvider.ScriptedItem; import server.ItemInformationProvider.ScriptedItem;
/** /**
* *
@@ -41,7 +41,7 @@ public final class ScriptedItemHandler extends AbstractPacketHandler {
short itemSlot = p.readShort(); // item slot, thanks RMZero213 short itemSlot = p.readShort(); // item slot, thanks RMZero213
int itemId = p.readInt(); int itemId = p.readInt();
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
ScriptedItem info = ii.getScriptedItemInfo(itemId); ScriptedItem info = ii.getScriptedItemInfo(itemId);
if (info == null) return; if (info == null) return;
@@ -31,7 +31,7 @@ import client.inventory.manipulator.InventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
import java.util.ArrayList; import java.util.ArrayList;
@@ -58,7 +58,7 @@ public final class ScrollHandler extends AbstractPacketHandler {
whiteScroll = true; whiteScroll = true;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Character chr = c.getPlayer(); Character chr = c.getPlayer();
Equip toScroll = (Equip) chr.getInventory(InventoryType.EQUIPPED).getItem(dst); Equip toScroll = (Equip) chr.getInventory(InventoryType.EQUIPPED).getItem(dst);
Skill LegendarySpirit = SkillFactory.getSkill(1003); Skill LegendarySpirit = SkillFactory.getSkill(1003);
@@ -31,7 +31,7 @@ import client.inventory.Item;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
import java.util.Map; import java.util.Map;
@@ -61,7 +61,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
if (toUse == null || toUse.getItemId() != itemId) { if (toUse == null || toUse.getItemId() != itemId) {
return; return;
} }
Map<String, Integer> skilldata = MapleItemInformationProvider.getInstance().getSkillStats(toUse.getItemId(), c.getPlayer().getJob().getId()); Map<String, Integer> skilldata = ItemInformationProvider.getInstance().getSkillStats(toUse.getItemId(), c.getPlayer().getJob().getId());
if (skilldata == null) { if (skilldata == null) {
return; return;
} }
@@ -82,7 +82,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
} }
canuse = true; canuse = true;
if (MapleItemInformationProvider.rollSuccessChance(skilldata.get("success"))) { if (ItemInformationProvider.rollSuccessChance(skilldata.get("success"))) {
success = true; success = true;
player.changeSkillLevel(skill2, player.getSkillLevel(skill2), Math.max(skilldata.get("masterLevel"), player.getMasterLevel(skill2)), -1); player.changeSkillLevel(skill2, player.getSkillLevel(skill2), Math.max(skilldata.get("masterLevel"), player.getMasterLevel(skill2)), -1);
} else { } else {
@@ -32,7 +32,7 @@ import client.inventory.WeaponType;
import client.status.MonsterStatusEffect; import client.status.MonsterStatusEffect;
import constants.skills.Outlaw; import constants.skills.Outlaw;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import server.life.Monster; import server.life.Monster;
import server.life.MonsterInformationProvider; import server.life.MonsterInformationProvider;
@@ -139,7 +139,7 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler {
int maxBaseDmg; // thanks Conrad, Atoot for detecting some summons legitimately hitting over the calculated limit int maxBaseDmg; // thanks Conrad, Atoot for detecting some summons legitimately hitting over the calculated limit
if (weapon_item != null) { if (weapon_item != null) {
maxBaseDmg = player.calculateMaxBaseDamage(watk, MapleItemInformationProvider.getInstance().getWeaponType(weapon_item.getItemId())); maxBaseDmg = player.calculateMaxBaseDamage(watk, ItemInformationProvider.getInstance().getWeaponType(weapon_item.getItemId()));
} else { } else {
maxBaseDmg = player.calculateMaxBaseDamage(watk, WeaponType.SWORD1H); maxBaseDmg = player.calculateMaxBaseDamage(watk, WeaponType.SWORD1H);
} }
@@ -37,7 +37,7 @@ import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleShop; import server.MapleShop;
import server.MapleShopFactory; import server.MapleShopFactory;
import server.TimerManager; import server.TimerManager;
@@ -64,7 +64,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} }
player.setLastUsedCashItem(timeNow); player.setLastUsedCashItem(timeNow);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
short position = p.readShort(); short position = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
int itemType = itemId / 10000; int itemType = itemId / 10000;
@@ -30,7 +30,7 @@ import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.life.Monster; import server.life.Monster;
import tools.PacketCreator; import tools.PacketCreator;
@@ -189,7 +189,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
default: default:
// proper Fish catch, thanks to Dragohe4rt // proper Fish catch, thanks to Dragohe4rt
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
int itemGanho = ii.getCreateItem(itemId); int itemGanho = ii.getCreateItem(itemId);
int mobItem = ii.getMobItem(itemId); int mobItem = ii.getMobItem(itemId);
@@ -31,7 +31,7 @@ import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import tools.PacketCreator; import tools.PacketCreator;
@@ -47,7 +47,7 @@ public final class UseItemHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
p.readInt(); p.readInt();
short slot = p.readShort(); short slot = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
@@ -29,7 +29,7 @@ import client.inventory.Item;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
/** /**
@@ -45,7 +45,7 @@ public final class UseSolomonHandler extends AbstractPacketHandler {
p.readInt(); p.readInt();
short slot = p.readShort(); short slot = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
@@ -27,7 +27,7 @@ import client.inventory.Item;
import client.inventory.manipulator.InventoryManipulator; import client.inventory.manipulator.InventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.life.LifeFactory; import server.life.LifeFactory;
import tools.PacketCreator; import tools.PacketCreator;
import tools.Randomizer; import tools.Randomizer;
@@ -51,7 +51,7 @@ public final class UseSummonBagHandler extends AbstractPacketHandler {
Item toUse = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); Item toUse = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) { if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) {
InventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false); InventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(itemId); int[][] toSpawn = ItemInformationProvider.getInstance().getSummonMobs(itemId);
for (int[] toSpawnChild : toSpawn) { for (int[] toSpawnChild : toSpawn) {
if (Randomizer.nextInt(100) < toSpawnChild[1]) { if (Randomizer.nextInt(100) < toSpawnChild[1]) {
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition()); c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
@@ -36,7 +36,7 @@ import net.server.world.PartyCharacter;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import scripting.event.EventManager; import scripting.event.EventManager;
import scripting.npc.NPCScriptManager; import scripting.npc.NPCScriptManager;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleMarriage; import server.MapleMarriage;
import server.expeditions.Expedition; import server.expeditions.Expedition;
import server.expeditions.ExpeditionBossLog; import server.expeditions.ExpeditionBossLog;
@@ -581,7 +581,7 @@ public class AbstractPlayerInteraction {
evolved.setStance(0); evolved.setStance(0);
evolved.setSummoned(true); evolved.setSummoned(true);
evolved.setName(from.getName().compareTo(MapleItemInformationProvider.getInstance().getName(from.getItemId())) != 0 ? from.getName() : MapleItemInformationProvider.getInstance().getName(id)); evolved.setName(from.getName().compareTo(ItemInformationProvider.getInstance().getName(from.getItemId())) != 0 ? from.getName() : ItemInformationProvider.getInstance().getName(id));
evolved.setCloseness(from.getCloseness()); evolved.setCloseness(from.getCloseness());
evolved.setFullness(from.getFullness()); evolved.setFullness(from.getFullness());
evolved.setLevel(from.getLevel()); evolved.setLevel(from.getLevel());
@@ -592,7 +592,7 @@ public class AbstractPlayerInteraction {
//InventoryManipulator.addById(c, id, (short) 1, null, petId, expires == -1 ? -1 : System.currentTimeMillis() + expires); //InventoryManipulator.addById(c, id, (short) 1, null, petId, expires == -1 ? -1 : System.currentTimeMillis() + expires);
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (ItemConstants.getInventoryType(id).equals(InventoryType.EQUIP)) { if (ItemConstants.getInventoryType(id).equals(InventoryType.EQUIP)) {
item = ii.getEquipById(id); item = ii.getEquipById(id);
@@ -608,7 +608,7 @@ public class AbstractPlayerInteraction {
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) { if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1)); eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
} }
item = MapleItemInformationProvider.getInstance().scrollEquipWithId(item, 2049100, true, 2049100, c.getPlayer().isGM()); item = ItemInformationProvider.getInstance().scrollEquipWithId(item, 2049100, true, 2049100, c.getPlayer().isGM());
} }
} }
} else { } else {
@@ -904,12 +904,12 @@ public class AbstractPlayerInteraction {
} }
public void useItem(int id) { public void useItem(int id) {
MapleItemInformationProvider.getInstance().getItemEffect(id).applyTo(c.getPlayer()); ItemInformationProvider.getInstance().getItemEffect(id).applyTo(c.getPlayer());
c.sendPacket(PacketCreator.getItemMessage(id));//Useful shet :3 c.sendPacket(PacketCreator.getItemMessage(id));//Useful shet :3
} }
public void cancelItem(final int id) { public void cancelItem(final int id) {
getPlayer().cancelEffect(MapleItemInformationProvider.getInstance().getItemEffect(id), false, -1); getPlayer().cancelEffect(ItemInformationProvider.getInstance().getItemEffect(id), false, -1);
} }
public void teachSkill(int skillid, byte level, byte masterLevel, long expiration) { public void teachSkill(int skillid, byte level, byte masterLevel, long expiration) {
@@ -941,7 +941,7 @@ public class AbstractPlayerInteraction {
if (old != null) { if (old != null) {
InventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, old.getQuantity(), false, false); InventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, old.getQuantity(), false, false);
} }
final Item newItem = MapleItemInformationProvider.getInstance().getEquipById(itemid); final Item newItem = ItemInformationProvider.getInstance().getEquipById(itemid);
newItem.setPosition(slot); newItem.setPosition(slot);
c.getPlayer().getInventory(InventoryType.EQUIPPED).addItemFromDB(newItem); c.getPlayer().getInventory(InventoryType.EQUIPPED).addItemFromDB(newItem);
c.sendPacket(PacketCreator.modifyInventory(false, Collections.singletonList(new ModifyInventory(0, newItem)))); c.sendPacket(PacketCreator.modifyInventory(false, Collections.singletonList(new ModifyInventory(0, newItem))));
@@ -36,7 +36,7 @@ import net.server.world.Party;
import net.server.world.PartyCharacter; import net.server.world.PartyCharacter;
import scripting.AbstractPlayerInteraction; import scripting.AbstractPlayerInteraction;
import scripting.event.scheduler.EventScriptScheduler; import scripting.event.scheduler.EventScriptScheduler;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import server.ThreadManager; import server.ThreadManager;
import server.TimerManager; import server.TimerManager;
@@ -144,7 +144,7 @@ public class EventInstanceManager {
public void applyEventPlayersItemBuff(int itemId) { public void applyEventPlayersItemBuff(int itemId) {
List<Character> players = getPlayerList(); List<Character> players = getPlayerList();
MapleStatEffect mse = MapleItemInformationProvider.getInstance().getItemEffect(itemId); MapleStatEffect mse = ItemInformationProvider.getInstance().getItemEffect(itemId);
if(mse != null) { if(mse != null) {
for (Character player: players) { for (Character player: players) {
@@ -23,7 +23,7 @@ package scripting.item;
import client.Client; import client.Client;
import scripting.npc.NPCScriptManager; import scripting.npc.NPCScriptManager;
import server.MapleItemInformationProvider.ScriptedItem; import server.ItemInformationProvider.ScriptedItem;
public class ItemScriptManager { public class ItemScriptManager {
@@ -365,7 +365,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
} }
public MapleStatEffect getItemEffect(int itemId) { public MapleStatEffect getItemEffect(int itemId) {
return MapleItemInformationProvider.getInstance().getItemEffect(itemId); return ItemInformationProvider.getInstance().getItemEffect(itemId);
} }
public void resetStats() { public void resetStats() {
@@ -532,7 +532,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
} }
public boolean itemExists(int itemid) { public boolean itemExists(int itemid) {
return MapleItemInformationProvider.getInstance().getName(itemid) != null; return ItemInformationProvider.getInstance().getName(itemid) != null;
} }
public int getCosmeticItem(int itemid) { public int getCosmeticItem(int itemid) {
@@ -567,18 +567,18 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
} }
public Object[] getAvailableMasteryBooks() { public Object[] getAvailableMasteryBooks() {
return MapleItemInformationProvider.getInstance().usableMasteryBooks(this.getPlayer()).toArray(); return ItemInformationProvider.getInstance().usableMasteryBooks(this.getPlayer()).toArray();
} }
public Object[] getAvailableSkillBooks() { public Object[] getAvailableSkillBooks() {
List<Integer> ret = MapleItemInformationProvider.getInstance().usableSkillBooks(this.getPlayer()); List<Integer> ret = ItemInformationProvider.getInstance().usableSkillBooks(this.getPlayer());
ret.addAll(MapleSkillbookInformationProvider.getTeachableSkills(this.getPlayer())); ret.addAll(MapleSkillbookInformationProvider.getTeachableSkills(this.getPlayer()));
return ret.toArray(); return ret.toArray();
} }
public Object[] getNamesWhoDropsItem(Integer itemId) { public Object[] getNamesWhoDropsItem(Integer itemId) {
return MapleItemInformationProvider.getInstance().getWhoDrops(itemId).toArray(); return ItemInformationProvider.getInstance().getWhoDrops(itemId).toArray();
} }
public String getSkillBookInfo(int itemid) { public String getSkillBookInfo(int itemid) {
@@ -25,7 +25,7 @@ import client.Character;
import client.Client; import client.Client;
import net.server.world.PartyCharacter; import net.server.world.PartyCharacter;
import scripting.AbstractScriptManager; import scripting.AbstractScriptManager;
import server.MapleItemInformationProvider.ScriptedItem; import server.ItemInformationProvider.ScriptedItem;
import tools.FilePrinter; import tools.FilePrinter;
import tools.PacketCreator; import tools.PacketCreator;
@@ -23,7 +23,7 @@ package scripting.quest;
import client.Client; import client.Client;
import scripting.npc.NPCConversationManager; import scripting.npc.NPCConversationManager;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.quest.Quest; import server.quest.Quest;
import server.quest.actions.ExpAction; import server.quest.actions.ExpAction;
import server.quest.actions.MesoAction; import server.quest.actions.MesoAction;
@@ -85,6 +85,6 @@ public class QuestActionManager extends NPCConversationManager {
public String getMedalName() { // usable only for medal quests (id 299XX) public String getMedalName() { // usable only for medal quests (id 299XX)
Quest q = Quest.getInstance(quest); Quest q = Quest.getInstance(quest);
return MapleItemInformationProvider.getInstance().getName(q.getMedalRequirement()); return ItemInformationProvider.getInstance().getName(q.getMedalRequirement());
} }
} }
@@ -29,7 +29,7 @@ import client.inventory.Item;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import scripting.AbstractPlayerInteraction; import scripting.AbstractPlayerInteraction;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.TimerManager; import server.TimerManager;
import server.life.LifeFactory; import server.life.LifeFactory;
import server.life.Monster; import server.life.Monster;
@@ -72,7 +72,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
} }
private static void sortDropEntries(List<ReactorDropEntry> from, List<ReactorDropEntry> item, List<ReactorDropEntry> visibleQuest, List<ReactorDropEntry> otherQuest, Character chr) { private static void sortDropEntries(List<ReactorDropEntry> from, List<ReactorDropEntry> item, List<ReactorDropEntry> visibleQuest, List<ReactorDropEntry> otherQuest, Character chr) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for(ReactorDropEntry mde : from) { for(ReactorDropEntry mde : from) {
if(!ii.isQuestItem(mde.itemId)) { if(!ii.isQuestItem(mde.itemId)) {
@@ -160,7 +160,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
final Point dropPos = new Point(posX, posY); final Point dropPos = new Point(posX, posY);
if(!delayed) { if(!delayed) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
byte p = 1; byte p = 1;
for (ReactorDropEntry d : items) { for (ReactorDropEntry d : items) {
@@ -209,7 +209,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
if (ItemConstants.getInventoryType(d.itemId) != InventoryType.EQUIP) { if (ItemConstants.getInventoryType(d.itemId) != InventoryType.EQUIP) {
drop = new Item(d.itemId, (short) 0, (short) 1); drop = new Item(d.itemId, (short) 0, (short) 1);
} else { } else {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId)); drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId));
} }
+1 -1
View File
@@ -91,7 +91,7 @@ public class CashShop {
} }
if (ItemConstants.getInventoryType(itemId).equals(InventoryType.EQUIP)) { if (ItemConstants.getInventoryType(itemId).equals(InventoryType.EQUIP)) {
item = MapleItemInformationProvider.getInstance().getEquipById(itemId); item = ItemInformationProvider.getInstance().getEquipById(itemId);
} else { } else {
item = new Item(itemId, (byte) 0, count, petid); item = new Item(itemId, (byte) 0, count, petid);
} }
@@ -47,14 +47,12 @@ import java.util.*;
import java.util.Map.Entry; import java.util.Map.Entry;
/** /**
*
* @author Matze * @author Matze
*
*/ */
public class MapleItemInformationProvider { public class ItemInformationProvider {
private final static MapleItemInformationProvider instance = new MapleItemInformationProvider(); private final static ItemInformationProvider instance = new ItemInformationProvider();
public static MapleItemInformationProvider getInstance() { public static ItemInformationProvider getInstance() {
return instance; return instance;
} }
@@ -115,7 +113,7 @@ public class MapleItemInformationProvider {
protected Map<Integer, Pair<Integer, Set<Integer>>> cashPetFoodCache = new HashMap<>(); protected Map<Integer, Pair<Integer, Set<Integer>>> cashPetFoodCache = new HashMap<>();
protected Map<Integer, QuestConsItem> questItemConsCache = new HashMap<>(); protected Map<Integer, QuestConsItem> questItemConsCache = new HashMap<>();
private MapleItemInformationProvider() { private ItemInformationProvider() {
loadCardIdData(); loadCardIdData();
itemData = DataProviderFactory.getDataProvider(WZFiles.ITEM); itemData = DataProviderFactory.getDataProvider(WZFiles.ITEM);
equipData = DataProviderFactory.getDataProvider(WZFiles.CHARACTER); equipData = DataProviderFactory.getDataProvider(WZFiles.CHARACTER);
@@ -270,7 +268,7 @@ public class MapleItemInformationProvider {
private Data getItemData(int itemId) { private Data getItemData(int itemId) {
Data ret = null; Data ret = null;
String idStr = "0" + String.valueOf(itemId); String idStr = "0" + itemId;
DataDirectoryEntry root = itemData.getRoot(); DataDirectoryEntry root = itemData.getRoot();
for (DataDirectoryEntry topDir : root.getSubdirectories()) { for (DataDirectoryEntry topDir : root.getSubdirectories()) {
for (DataFileEntry iFile : topDir.getFiles()) { for (DataFileEntry iFile : topDir.getFiles()) {
@@ -306,8 +304,7 @@ public class MapleItemInformationProvider {
list.add(i); list.add(i);
} }
} }
} } else {
else {
for (int i = minId; i <= maxId; i++) { for (int i = minId; i <= maxId; i++) {
if (getItemData(i) != null) { if (getItemData(i) != null) {
list.add(i); list.add(i);
@@ -381,7 +378,9 @@ public class MapleItemInformationProvider {
private static double getRoundedUnitPrice(double unitPrice, int max) { private static double getRoundedUnitPrice(double unitPrice, int max) {
double intPart = Math.floor(unitPrice); double intPart = Math.floor(unitPrice);
double fractPart = unitPrice - intPart; double fractPart = unitPrice - intPart;
if(fractPart == 0.0) return intPart; if (fractPart == 0.0) {
return intPart;
}
double fractMask = 0.0; double fractMask = 0.0;
double lastFract, curFract = 1.0; double lastFract, curFract = 1.0;
@@ -433,7 +432,7 @@ public class MapleItemInformationProvider {
try { try {
fEntry = getRoundedUnitPrice(DataTool.getDouble(pData), 5); fEntry = getRoundedUnitPrice(DataTool.getDouble(pData), 5);
} catch (Exception e) { } catch (Exception e) {
fEntry = (double) DataTool.getInt(pData); fEntry = DataTool.getInt(pData);
} }
} }
@@ -621,62 +620,104 @@ public class MapleItemInformationProvider {
if (!option) { if (!option) {
if (nEquip.getStr() > 0) { if (nEquip.getStr() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range)))); nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
} else {
nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getDex() > 0) { if (nEquip.getDex() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range)))); nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
} else {
nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getInt() > 0) { if (nEquip.getInt() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range)))); nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
} else {
nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getLuk() > 0) { if (nEquip.getLuk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range)))); nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
} else {
nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getAcc() > 0) { if (nEquip.getAcc() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range)))); nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
} else {
nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getAvoid() > 0) { if (nEquip.getAvoid() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range)))); nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
} else {
nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
}
} }
} else { } else {
if (nEquip.getWatk() > 0) { if (nEquip.getWatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range)))); nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
} else {
nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getWdef() > 0) { if (nEquip.getWdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range)))); nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
} else {
nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMatk() > 0) { if (nEquip.getMatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range)))); nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
} else {
nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMdef() > 0) { if (nEquip.getMdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range)))); nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
} else {
nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getSpeed() > 0) { if (nEquip.getSpeed() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range)))); nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
} else {
nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getJump() > 0) { if (nEquip.getJump() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range)))); nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
} else {
nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getHp() > 0) { if (nEquip.getHp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range)))); nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
} else {
nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMp() > 0) { if (nEquip.getMp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range)))); nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
} else {
nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
}
} }
} }
} }
@@ -720,99 +761,141 @@ public class MapleItemInformationProvider {
for (int i = 0; i < YamlConfig.config.server.CHSCROLL_STAT_RATE; i++) { for (int i = 0; i < YamlConfig.config.server.CHSCROLL_STAT_RATE; i++) {
if (nEquip.getStr() > 0) { if (nEquip.getStr() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curStr + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getStr() + chscrollRandomizedStat(range); temp = curStr + chscrollRandomizedStat(range);
} else {
temp = nEquip.getStr() + chscrollRandomizedStat(range);
}
curStr = getMaximumShortMaxIfOverflow(temp, curStr); curStr = getMaximumShortMaxIfOverflow(temp, curStr);
} }
if (nEquip.getDex() > 0) { if (nEquip.getDex() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curDex + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getDex() + chscrollRandomizedStat(range); temp = curDex + chscrollRandomizedStat(range);
} else {
temp = nEquip.getDex() + chscrollRandomizedStat(range);
}
curDex = getMaximumShortMaxIfOverflow(temp, curDex); curDex = getMaximumShortMaxIfOverflow(temp, curDex);
} }
if (nEquip.getInt() > 0) { if (nEquip.getInt() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curInt + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getInt() + chscrollRandomizedStat(range); temp = curInt + chscrollRandomizedStat(range);
} else {
temp = nEquip.getInt() + chscrollRandomizedStat(range);
}
curInt = getMaximumShortMaxIfOverflow(temp, curInt); curInt = getMaximumShortMaxIfOverflow(temp, curInt);
} }
if (nEquip.getLuk() > 0) { if (nEquip.getLuk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curLuk + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getLuk() + chscrollRandomizedStat(range); temp = curLuk + chscrollRandomizedStat(range);
} else {
temp = nEquip.getLuk() + chscrollRandomizedStat(range);
}
curLuk = getMaximumShortMaxIfOverflow(temp, curLuk); curLuk = getMaximumShortMaxIfOverflow(temp, curLuk);
} }
if (nEquip.getWatk() > 0) { if (nEquip.getWatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curWatk + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getWatk() + chscrollRandomizedStat(range); temp = curWatk + chscrollRandomizedStat(range);
} else {
temp = nEquip.getWatk() + chscrollRandomizedStat(range);
}
curWatk = getMaximumShortMaxIfOverflow(temp, curWatk); curWatk = getMaximumShortMaxIfOverflow(temp, curWatk);
} }
if (nEquip.getWdef() > 0) { if (nEquip.getWdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curWdef + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getWdef() + chscrollRandomizedStat(range); temp = curWdef + chscrollRandomizedStat(range);
} else {
temp = nEquip.getWdef() + chscrollRandomizedStat(range);
}
curWdef = getMaximumShortMaxIfOverflow(temp, curWdef); curWdef = getMaximumShortMaxIfOverflow(temp, curWdef);
} }
if (nEquip.getMatk() > 0) { if (nEquip.getMatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMatk + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getMatk() + chscrollRandomizedStat(range); temp = curMatk + chscrollRandomizedStat(range);
} else {
temp = nEquip.getMatk() + chscrollRandomizedStat(range);
}
curMatk = getMaximumShortMaxIfOverflow(temp, curMatk); curMatk = getMaximumShortMaxIfOverflow(temp, curMatk);
} }
if (nEquip.getMdef() > 0) { if (nEquip.getMdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMdef + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getMdef() + chscrollRandomizedStat(range); temp = curMdef + chscrollRandomizedStat(range);
} else {
temp = nEquip.getMdef() + chscrollRandomizedStat(range);
}
curMdef = getMaximumShortMaxIfOverflow(temp, curMdef); curMdef = getMaximumShortMaxIfOverflow(temp, curMdef);
} }
if (nEquip.getAcc() > 0) { if (nEquip.getAcc() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curAcc + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getAcc() + chscrollRandomizedStat(range); temp = curAcc + chscrollRandomizedStat(range);
} else {
temp = nEquip.getAcc() + chscrollRandomizedStat(range);
}
curAcc = getMaximumShortMaxIfOverflow(temp, curAcc); curAcc = getMaximumShortMaxIfOverflow(temp, curAcc);
} }
if (nEquip.getAvoid() > 0) { if (nEquip.getAvoid() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curAvoid + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getAvoid() + chscrollRandomizedStat(range); temp = curAvoid + chscrollRandomizedStat(range);
} else {
temp = nEquip.getAvoid() + chscrollRandomizedStat(range);
}
curAvoid = getMaximumShortMaxIfOverflow(temp, curAvoid); curAvoid = getMaximumShortMaxIfOverflow(temp, curAvoid);
} }
if (nEquip.getSpeed() > 0) { if (nEquip.getSpeed() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curSpeed + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getSpeed() + chscrollRandomizedStat(range); temp = curSpeed + chscrollRandomizedStat(range);
} else {
temp = nEquip.getSpeed() + chscrollRandomizedStat(range);
}
curSpeed = getMaximumShortMaxIfOverflow(temp, curSpeed); curSpeed = getMaximumShortMaxIfOverflow(temp, curSpeed);
} }
if (nEquip.getJump() > 0) { if (nEquip.getJump() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curJump + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getJump() + chscrollRandomizedStat(range); temp = curJump + chscrollRandomizedStat(range);
} else {
temp = nEquip.getJump() + chscrollRandomizedStat(range);
}
curJump = getMaximumShortMaxIfOverflow(temp, curJump); curJump = getMaximumShortMaxIfOverflow(temp, curJump);
} }
if (nEquip.getHp() > 0) { if (nEquip.getHp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curHp + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getHp() + chscrollRandomizedStat(range); temp = curHp + chscrollRandomizedStat(range);
} else {
temp = nEquip.getHp() + chscrollRandomizedStat(range);
}
curHp = getMaximumShortMaxIfOverflow(temp, curHp); curHp = getMaximumShortMaxIfOverflow(temp, curHp);
} }
if (nEquip.getMp() > 0) { if (nEquip.getMp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMp + chscrollRandomizedStat(range); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else temp = nEquip.getMp() + chscrollRandomizedStat(range); temp = curMp + chscrollRandomizedStat(range);
} else {
temp = nEquip.getMp() + chscrollRandomizedStat(range);
}
curMp = getMaximumShortMaxIfOverflow(temp, curMp); curMp = getMaximumShortMaxIfOverflow(temp, curMp);
} }
@@ -832,64 +915,104 @@ public class MapleItemInformationProvider {
nEquip.setJump((short) Math.max(0, curJump)); nEquip.setJump((short) Math.max(0, curJump));
nEquip.setHp((short) Math.max(0, curHp)); nEquip.setHp((short) Math.max(0, curHp));
nEquip.setMp((short) Math.max(0, curMp)); nEquip.setMp((short) Math.max(0, curMp));
} } else {
else {
if (nEquip.getStr() > 0) { if (nEquip.getStr() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range)))); nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
} else {
nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getDex() > 0) { if (nEquip.getDex() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range)))); nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
} else {
nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getInt() > 0) { if (nEquip.getInt() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range)))); nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
} else {
nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getLuk() > 0) { if (nEquip.getLuk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range)))); nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
} else {
nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getWatk() > 0) { if (nEquip.getWatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range)))); nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
} else {
nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getWdef() > 0) { if (nEquip.getWdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range)))); nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
} else {
nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMatk() > 0) { if (nEquip.getMatk() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range)))); nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
} else {
nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMdef() > 0) { if (nEquip.getMdef() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range)))); nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
} else {
nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getAcc() > 0) { if (nEquip.getAcc() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range)))); nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
} else {
nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getAvoid() > 0) { if (nEquip.getAvoid() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range)))); nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
} else {
nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getSpeed() > 0) { if (nEquip.getSpeed() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range)))); nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
} else {
nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getJump() > 0) { if (nEquip.getJump() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range)))); nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
} else {
nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getHp() > 0) { if (nEquip.getHp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range)))); nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
} else {
nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
}
} }
if (nEquip.getMp() > 0) { if (nEquip.getMp() > 0) {
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range)))); if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range)))); nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
} else {
nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
}
} }
} }
} }
@@ -1279,7 +1402,9 @@ public class MapleItemInformationProvider {
Map<String, Integer> ret = skillUpgradeCache.get(itemId); Map<String, Integer> ret = skillUpgradeCache.get(itemId);
Data retSkill = skillUpgradeInfoCache.get(itemId); Data retSkill = skillUpgradeInfoCache.get(itemId);
if(ret != null) return new Pair<>(ret, retSkill); if (ret != null) {
return new Pair<>(ret, retSkill);
}
retSkill = null; retSkill = null;
ret = new LinkedHashMap<>(); ret = new LinkedHashMap<>();
@@ -1307,7 +1432,9 @@ public class MapleItemInformationProvider {
public Map<String, Integer> getSkillStats(int itemId, double playerJob) { public Map<String, Integer> getSkillStats(int itemId, double playerJob) {
Pair<Map<String, Integer>, Data> retData = getSkillStatsInternal(itemId); Pair<Map<String, Integer>, Data> retData = getSkillStatsInternal(itemId);
if(retData.getLeft().isEmpty()) return null; if (retData.getLeft().isEmpty()) {
return null;
}
Map<String, Integer> ret = new LinkedHashMap<>(retData.getLeft()); Map<String, Integer> ret = new LinkedHashMap<>(retData.getLeft());
Data skill = retData.getRight(); Data skill = retData.getRight();
@@ -1553,8 +1680,12 @@ public class MapleItemInformationProvider {
public boolean isCash(int itemId) { public boolean isCash(int itemId) {
int itemType = itemId / 1000000; int itemType = itemId / 1000000;
if (itemType == 5) return true; if (itemType == 5) {
if (itemType != 1) return false; return true;
}
if (itemType != 1) {
return false;
}
Map<String, Integer> eqpStats = getEquipStats(itemId); Map<String, Integer> eqpStats = getEquipStats(itemId);
return eqpStats != null && eqpStats.get("cash") == 1; return eqpStats != null && eqpStats.get("cash") == 1;
@@ -1574,11 +1705,7 @@ public class MapleItemInformationProvider {
return true; return true;
} }
if (YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_PET && ItemConstants.isPet(itemId)) { return YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_PET && ItemConstants.isPet(itemId);
return true;
}
return false;
} }
public Collection<Item> canWearEquipment(Character chr, Collection<Item> items) { public Collection<Item> canWearEquipment(Character chr, Collection<Item> items) {
@@ -1668,7 +1795,7 @@ public class MapleItemInformationProvider {
String islot = getEquipmentSlot(id); String islot = getEquipmentSlot(id);
if (!EquipSlot.getFromTextSlot(islot).isAllowed(dst, isCash(id))) { if (!EquipSlot.getFromTextSlot(islot).isAllowed(dst, isCash(id))) {
equip.wear(false); equip.wear(false);
String itemName = MapleItemInformationProvider.getInstance().getName(equip.getItemId()); String itemName = ItemInformationProvider.getInstance().getName(equip.getItemId());
Server.getInstance().broadcastGMMessage(chr.getWorld(), PacketCreator.sendYellowTip("[Warning]: " + chr.getName() + " tried to equip " + itemName + " into slot " + dst + ".")); Server.getInstance().broadcastGMMessage(chr.getWorld(), PacketCreator.sendYellowTip("[Warning]: " + chr.getName() + " tried to equip " + itemName + " into slot " + dst + "."));
AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to forcibly equip an item."); AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to forcibly equip an item.");
FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to equip " + itemName + " into " + dst + " slot."); FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to equip " + itemName + " into " + dst + " slot.");
@@ -1729,7 +1856,7 @@ public class MapleItemInformationProvider {
public ArrayList<Pair<Integer, String>> getItemDataByName(String name) { public ArrayList<Pair<Integer, String>> getItemDataByName(String name) {
ArrayList<Pair<Integer, String>> ret = new ArrayList<>(); ArrayList<Pair<Integer, String>> ret = new ArrayList<>();
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) { for (Pair<Integer, String> itemPair : ItemInformationProvider.getInstance().getAllItems()) {
if (itemPair.getRight().toLowerCase().contains(name.toLowerCase())) { if (itemPair.getRight().toLowerCase().contains(name.toLowerCase())) {
ret.add(itemPair); ret.add(itemPair);
} }
@@ -1740,7 +1867,9 @@ public class MapleItemInformationProvider {
private Data getEquipLevelInfo(int itemId) { private Data getEquipLevelInfo(int itemId) {
Data equipLevelData = equipLevelInfoCache.get(itemId); Data equipLevelData = equipLevelInfoCache.get(itemId);
if (equipLevelData == null) { if (equipLevelData == null) {
if (equipLevelInfoCache.containsKey(itemId)) return null; if (equipLevelInfoCache.containsKey(itemId)) {
return null;
}
Data iData = getItemData(itemId); Data iData = getItemData(itemId);
if (iData != null) { if (iData != null) {
@@ -2074,7 +2203,9 @@ public class MapleItemInformationProvider {
private boolean canUseSkillBook(Character player, Integer skillBookId) { private boolean canUseSkillBook(Character player, Integer skillBookId) {
Map<String, Integer> skilldata = getSkillStats(skillBookId, player.getJob().getId()); Map<String, Integer> skilldata = getSkillStats(skillBookId, player.getJob().getId());
if(skilldata == null || skilldata.get("skillid") == 0) return false; if (skilldata == null || skilldata.get("skillid") == 0) {
return false;
}
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid")); Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel"))); return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")));
@@ -2135,9 +2266,9 @@ public class MapleItemInformationProvider {
public class ScriptedItem { public class ScriptedItem {
private boolean runOnPickup; private final boolean runOnPickup;
private int npc; private final int npc;
private String script; private final String script;
public ScriptedItem(int npc, String script, boolean rop) { public ScriptedItem(int npc, String script, boolean rop) {
this.npc = npc; this.npc = npc;
+1 -1
View File
@@ -35,7 +35,7 @@ import java.util.Map.Entry;
* @author Jay Estrella, Ronan * @author Jay Estrella, Ronan
*/ */
public class MakerItemFactory { public class MakerItemFactory {
private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); private static ItemInformationProvider ii = ItemInformationProvider.getInstance();
public static MakerItemCreateEntry getItemCreateEntry(int toCreate, int stimulantid, Map<Integer, Short> reagentids) { public static MakerItemCreateEntry getItemCreateEntry(int toCreate, int stimulantid, Map<Integer, Short> reagentids) {
MakerItemCreateEntry makerEntry = ii.getMakerItemEntry(toCreate); MakerItemCreateEntry makerEntry = ii.getMakerItemEntry(toCreate);
+3 -3
View File
@@ -89,7 +89,7 @@ public class MapleShop {
} else { } else {
return; return;
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
if (item.getPrice() > 0) { if (item.getPrice() > 0) {
int amount = (int)Math.min((float) item.getPrice() * quantity, Integer.MAX_VALUE); int amount = (int)Math.min((float) item.getPrice() * quantity, Integer.MAX_VALUE);
if (c.getPlayer().getMeso() >= amount) { if (c.getPlayer().getMeso() >= amount) {
@@ -198,7 +198,7 @@ public class MapleShop {
quantity = getSellingQuantity(item, quantity); quantity = getSellingQuantity(item, quantity);
InventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false); InventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
int recvMesos = ii.getPrice(item.getItemId(), quantity); int recvMesos = ii.getPrice(item.getItemId(), quantity);
if (recvMesos > 0) { if (recvMesos > 0) {
c.getPlayer().gainMeso(recvMesos, false); c.getPlayer().gainMeso(recvMesos, false);
@@ -210,7 +210,7 @@ public class MapleShop {
} }
public void recharge(Client c, short slot) { public void recharge(Client c, short slot) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Item item = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); Item item = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
if (item == null || !ItemConstants.isRechargeable(item.getItemId())) { if (item == null || !ItemConstants.isRechargeable(item.getItemId())) {
return; return;
@@ -36,7 +36,7 @@ class PairedQuicksort {
private int i = 0; private int i = 0;
private int j = 0; private int j = 0;
private final ArrayList<Integer> intersect; private final ArrayList<Integer> intersect;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) { private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
Item x, w; Item x, w;
@@ -224,7 +224,7 @@ public class MapleStorageInventory {
source.setPosition(dSlot); source.setPosition(dSlot);
inventory.put(dSlot, source); inventory.put(dSlot, source);
inventory.remove(sSlot); inventory.remove(sSlot);
} else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && !MapleItemInformationProvider.getInstance().isPickupRestricted(source.getItemId()) && isSameOwner(source, target)) { } else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && !ItemInformationProvider.getInstance().isPickupRestricted(source.getItemId()) && isSameOwner(source, target)) {
if (isEquipOrCash(source)) { if (isEquipOrCash(source)) {
swap(target, source); swap(target, source);
} else if (source.getQuantity() + target.getQuantity() > slotMax) { } else if (source.getQuantity() + target.getQuantity() > slotMax) {
@@ -252,7 +252,7 @@ public class MapleStorageInventory {
if (source == null) { if (source == null) {
return; return;
} }
short slotMax = MapleItemInformationProvider.getInstance().getSlotMax(c, source.getItemId()); short slotMax = ItemInformationProvider.getInstance().getSlotMax(c, source.getItemId());
this.move(src, dst, slotMax); this.move(src, dst, slotMax);
} }
@@ -296,7 +296,7 @@ public class MapleStorageInventory {
} }
public void mergeItems() { public void mergeItems() {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Item srcItem, dstItem; Item srcItem, dstItem;
for(short dst = 1; dst <= this.getSlotLimit(); dst++) { for(short dst = 1; dst <= this.getSlotLimit(); dst++) {
@@ -21,7 +21,7 @@
*/ */
package server.gachapon; package server.gachapon;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.Randomizer; import tools.Randomizer;
/** /**
@@ -100,7 +100,7 @@ public class MapleGachapon {
} }
public static String[] getLootInfo() { public static String[] getLootInfo() {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
String[] strList = new String[values.length + 1]; String[] strList = new String[values.length + 1];
@@ -27,7 +27,7 @@ import provider.DataProvider;
import provider.DataProviderFactory; import provider.DataProviderFactory;
import provider.DataTool; import provider.DataTool;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.Pair; import tools.Pair;
import tools.Randomizer; import tools.Randomizer;
@@ -176,7 +176,7 @@ public class MonsterInformationProvider {
return dropsChancePool.get(monsterId); return dropsChancePool.get(monsterId);
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
List<MonsterDropEntry> dropList = retrieveDrop(monsterId); List<MonsterDropEntry> dropList = retrieveDrop(monsterId);
List<Integer> ret = new ArrayList<>(); List<Integer> ret = new ArrayList<>();
+1 -1
View File
@@ -40,7 +40,7 @@ public class LootManager {
qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId); qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId);
} }
//boolean restricted = MapleItemInformationProvider.getInstance().isPickupRestricted(dropEntry.itemId); //boolean restricted = ItemInformationProvider.getInstance().isPickupRestricted(dropEntry.itemId);
for (int i = 0; i < players.size(); i++) { for (int i = 0; i < players.size(); i++) {
LootInventory chrInv = playersInv.get(i); LootInventory chrInv = playersInv.get(i);
+2 -2
View File
@@ -35,7 +35,7 @@ import net.packet.Packet;
import net.server.Server; import net.server.Server;
import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleTrade; import server.MapleTrade;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.PacketCreator; import tools.PacketCreator;
@@ -342,7 +342,7 @@ public class HiredMerchant extends AbstractMapObject {
Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId); Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
if (player != null && player.isLoggedinWorld()) { if (player != null && player.isLoggedinWorld()) {
player.dropMessage(6, "[Hired Merchant] Item '" + MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "'" + qtyStr + " has been sold for " + mesos + " mesos. (" + inStore + " left)"); player.dropMessage(6, "[Hired Merchant] Item '" + ItemInformationProvider.getInstance().getName(item.getItemId()) + "'" + qtyStr + " has been sold for " + mesos + " mesos. (" + inStore + " left)");
} }
} }
+6 -6
View File
@@ -53,7 +53,7 @@ import net.server.world.Party;
import net.server.world.World; import net.server.world.World;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import scripting.map.MapScriptManager; import scripting.map.MapScriptManager;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleStatEffect; import server.MapleStatEffect;
import server.TimerManager; import server.TimerManager;
import server.events.gm.*; import server.events.gm.*;
@@ -610,7 +610,7 @@ public class MapleMap {
} }
private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, Character chr) { private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, Character chr) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (MonsterDropEntry mde : from) { for (MonsterDropEntry mde : from) {
if (!ii.isQuestItem(mde.itemId)) { if (!ii.isQuestItem(mde.itemId)) {
@@ -633,7 +633,7 @@ public class MapleMap {
Collections.shuffle(dropEntry); Collections.shuffle(dropEntry);
Item idrop; Item idrop;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (final MonsterDropEntry de : dropEntry) { for (final MonsterDropEntry de : dropEntry) {
float cardRate = chr.getCardRate(de.itemId); float cardRate = chr.getCardRate(de.itemId);
@@ -678,7 +678,7 @@ public class MapleMap {
Collections.shuffle(globalEntry); Collections.shuffle(globalEntry);
Item idrop; Item idrop;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (final MonsterGlobalDropEntry de : globalEntry) { for (final MonsterGlobalDropEntry de : globalEntry) {
if (Randomizer.nextInt(999999) < de.chance) { if (Randomizer.nextInt(999999) < de.chance) {
@@ -1397,7 +1397,7 @@ public class MapleMap {
int buff = monster.getBuffToGive(); int buff = monster.getBuffToGive();
if (buff > -1) { if (buff > -1) {
MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance(); ItemInformationProvider mii = ItemInformationProvider.getInstance();
for (MapObject mmo : this.getPlayers()) { for (MapObject mmo : this.getPlayers()) {
Character character = (Character) mmo; Character character = (Character) mmo;
if (character.isAlive()) { if (character.isAlive()) {
@@ -2177,7 +2177,7 @@ public class MapleMap {
Collections.shuffle(list); Collections.shuffle(list);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
Random rnd = new Random(); Random rnd = new Random();
final Point dropPos = new Point(pos); final Point dropPos = new Point(pos);
+5 -5
View File
@@ -24,7 +24,7 @@ package server.partyquest;
import client.Character; import client.Character;
import net.server.world.Party; import net.server.world.Party;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.TimerManager; import server.TimerManager;
import tools.PacketCreator; import tools.PacketCreator;
@@ -168,14 +168,14 @@ public class Pyramid extends PartyQuest {
int total = (kill + cool); int total = (kill + cool);
if (buffcount == 0 && total >= 250) { if (buffcount == 0 && total >= 250) {
buffcount++; buffcount++;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Character chr : getParticipants()) for (Character chr : getParticipants())
ii.getItemEffect(2022585).applyTo(chr); ii.getItemEffect(2022585).applyTo(chr);
} else if (buffcount == 1 && total >= 500) { } else if (buffcount == 1 && total >= 500) {
buffcount++; buffcount++;
skill++; skill++;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Character chr : getParticipants()) { for (Character chr : getParticipants()) {
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill)); chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
ii.getItemEffect(2022586).applyTo(chr); ii.getItemEffect(2022586).applyTo(chr);
@@ -183,7 +183,7 @@ public class Pyramid extends PartyQuest {
} else if (buffcount == 2 && total >= 1000) { } else if (buffcount == 2 && total >= 1000) {
buffcount++; buffcount++;
skill++; skill++;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Character chr : getParticipants()) { for (Character chr : getParticipants()) {
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill)); chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
ii.getItemEffect(2022587).applyTo(chr); ii.getItemEffect(2022587).applyTo(chr);
@@ -194,7 +194,7 @@ public class Pyramid extends PartyQuest {
} else if (buffcount == 4 && total >= 2000) { } else if (buffcount == 4 && total >= 2000) {
buffcount++; buffcount++;
skill++; skill++;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (Character chr : getParticipants()) { for (Character chr : getParticipants()) {
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill)); chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
ii.getItemEffect(2022588).applyTo(chr); ii.getItemEffect(2022588).applyTo(chr);
@@ -24,7 +24,7 @@ package server.quest.actions;
import client.Character; import client.Character;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.quest.Quest; import server.quest.Quest;
import server.quest.QuestActionType; import server.quest.QuestActionType;
@@ -52,6 +52,6 @@ public class BuffAction extends MapleQuestAction {
@Override @Override
public void run(Character chr, Integer extSelection) { public void run(Character chr, Integer extSelection) {
MapleItemInformationProvider.getInstance().getItemEffect(itemEffect).applyTo(chr); ItemInformationProvider.getInstance().getItemEffect(itemEffect).applyTo(chr);
} }
} }
@@ -29,7 +29,7 @@ import client.inventory.manipulator.InventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.quest.Quest; import server.quest.Quest;
import server.quest.QuestActionType; import server.quest.QuestActionType;
import tools.FilePrinter; import tools.FilePrinter;
@@ -241,7 +241,7 @@ public class ItemAction extends MapleQuestAction {
private void announceInventoryLimit(List<Integer> itemids, Character chr) { private void announceInventoryLimit(List<Integer> itemids, Character chr) {
for (Integer id : itemids) { for (Integer id : itemids) {
if (MapleItemInformationProvider.getInstance().isPickupRestricted(id) && chr.haveItemWithId(id, true)) { if (ItemInformationProvider.getInstance().isPickupRestricted(id) && chr.haveItemWithId(id, true)) {
chr.dropMessage(1, "Please check if you already have a similar one-of-a-kind item in your inventory."); chr.dropMessage(1, "Please check if you already have a similar one-of-a-kind item in your inventory.");
return; return;
} }
@@ -293,7 +293,7 @@ public class ItemAction extends MapleQuestAction {
} }
public boolean restoreLostItem(Character chr, int itemid) { public boolean restoreLostItem(Character chr, int itemid) {
if (!MapleItemInformationProvider.getInstance().isQuestItem(itemid)) { if (!ItemInformationProvider.getInstance().isQuestItem(itemid)) {
return false; return false;
} }
@@ -27,7 +27,7 @@ import client.inventory.Item;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import provider.Data; import provider.Data;
import provider.DataTool; import provider.DataTool;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.quest.Quest; import server.quest.Quest;
import server.quest.QuestRequirementType; import server.quest.QuestRequirementType;
@@ -60,7 +60,7 @@ public class ItemRequirement extends MapleQuestRequirement {
@Override @Override
public boolean check(Character chr, Integer npcid) { public boolean check(Character chr, Integer npcid) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
for(Integer itemId : items.keySet()) { for(Integer itemId : items.keySet()) {
int countNeeded = items.get(itemId); int countNeeded = items.get(itemId);
int count = 0; int count = 0;
+4 -4
View File
@@ -4,7 +4,7 @@ import client.Character;
import client.Client; import client.Client;
import client.inventory.Item; import client.inventory.Item;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import server.MapleTrade; import server.MapleTrade;
import server.expeditions.Expedition; import server.expeditions.Expedition;
@@ -21,13 +21,13 @@ public class LogHelper {
//Trade 1 to trade 2 //Trade 1 to trade 2
log += trade1.getExchangeMesos() + " mesos from " + name1 + " to " + name2 + " \r\n"; log += trade1.getExchangeMesos() + " mesos from " + name1 + " to " + name2 + " \r\n";
for (Item item : trade1.getItems()){ for (Item item : trade1.getItems()){
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")"; String itemName = ItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n"; log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n";
} }
//Trade 2 to trade 1 //Trade 2 to trade 1
log += trade2.getExchangeMesos() + " mesos from " + name2 + " to " + name1 + " \r\n"; log += trade2.getExchangeMesos() + " mesos from " + name2 + " to " + name1 + " \r\n";
for (Item item : trade2.getItems()){ for (Item item : trade2.getItems()){
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")"; String itemName = ItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n"; log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n";
} }
log += "\r\n\r\n"; log += "\r\n\r\n";
@@ -65,7 +65,7 @@ public class LogHelper {
} }
public static void logGacha(Character player, int itemid, String map) { public static void logGacha(Character player, int itemid, String map) {
String itemName = MapleItemInformationProvider.getInstance().getName(itemid); String itemName = ItemInformationProvider.getInstance().getName(itemid);
String timeStamp = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(new Date()); String timeStamp = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(new Date());
String log = player.getName() + " got a " + itemName + "(" + itemid + ") from the " + map + " gachapon. - " + timeStamp; String log = player.getName() + " got a " + itemName + "(" + itemid + ") from the " + map + " gachapon. - " + timeStamp;
FilePrinter.print(FilePrinter.LOG_GACHAPON, log); FilePrinter.print(FilePrinter.LOG_GACHAPON, log);
+5 -5
View File
@@ -248,7 +248,7 @@ public class PacketCreator {
private static void addCharEquips(final OutPacket p, Character chr) { private static void addCharEquips(final OutPacket p, Character chr) {
Inventory equip = chr.getInventory(InventoryType.EQUIPPED); Inventory equip = chr.getInventory(InventoryType.EQUIPPED);
Collection<Item> ii = MapleItemInformationProvider.getInstance().canWearEquipment(chr, equip.list()); Collection<Item> ii = ItemInformationProvider.getInstance().canWearEquipment(chr, equip.list());
Map<Short, Integer> myEquip = new LinkedHashMap<>(); Map<Short, Integer> myEquip = new LinkedHashMap<>();
Map<Short, Integer> maskedEquip = new LinkedHashMap<>(); Map<Short, Integer> maskedEquip = new LinkedHashMap<>();
for (Item item : ii) { for (Item item : ii) {
@@ -347,7 +347,7 @@ public class PacketCreator {
} }
protected static void addItemInfo(final OutPacket p, Item item, boolean zeroPosition) { protected static void addItemInfo(final OutPacket p, Item item, boolean zeroPosition) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
boolean isCash = ii.isCash(item.getItemId()); boolean isCash = ii.isCash(item.getItemId());
boolean isPet = item.getPetId() > -1; boolean isPet = item.getPetId() > -1;
boolean isRing = false; boolean isRing = false;
@@ -2358,7 +2358,7 @@ public class PacketCreator {
} }
public static Packet getNPCShop(Client c, int sid, List<MapleShopItem> items) { public static Packet getNPCShop(Client c, int sid, List<MapleShopItem> items) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
final OutPacket p = OutPacket.create(SendOpcode.OPEN_NPC_SHOP); final OutPacket p = OutPacket.create(SendOpcode.OPEN_NPC_SHOP);
p.writeInt(sid); p.writeInt(sid);
p.writeShort(items.size()); // item count p.writeShort(items.size()); // item count
@@ -2711,7 +2711,7 @@ public class PacketCreator {
p.writeByte(0); //end of pets p.writeByte(0); //end of pets
Item mount; //mounts can potentially crash the client if the player's level is not properly checked Item mount; //mounts can potentially crash the client if the player's level is not properly checked
if (chr.getMount() != null && (mount = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -18)) != null && MapleItemInformationProvider.getInstance().getEquipLevelReq(mount.getItemId()) <= chr.getLevel()) { if (chr.getMount() != null && (mount = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -18)) != null && ItemInformationProvider.getInstance().getEquipLevelReq(mount.getItemId()) <= chr.getLevel()) {
Mount mmount = chr.getMount(); Mount mmount = chr.getMount();
p.writeByte(mmount.getId()); //mount p.writeByte(mmount.getId()); //mount
p.writeInt(mmount.getLevel()); //level p.writeInt(mmount.getLevel()); //level
@@ -2730,7 +2730,7 @@ public class PacketCreator {
p.writeInt(book.getNormalCard()); p.writeInt(book.getNormalCard());
p.writeInt(book.getSpecialCard()); p.writeInt(book.getSpecialCard());
p.writeInt(book.getTotalCards()); p.writeInt(book.getTotalCards());
p.writeInt(chr.getMonsterBookCover() > 0 ? MapleItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0); p.writeInt(chr.getMonsterBookCover() > 0 ? ItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0);
Item medal = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -49); Item medal = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -49);
if (medal != null) { if (medal != null) {
p.writeInt(medal.getItemId()); p.writeInt(medal.getItemId());
@@ -1,6 +1,6 @@
package tools.mapletools; package tools.mapletools;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import java.io.BufferedReader; import java.io.BufferedReader;
@@ -85,7 +85,7 @@ public class CashCosmeticsFetcher {
} }
private static void reportCosmeticCouponResults() { private static void reportCosmeticCouponResults() {
final MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); final ItemInformationProvider ii = ItemInformationProvider.getInstance();
for (int itemid = 5150000; itemid <= 5154000; itemid++) { for (int itemid = 5150000; itemid <= 5154000; itemid++) {
String itemName = ii.getName(itemid); String itemName = ii.getName(itemid);
@@ -102,7 +102,7 @@ public class CashCosmeticsFetcher {
} }
public static void main(String[] args) { public static void main(String[] args) {
DatabaseConnection.initializeConnectionPool(); // MapleItemInformationProvider loads unrelated stuff from the db DatabaseConnection.initializeConnectionPool(); // ItemInformationProvider loads unrelated stuff from the db
try { try {
loadScripts(); loadScripts();
System.out.println("Loaded scripts"); System.out.println("Loaded scripts");
@@ -2,7 +2,7 @@ package tools.mapletools;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import tools.Pair; import tools.Pair;
@@ -38,7 +38,7 @@ public class QuestItemFetcher {
private static final Map<Integer, int[]> mixedQuestidItems = new HashMap<>(); private static final Map<Integer, int[]> mixedQuestidItems = new HashMap<>();
private static final Set<Integer> limitedQuestids = new HashSet<>(); private static final Set<Integer> limitedQuestids = new HashSet<>();
private static MapleItemInformationProvider ii; private static ItemInformationProvider ii;
private static PrintWriter printWriter = null; private static PrintWriter printWriter = null;
private static BufferedReader bufferedReader = null; private static BufferedReader bufferedReader = null;
private static byte status = 0; private static byte status = 0;
@@ -520,8 +520,8 @@ public class QuestItemFetcher {
} }
public static void main(String[] args) { public static void main(String[] args) {
DatabaseConnection.initializeConnectionPool(); // MapleItemInformationProvider loads some unrelated db data DatabaseConnection.initializeConnectionPool(); // ItemInformationProvider loads some unrelated db data
ii = MapleItemInformationProvider.getInstance(); ii = ItemInformationProvider.getInstance();
reportQuestItemData(); reportQuestItemData();
} }
@@ -1,7 +1,7 @@
package tools.mapletools; package tools.mapletools;
import provider.wz.WZFiles; import provider.wz.WZFiles;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.DatabaseConnection; import tools.DatabaseConnection;
import java.io.*; import java.io.*;
@@ -227,7 +227,7 @@ public class SkillMakerFetcher {
} }
private static void generateUpdatedItemFee() { private static void generateUpdatedItemFee() {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ItemInformationProvider ii = ItemInformationProvider.getInstance();
float adjPrice = reqMeso; float adjPrice = reqMeso;
if (itemid < 2000000) { if (itemid < 2000000) {
@@ -329,7 +329,7 @@ public class SkillMakerFetcher {
} }
public static void main(String[] args) { public static void main(String[] args) {
DatabaseConnection.initializeConnectionPool(); // Using MapleItemInformationProvider which loads som unrelated things from the db DatabaseConnection.initializeConnectionPool(); // Using ItemInformationProvider which loads som unrelated things from the db
writeMakerTableData(); writeMakerTableData();
} }
} }
+3 -3
View File
@@ -23,7 +23,7 @@ import client.Character;
import config.YamlConfig; import config.YamlConfig;
import constants.game.GameConstants; import constants.game.GameConstants;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.ItemInformationProvider;
import tools.PacketCreator; import tools.PacketCreator;
import java.util.Calendar; import java.util.Calendar;
@@ -105,12 +105,12 @@ public class Fishing {
break; break;
case 2: case 2:
int itemid = getRandomItem(); int itemid = getRandomItem();
rewardStr = "a(n) " + MapleItemInformationProvider.getInstance().getName(itemid) + "."; rewardStr = "a(n) " + ItemInformationProvider.getInstance().getName(itemid) + ".";
if (chr.canHold(itemid)) { if (chr.canHold(itemid)) {
chr.getAbstractPlayerInteraction().gainItem(itemid, true); chr.getAbstractPlayerInteraction().gainItem(itemid, true);
} else { } else {
chr.showHint("Couldn't catch a(n) #r" + MapleItemInformationProvider.getInstance().getName(itemid) + "#k due to #e#b" + ItemConstants.getInventoryType(itemid) + "#k#n inventory limit."); chr.showHint("Couldn't catch a(n) #r" + ItemInformationProvider.getInstance().getName(itemid) + "#k due to #e#b" + ItemConstants.getInventoryType(itemid) + "#k#n inventory limit.");
rewardStr += ".. but has goofed up due to full inventory."; rewardStr += ".. but has goofed up due to full inventory.";
} }
break; break;