Rename and clean up MapleInventoryType

This commit is contained in:
P0nk committed 2021-09-09 20:49:05 +02:00
1 parent ba647db6cf
commit 5ed7cf73d1
97 files changed
+556 -556

No files matched your search

+5 -5
View File
@@ -116,7 +116,7 @@ function action(mode, type, selection) {
if(!cm.hasItem(itemToUse) && vp > 0) if(!cm.hasItem(itemToUse) && vp > 0)
useVP = true; useVP = true;
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(choice == 0) { if(choice == 0) {
// VP Exchange // VP Exchange
if(!cm.canHold(itemToUse)) { if(!cm.canHold(itemToUse)) {
@@ -141,7 +141,7 @@ function action(mode, type, selection) {
cm.logLeaf(nxAmount + " NX"); cm.logLeaf(nxAmount + " NX");
cm.dispose(); cm.dispose();
} else if(choice == 2) { } else if(choice == 2) {
if(!cm.getPlayer().getInventory(MapleInventoryType.SETUP).isFull(chairAmount)) { if(!cm.getPlayer().getInventory(InventoryType.SETUP).isFull(chairAmount)) {
var chairStr = ""; var chairStr = "";
for(var i = 0; i < chairAmount; i++) { for(var i = 0; i < chairAmount; i++) {
@@ -161,7 +161,7 @@ function action(mode, type, selection) {
cm.sendOk("Please make sure you have enough space to hold the items!"); cm.sendOk("Please make sure you have enough space to hold the items!");
} }
} else if(choice == 3) { } else if(choice == 3) {
if(!cm.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull(weaponAmount)) { if(!cm.getPlayer().getInventory(InventoryType.EQUIP).isFull(weaponAmount)) {
var weaponStr = ""; var weaponStr = "";
for(var i = 0; i < weaponAmount; i++) { for(var i = 0; i < weaponAmount; i++) {
@@ -181,7 +181,7 @@ function action(mode, type, selection) {
cm.sendOk("Please make sure you have enough space to hold the items!"); cm.sendOk("Please make sure you have enough space to hold the items!");
} }
} else if(choice == 4) { } else if(choice == 4) {
if(!cm.getPlayer().getInventory(MapleInventoryType.USE).isFull(2)) { if(!cm.getPlayer().getInventory(InventoryType.USE).isFull(2)) {
cm.gainItem(buff1ID, buffAmount, true); cm.gainItem(buff1ID, buffAmount, true);
cm.gainItem(buff2ID, buffAmount, true); cm.gainItem(buff2ID, buffAmount, true);
cm.gainItem(itemToUse, -1); cm.gainItem(itemToUse, -1);
@@ -192,7 +192,7 @@ function action(mode, type, selection) {
} }
} else if(choice == 5) { } else if(choice == 5) {
if(!cm.haveItem(5030000, 1)) { if(!cm.haveItem(5030000, 1)) {
if(!cm.getPlayer().getInventory(MapleInventoryType.CASH).isFull(1)){ if(!cm.getPlayer().getInventory(InventoryType.CASH).isFull(1)){
cm.gainItem(5030000, 1, false, true, 1000 * 60 * 60 * 24 * hiredMerchantLength); cm.gainItem(5030000, 1, false, true, 1000 * 60 * 60 * 24 * hiredMerchantLength);
if(useVP) if(useVP)
+2 -2
View File
@@ -102,8 +102,8 @@ function action(mode, type, selection) {
} else if (status == 2) { } else if (status == 2) {
if (selection == 0) { if (selection == 0) {
const MapleInventoryManipulator = Java.type('client.inventory.manipulator.MapleInventoryManipulator'); const MapleInventoryManipulator = Java.type('client.inventory.manipulator.MapleInventoryManipulator');
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
MapleInventoryManipulator.removeFromSlot(cm.getClient(), MapleInventoryType.CASH, 1, 1, true); MapleInventoryManipulator.removeFromSlot(cm.getClient(), InventoryType.CASH, 1, 1, true);
cm.sendOk("Your cash first slot is removed."); cm.sendOk("Your cash first slot is removed.");
} else if (selection == 1) { } else if (selection == 1) {
if (cm.haveItem(5000029, 2)) { if (cm.haveItem(5000029, 2)) {
+2 -2
View File
@@ -34,8 +34,8 @@ function start() {
cm.gainItem(4031025,10); cm.gainItem(4031025,10);
} else { } else {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(cm.getPlayer().getInventory(MapleInventoryType.ETC).getNumFreeSlot() < 1) { if(cm.getPlayer().getInventory(InventoryType.ETC).getNumFreeSlot() < 1) {
cm.sendNext("Check for a available slot on your ETC inventory."); cm.sendNext("Check for a available slot on your ETC inventory.");
cm.dispose(); cm.dispose();
return; return;
+2 -2
View File
@@ -34,8 +34,8 @@ function start() {
cm.gainItem(4031026,20); cm.gainItem(4031026,20);
} else { } else {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(cm.getPlayer().getInventory(MapleInventoryType.ETC).getNumFreeSlot() < 1) { if(cm.getPlayer().getInventory(InventoryType.ETC).getNumFreeSlot() < 1) {
cm.sendNext("Check for a available slot on your ETC inventory."); cm.sendNext("Check for a available slot on your ETC inventory.");
cm.dispose(); cm.dispose();
return; return;
+2 -2
View File
@@ -34,8 +34,8 @@ function start() {
cm.gainItem(4031028,30); cm.gainItem(4031028,30);
} else { } else {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(cm.getPlayer().getInventory(MapleInventoryType.ETC).getNumFreeSlot() < 1) { if(cm.getPlayer().getInventory(InventoryType.ETC).getNumFreeSlot() < 1) {
cm.sendNext("Check for a available slot on your ETC inventory."); cm.sendNext("Check for a available slot on your ETC inventory.");
cm.dispose(); cm.dispose();
return; return;
+2 -2
View File
@@ -155,7 +155,7 @@ function action(mode, type, selection) {
} }
else { else {
var count = 0; var count = 0;
var iter = cm.getChar().getInventory(MapleInventoryType.ETC).listById(mats[i]).iterator(); var iter = cm.getChar().getInventory(InventoryType.ETC).listById(mats[i]).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
count += iter.next().getQuantity(); count += iter.next().getQuantity();
} }
@@ -166,7 +166,7 @@ function action(mode, type, selection) {
} }
else { else {
var count = 0; var count = 0;
var iter = cm.getChar().getInventory(MapleInventoryType.ETC).listById(mats).iterator(); var iter = cm.getChar().getInventory(InventoryType.ETC).listById(mats).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
count += iter.next().getQuantity(); count += iter.next().getQuantity();
} }
+4 -4
View File
@@ -500,8 +500,8 @@ function refineItems(refineType) {
var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]]; var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]];
var itemCount = {}; var itemCount = {};
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
@@ -554,8 +554,8 @@ function refineRockItems() {
var rockItems = [4011007, 4021009]; var rockItems = [4011007, 4021009];
var rockFees = [10000, 15000]; var rockFees = [10000, 15000];
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
+4 -4
View File
@@ -499,8 +499,8 @@ function refineItems(refineType) {
var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]]; var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]];
var itemCount = {}; var itemCount = {};
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
@@ -553,8 +553,8 @@ function refineRockItems() {
var rockItems = [4011007, 4021009]; var rockItems = [4011007, 4021009];
var rockFees = [10000, 15000]; var rockFees = [10000, 15000];
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
+4 -4
View File
@@ -500,8 +500,8 @@ function refineItems(refineType) {
var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]]; var refineFees = [[300,300,300,500,500,500,800,270],[500,500,500,500,500,500,500,1000,3000],[5000,5000,5000,5000,1000000]];
var itemCount = {}; var itemCount = {};
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
@@ -554,8 +554,8 @@ function refineRockItems() {
var rockItems = [4011007, 4021009]; var rockItems = [4011007, 4021009];
var rockFees = [10000, 15000]; var rockFees = [10000, 15000];
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var iter = cm.getPlayer().getInventory(MapleInventoryType.ETC).iterator(); var iter = cm.getPlayer().getInventory(InventoryType.ETC).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var it = iter.next(); var it = iter.next();
var itemid = it.getItemId(); var itemid = it.getItemId();
+2 -2
View File
@@ -19,8 +19,8 @@ function action(mode, type, selection) {
status--; status--;
if(status == 0) { if(status == 0) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(cm.getPlayer().getInventory(MapleInventoryType.ETC).getNumFreeSlot() < 1) { if(cm.getPlayer().getInventory(InventoryType.ETC).getNumFreeSlot() < 1) {
cm.sendNext("Check for a available slot on your ETC inventory."); cm.sendNext("Check for a available slot on your ETC inventory.");
cm.dispose(); cm.dispose();
return; return;
+2 -2
View File
@@ -421,8 +421,8 @@ function performExchange(sgItemid, sgCount) {
} }
function generateRandomScroll() { function generateRandomScroll() {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if (cm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() >= 1) { if (cm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() >= 1) {
var itemid = getRandomScroll(calculateScrollTiers()); var itemid = getRandomScroll(calculateScrollTiers());
if (itemid != -1) { if (itemid != -1) {
if (performExchange(itemid, 1)) { if (performExchange(itemid, 1)) {
+2 -2
View File
@@ -77,8 +77,8 @@ function action(mode, type, selection) {
if(sPet != null) { if(sPet != null) {
cm.sendNext("Your doll has now reawaken as your pet! However, my magic isn't perfect, so I can't promise an eternal life for your pet... Please take care of that pet before the Water of Life dries. Well then, good bye..."); cm.sendNext("Your doll has now reawaken as your pet! However, my magic isn't perfect, so I can't promise an eternal life for your pet... Please take care of that pet before the Water of Life dries. Well then, good bye...");
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
var it = cm.getPlayer().getInventory(MapleInventoryType.CASH).getItem(sPet.getPosition()); var it = cm.getPlayer().getInventory(InventoryType.CASH).getItem(sPet.getPosition());
it.setExpiration(Date.now() + (1000 * 60 * 60 * 24 * 90)); it.setExpiration(Date.now() + (1000 * 60 * 60 * 24 * 90));
cm.getPlayer().forceUpdateItem(it); cm.getPlayer().forceUpdateItem(it);
+2 -2
View File
@@ -15,8 +15,8 @@ function end(mode, type, selection) {
} }
else if(status == 1) { else if(status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() < 1) { if(qm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() < 1) {
qm.getPlayer().dropMessage(1, "USE inventory full."); qm.getPlayer().dropMessage(1, "USE inventory full.");
qm.dispose(); qm.dispose();
return; return;
+2 -2
View File
@@ -14,8 +14,8 @@ function end(mode, type, selection) {
} }
else if(status == 1) { else if(status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.EQUIP).getNumFreeSlot() < 1) { if(qm.getPlayer().getInventory(InventoryType.EQUIP).getNumFreeSlot() < 1) {
qm.sendOk("Please free a EQUIP inventory slot to receive the reward."); qm.sendOk("Please free a EQUIP inventory slot to receive the reward.");
qm.dispose(); qm.dispose();
return; return;
+2 -2
View File
@@ -17,8 +17,8 @@ function end(mode, type, selection) {
if (status == 0) { if (status == 0) {
if (qm.haveItem(4031092, 10)) { if (qm.haveItem(4031092, 10)) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if (qm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() >= 1) { if (qm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() >= 1) {
qm.sendOk("Well done! You brought back all the #t4031092# that were missing. Here, take this scroll as a token of my gratitude..."); qm.sendOk("Well done! You brought back all the #t4031092# that were missing. Here, take this scroll as a token of my gratitude...");
} else { } else {
qm.sendOk("Free a space on your USE inventory before receiving your prize."); qm.sendOk("Free a space on your USE inventory before receiving your prize.");
+2 -2
View File
@@ -15,8 +15,8 @@ function end(mode, type, selection) {
} }
else if(status == 1) { else if(status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() < 1) { if(qm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() < 1) {
qm.getPlayer().dropMessage(1, "USE inventory full."); qm.getPlayer().dropMessage(1, "USE inventory full.");
qm.dispose(); qm.dispose();
return; return;
+2 -2
View File
@@ -13,8 +13,8 @@ function end(mode, type, selection) {
if(status == 0) { if(status == 0) {
qm.sendNext("What the? Are you telling me you've already taken out 150 #o4230120#s? And these ... yes, these really are 120 #t4000122#s. I was wondering how you were going to complete this mission all by yourself, but you took care of it just fine. Alright, here ... this is a very important item for me, but please take it."); qm.sendNext("What the? Are you telling me you've already taken out 150 #o4230120#s? And these ... yes, these really are 120 #t4000122#s. I was wondering how you were going to complete this mission all by yourself, but you took care of it just fine. Alright, here ... this is a very important item for me, but please take it.");
} else if(status == 1) { } else if(status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.EQUIP).getNumFreeSlot() < 1) { if(qm.getPlayer().getInventory(InventoryType.EQUIP).getNumFreeSlot() < 1) {
qm.sendOk("Please free a EQUIP inventory slot to receive the reward."); qm.sendOk("Please free a EQUIP inventory slot to receive the reward.");
qm.dispose(); qm.dispose();
return; return;
+2 -2
View File
@@ -10,8 +10,8 @@ function end(mode, type, selection) {
qm.sendNext("Take these #bMana Elixir Pills#k as a token of my gratitude."); qm.sendNext("Take these #bMana Elixir Pills#k as a token of my gratitude.");
} }
else if (status == 1) { else if (status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() >= 1) { if(qm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() >= 1) {
qm.gainItem(4000099, -1); qm.gainItem(4000099, -1);
qm.gainItem(2000011, 50); qm.gainItem(2000011, 50);
qm.gainExp(8000); qm.gainExp(8000);
+2 -2
View File
@@ -44,8 +44,8 @@ function end(mode, type, selection) {
status--; status--;
if (status == 0) { if (status == 0) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if(qm.getPlayer().getInventory(MapleInventoryType.ETC).getNumFreeSlot() < 1) { if(qm.getPlayer().getInventory(InventoryType.ETC).getNumFreeSlot() < 1) {
qm.sendOk("Make room on your ETC inventory first."); qm.sendOk("Make room on your ETC inventory first.");
qm.dispose(); qm.dispose();
return; return;
+2 -2
View File
@@ -8,8 +8,8 @@ function end(mode, type, selection) {
if (status == 0) { if (status == 0) {
qm.sendOk("Great! You managed to get the herb I need. As a #btoken of gratitude#k, take this item to help on your journey."); qm.sendOk("Great! You managed to get the herb I need. As a #btoken of gratitude#k, take this item to help on your journey.");
} else if (status == 1) { } else if (status == 1) {
const MapleInventoryType = Java.type('client.inventory.MapleInventoryType'); const InventoryType = Java.type('client.inventory.InventoryType');
if (qm.getPlayer().getInventory(MapleInventoryType.USE).getNumFreeSlot() >= 2) { if (qm.getPlayer().getInventory(InventoryType.USE).getNumFreeSlot() >= 2) {
if (qm.haveItem(4000294, 1000)) { if (qm.haveItem(4000294, 1000)) {
qm.gainItem(4000294, -1000); qm.gainItem(4000294, -1000);
qm.gainItem(2040501, 1); qm.gainItem(2040501, 1);
+56 -56
View File
@@ -303,17 +303,17 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
useCS = false; useCS = false;
setStance(0); setStance(0);
inventory = new Inventory[MapleInventoryType.values().length]; inventory = new Inventory[InventoryType.values().length];
savedLocations = new SavedLocation[SavedLocationType.values().length]; savedLocations = new SavedLocation[SavedLocationType.values().length];
for (MapleInventoryType type : MapleInventoryType.values()) { for (InventoryType type : InventoryType.values()) {
byte b = 24; byte b = 24;
if (type == MapleInventoryType.CASH) { if (type == InventoryType.CASH) {
b = 96; b = 96;
} }
inventory[type.ordinal()] = new Inventory(this, type, (byte) b); inventory[type.ordinal()] = new Inventory(this, type, (byte) b);
} }
inventory[MapleInventoryType.CANHOLD.ordinal()] = new InventoryProof(this); inventory[InventoryType.CANHOLD.ordinal()] = new InventoryProof(this);
for (int i = 0; i < SavedLocationType.values().length; i++) { for (int i = 0; i < SavedLocationType.values().length; i++) {
savedLocations[i] = null; savedLocations[i] = null;
@@ -374,10 +374,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
ret.accountid = c.getAccID(); ret.accountid = c.getAccID();
ret.buddylist = new BuddyList(20); ret.buddylist = new BuddyList(20);
ret.maplemount = null; ret.maplemount = null;
ret.getInventory(MapleInventoryType.EQUIP).setSlotLimit(24); ret.getInventory(InventoryType.EQUIP).setSlotLimit(24);
ret.getInventory(MapleInventoryType.USE).setSlotLimit(24); ret.getInventory(InventoryType.USE).setSlotLimit(24);
ret.getInventory(MapleInventoryType.SETUP).setSlotLimit(24); ret.getInventory(InventoryType.SETUP).setSlotLimit(24);
ret.getInventory(MapleInventoryType.ETC).setSlotLimit(24); ret.getInventory(InventoryType.ETC).setSlotLimit(24);
// Select a keybinding method // Select a keybinding method
int[] selectedKey; int[] selectedKey;
@@ -714,7 +714,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public int calculateMaxBaseDamage(int watk) { public int calculateMaxBaseDamage(int watk) {
int maxbasedamage; int maxbasedamage;
Item weapon_item = getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11); Item weapon_item = getInventory(InventoryType.EQUIPPED).getItem((short) -11);
if (weapon_item != null) { if (weapon_item != null) {
maxbasedamage = calculateMaxBaseDamage(watk, ii.getWeaponType(weapon_item.getItemId())); maxbasedamage = calculateMaxBaseDamage(watk, ii.getWeaponType(weapon_item.getItemId()));
} else { } else {
@@ -814,7 +814,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public String getMedalText() { public String getMedalText() {
String medal = ""; String medal = "";
final Item medalItem = getInventory(MapleInventoryType.EQUIPPED).getItem((short) -49); final Item medalItem = getInventory(InventoryType.EQUIPPED).getItem((short) -49);
if (medalItem != null) { if (medalItem != null) {
medal = "<" + ii.getName(medalItem.getItemId()) + "> "; medal = "<" + ii.getName(medalItem.getItemId()) + "> ";
} }
@@ -905,7 +905,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
for(MapleInventoryType invType : MapleInventoryType.values()) { for(InventoryType invType : InventoryType.values()) {
Inventory inv = this.getInventory(invType); Inventory inv = this.getInventory(invType);
inv.lockInventory(); inv.lockInventory();
@@ -1278,7 +1278,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void changeMapBanish(int mapid, String portal, String msg) { public void changeMapBanish(int mapid, String portal, String msg) {
if(YamlConfig.config.server.USE_SPIKES_AVOID_BANISH) { if(YamlConfig.config.server.USE_SPIKES_AVOID_BANISH) {
for(Item it: this.getInventory(MapleInventoryType.EQUIPPED).list()) { for(Item it: this.getInventory(InventoryType.EQUIPPED).list()) {
if((it.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES) { if((it.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES) {
return; return;
} }
@@ -1455,7 +1455,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
effLock.unlock(); effLock.unlock();
} }
for(Item it: this.getInventory(MapleInventoryType.EQUIPPED).list()) { for(Item it: this.getInventory(InventoryType.EQUIPPED).list()) {
if((it.getFlag() & ItemConstants.COLD) == ItemConstants.COLD && ((returnMapid == 211000000 && thisMapid != 200082300) || returnMapid == 193000000)) { if((it.getFlag() & ItemConstants.COLD) == ItemConstants.COLD && ((returnMapid == 211000000 && thisMapid != 200082300) || returnMapid == 193000000)) {
return true; //protection from cold return true; //protection from cold
} }
@@ -2762,7 +2762,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
private void doHurtHp() { private void doHurtHp() {
if (!(this.getInventory(MapleInventoryType.EQUIPPED).findById(getMap().getHPDecProtect()) != null || buffMapProtection())) { if (!(this.getInventory(InventoryType.EQUIPPED).findById(getMap().getHPDecProtect()) != null || buffMapProtection())) {
addHP(-getMap().getHPDec()); addHP(-getMap().getHPDec());
lastHpDec = Server.getInstance().getCurrentTime(); lastHpDec = Server.getInstance().getCurrentTime();
} }
@@ -5096,7 +5096,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
return initialSpawnPoint; return initialSpawnPoint;
} }
public Inventory getInventory(MapleInventoryType type) { public Inventory getInventory(InventoryType type) {
return inventory[type.ordinal()]; return inventory[type.ordinal()];
} }
@@ -5106,11 +5106,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public boolean haveItemWithId(int itemid, boolean checkEquipped) { public boolean haveItemWithId(int itemid, boolean checkEquipped) {
return (inventory[ItemConstants.getInventoryType(itemid).ordinal()].findById(itemid) != null) return (inventory[ItemConstants.getInventoryType(itemid).ordinal()].findById(itemid) != null)
|| (checkEquipped && inventory[MapleInventoryType.EQUIPPED.ordinal()].findById(itemid) != null); || (checkEquipped && inventory[InventoryType.EQUIPPED.ordinal()].findById(itemid) != null);
} }
public boolean haveItemEquipped(int itemid) { public boolean haveItemEquipped(int itemid) {
return (inventory[MapleInventoryType.EQUIPPED.ordinal()].findById(itemid) != null); return (inventory[InventoryType.EQUIPPED.ordinal()].findById(itemid) != null);
} }
public boolean haveWeddingRing() { public boolean haveWeddingRing() {
@@ -5128,7 +5128,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public int getItemQuantity(int itemid, boolean checkEquipped) { public int getItemQuantity(int itemid, boolean checkEquipped) {
int count = inventory[ItemConstants.getInventoryType(itemid).ordinal()].countById(itemid); int count = inventory[ItemConstants.getInventoryType(itemid).ordinal()].countById(itemid);
if (checkEquipped) { if (checkEquipped) {
count += inventory[MapleInventoryType.EQUIPPED.ordinal()].countById(itemid); count += inventory[InventoryType.EQUIPPED.ordinal()].countById(itemid);
} }
return count; return count;
} }
@@ -5136,7 +5136,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public int getCleanItemQuantity(int itemid, boolean checkEquipped) { public int getCleanItemQuantity(int itemid, boolean checkEquipped) {
int count = inventory[ItemConstants.getInventoryType(itemid).ordinal()].countNotOwnedById(itemid); int count = inventory[ItemConstants.getInventoryType(itemid).ordinal()].countNotOwnedById(itemid);
if (checkEquipped) { if (checkEquipped) {
count += inventory[MapleInventoryType.EQUIPPED.ordinal()].countNotOwnedById(itemid); count += inventory[InventoryType.EQUIPPED.ordinal()].countNotOwnedById(itemid);
} }
return count; return count;
} }
@@ -6030,7 +6030,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
public boolean hasEmptySlot(byte invType) { public boolean hasEmptySlot(byte invType) {
return getInventory(MapleInventoryType.getByType(invType)).getNextFreeSlot() > -1; return getInventory(InventoryType.getByType(invType)).getNextFreeSlot() > -1;
} }
public void increaseGuildCapacity() { public void increaseGuildCapacity() {
@@ -6648,7 +6648,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private void setCouponRates() { private void setCouponRates() {
List<Integer> couponEffects; List<Integer> couponEffects;
Collection<Item> cashItems = this.getInventory(MapleInventoryType.CASH).list(); Collection<Item> cashItems = this.getInventory(InventoryType.CASH).list();
chrLock.lock(); chrLock.lock();
try { try {
setActiveCoupons(cashItems); setActiveCoupons(cashItems);
@@ -6667,7 +6667,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
public void updateCouponRates() { public void updateCouponRates() {
Inventory cashInv = this.getInventory(MapleInventoryType.CASH); Inventory cashInv = this.getInventory(InventoryType.CASH);
if (cashInv == null) return; if (cashInv == null) return;
effLock.lock(); effLock.lock();
@@ -6872,7 +6872,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
ret.jobRankMove = rs.getInt("jobRankMove"); ret.jobRankMove = rs.getInt("jobRankMove");
if(equipped != null) { // players can have no equipped items at all, ofc if(equipped != null) { // players can have no equipped items at all, ofc
Inventory inv = ret.inventory[MapleInventoryType.EQUIPPED.ordinal()]; Inventory inv = ret.inventory[InventoryType.EQUIPPED.ordinal()];
for (Item item : equipped) { for (Item item : equipped) {
inv.addItemFromDB(item); inv.addItemFromDB(item);
} }
@@ -6915,7 +6915,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
ret.mapid = this.getMapId(); ret.mapid = this.getMapId();
ret.initialSpawnPoint = this.getInitialSpawnpoint(); ret.initialSpawnPoint = this.getInitialSpawnpoint();
ret.inventory[MapleInventoryType.EQUIPPED.ordinal()] = this.getInventory(MapleInventoryType.EQUIPPED); ret.inventory[InventoryType.EQUIPPED.ordinal()] = this.getInventory(InventoryType.EQUIPPED);
ret.setGMLevel(this.gmLevel()); ret.setGMLevel(this.gmLevel());
ret.world = this.getWorld(); ret.world = this.getWorld();
@@ -7030,13 +7030,13 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
wserv = Server.getInstance().getWorld(ret.world); wserv = Server.getInstance().getWorld(ret.world);
ret.getInventory(MapleInventoryType.EQUIP).setSlotLimit(rs.getByte("equipslots")); ret.getInventory(InventoryType.EQUIP).setSlotLimit(rs.getByte("equipslots"));
ret.getInventory(MapleInventoryType.USE).setSlotLimit(rs.getByte("useslots")); ret.getInventory(InventoryType.USE).setSlotLimit(rs.getByte("useslots"));
ret.getInventory(MapleInventoryType.SETUP).setSlotLimit(rs.getByte("setupslots")); ret.getInventory(InventoryType.SETUP).setSlotLimit(rs.getByte("setupslots"));
ret.getInventory(MapleInventoryType.ETC).setSlotLimit(rs.getByte("etcslots")); ret.getInventory(InventoryType.ETC).setSlotLimit(rs.getByte("etcslots"));
short sandboxCheck = 0x0; short sandboxCheck = 0x0;
for (Pair<Item, MapleInventoryType> item : ItemFactory.INVENTORY.loadItems(ret.id, !channelserver)) { for (Pair<Item, InventoryType> item : ItemFactory.INVENTORY.loadItems(ret.id, !channelserver)) {
sandboxCheck |= item.getLeft().getFlag(); sandboxCheck |= item.getLeft().getFlag();
ret.getInventory(item.getRight()).addItemFromDB(item.getLeft()); ret.getInventory(item.getRight()).addItemFromDB(item.getLeft());
@@ -7049,12 +7049,12 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
continue; continue;
} }
MapleInventoryType mit = item.getRight(); InventoryType mit = item.getRight();
if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { if (mit.equals(InventoryType.EQUIP) || mit.equals(InventoryType.EQUIPPED)) {
Equip equip = (Equip) item.getLeft(); Equip equip = (Equip) item.getLeft();
if (equip.getRingId() > -1) { if (equip.getRingId() > -1) {
MapleRing ring = MapleRing.loadFromDb(equip.getRingId()); MapleRing ring = MapleRing.loadFromDb(equip.getRingId());
if (item.getRight().equals(MapleInventoryType.EQUIPPED)) { if (item.getRight().equals(InventoryType.EQUIPPED)) {
ring.equip(); ring.equip();
} }
@@ -7416,8 +7416,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
final int mountid = ret.getJobType() * 10000000 + 1004; final int mountid = ret.getJobType() * 10000000 + 1004;
if (ret.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -18) != null) { if (ret.getInventory(InventoryType.EQUIPPED).getItem((short) -18) != null) {
ret.maplemount = new MapleMount(ret, ret.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -18).getItemId(), mountid); ret.maplemount = new MapleMount(ret, ret.getInventory(InventoryType.EQUIPPED).getItem((short) -18).getItemId(), mountid);
} else { } else {
ret.maplemount = new MapleMount(ret, 0, mountid); ret.maplemount = new MapleMount(ret, 0, mountid);
} }
@@ -7704,7 +7704,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
//equipspeed = 0; //equipspeed = 0;
//equipjump = 0; //equipjump = 0;
for (Item item : getInventory(MapleInventoryType.EQUIPPED)) { for (Item item : getInventory(InventoryType.EQUIPPED)) {
Equip equip = (Equip) item; Equip equip = (Equip) item;
equipmaxhp += equip.getHp(); equipmaxhp += equip.getHp();
equipmaxmp += equip.getMp(); equipmaxmp += equip.getMp();
@@ -7822,7 +7822,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
if (job.isA(MapleJob.THIEF) || job.isA(MapleJob.BOWMAN) || job.isA(MapleJob.PIRATE) || job.isA(MapleJob.NIGHTWALKER1) || job.isA(MapleJob.WINDARCHER1)) { if (job.isA(MapleJob.THIEF) || job.isA(MapleJob.BOWMAN) || job.isA(MapleJob.PIRATE) || job.isA(MapleJob.NIGHTWALKER1) || job.isA(MapleJob.WINDARCHER1)) {
Item weapon_item = getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11); Item weapon_item = getInventory(InventoryType.EQUIPPED).getItem((short) -11);
if (weapon_item != null) { if (weapon_item != null) {
MapleWeaponType weapon = ii.getWeaponType(weapon_item.getItemId()); MapleWeaponType weapon = ii.getWeaponType(weapon_item.getItemId());
boolean bow = weapon == MapleWeaponType.BOW; boolean bow = weapon == MapleWeaponType.BOW;
@@ -7831,7 +7831,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
boolean gun = weapon == MapleWeaponType.GUN; boolean gun = weapon == MapleWeaponType.GUN;
if (bow || crossbow || claw || gun) { if (bow || crossbow || claw || gun) {
// Also calc stars into this. // Also calc stars into this.
Inventory inv = getInventory(MapleInventoryType.USE); Inventory inv = getInventory(InventoryType.USE);
for (short i = 1; i <= inv.getSlotLimit(); i++) { for (short i = 1; i <= inv.getSlotLimit(); i++) {
Item item = inv.getItem(i); Item item = inv.getItem(i);
if (item != null) { if (item != null) {
@@ -8176,8 +8176,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
this.changeSkillLevel(skill, skEntry.getRight().byteValue(), skill.getMaxLevel(), -1); this.changeSkillLevel(skill, skEntry.getRight().byteValue(), skill.getMaxLevel(), -1);
} }
List<Pair<Item, MapleInventoryType>> itemsWithType = recipe.getStartingItems(); List<Pair<Item, InventoryType>> itemsWithType = recipe.getStartingItems();
for (Pair<Item, MapleInventoryType> itEntry : itemsWithType) { for (Pair<Item, InventoryType> itEntry : itemsWithType) {
this.getInventory(itEntry.getRight()).addItem(itEntry.getLeft()); this.getInventory(itEntry.getRight()).addItem(itEntry.getLeft());
} }
@@ -8556,7 +8556,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
psMacro.executeBatch(); psMacro.executeBatch();
} }
List<Pair<Item, MapleInventoryType>> itemsWithType = new ArrayList<>(); List<Pair<Item, InventoryType>> itemsWithType = new ArrayList<>();
for (Inventory iv : inventory) { for (Inventory iv : inventory) {
for (Item item : iv.list()) { for (Item item : iv.list()) {
itemsWithType.add(new Pair<>(item, iv.getType())); itemsWithType.add(new Pair<>(item, iv.getType()));
@@ -9112,7 +9112,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
int autohpItemid = autohpPot.getAction(); int autohpItemid = autohpPot.getAction();
float autohpAlert = this.getAutopotHpAlert(); float autohpAlert = this.getAutopotHpAlert();
if (((float) this.getHp()) / this.getCurrentMaxHp() <= autohpAlert) { // try within user settings... thanks Lame, Optimist, Stealth2800 if (((float) this.getHp()) / this.getCurrentMaxHp() <= autohpAlert) { // try within user settings... thanks Lame, Optimist, Stealth2800
Item autohpItem = this.getInventory(MapleInventoryType.USE).findById(autohpItemid); Item autohpItem = this.getInventory(InventoryType.USE).findById(autohpItemid);
if (autohpItem != null) { if (autohpItem != null) {
this.setAutopotHpAlert(0.9f * autohpAlert); this.setAutopotHpAlert(0.9f * autohpAlert);
PetAutopotProcessor.runAutopotAction(client, autohpItem.getPosition(), autohpItemid); PetAutopotProcessor.runAutopotAction(client, autohpItem.getPosition(), autohpItemid);
@@ -9127,7 +9127,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
int autompItemid = autompPot.getAction(); int autompItemid = autompPot.getAction();
float autompAlert = this.getAutopotMpAlert(); float autompAlert = this.getAutopotMpAlert();
if (((float) this.getMp()) / this.getCurrentMaxMp() <= autompAlert) { if (((float) this.getMp()) / this.getCurrentMaxMp() <= autompAlert) {
Item autompItem = this.getInventory(MapleInventoryType.USE).findById(autompItemid); Item autompItem = this.getInventory(InventoryType.USE).findById(autompItemid);
if (autompItem != null) { if (autompItem != null) {
this.setAutopotMpAlert(0.9f * autompAlert); // autoMP would stick to using pots at every depletion in some cases... thanks Rohenn this.setAutopotMpAlert(0.9f * autompAlert); // autoMP would stick to using pots at every depletion in some cases... thanks Rohenn
PetAutopotProcessor.runAutopotAction(client, autompItem.getPosition(), autompItemid); PetAutopotProcessor.runAutopotAction(client, autompItem.getPosition(), autompItemid);
@@ -9139,7 +9139,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
return true; return true;
} }
public void setInventory(MapleInventoryType type, Inventory inv) { public void setInventory(InventoryType type, Inventory inv) {
inventory[type.ordinal()] = inv; inventory[type.ordinal()] = inv;
} }
@@ -9285,7 +9285,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
public byte getSlots(int type) { public byte getSlots(int type) {
return type == MapleInventoryType.CASH.getType() ? 96 : inventory[type].getSlotLimit(); return type == InventoryType.CASH.getType() ? 96 : inventory[type].getSlotLimit();
} }
public boolean canGainSlots(int type, int slots) { public boolean canGainSlots(int type, int slots) {
@@ -9327,7 +9327,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public int sellAllItemsFromName(byte invTypeId, String name) { public int sellAllItemsFromName(byte invTypeId, String name) {
//player decides from which inventory items should be sold. //player decides from which inventory items should be sold.
MapleInventoryType type = MapleInventoryType.getByType(invTypeId); InventoryType type = InventoryType.getByType(invTypeId);
Inventory inv = getInventory(type); Inventory inv = getInventory(type);
inv.lockInventory(); inv.lockInventory();
@@ -9343,7 +9343,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
} }
public int sellAllItemsFromPosition(MapleItemInformationProvider ii, MapleInventoryType type, short pos) { public int sellAllItemsFromPosition(MapleItemInformationProvider ii, InventoryType type, short pos) {
int mesoGain = 0; int mesoGain = 0;
Inventory inv = getInventory(type); Inventory inv = getInventory(type);
@@ -9362,7 +9362,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
return(mesoGain); return(mesoGain);
} }
private int standaloneSell(MapleClient c, MapleItemInformationProvider ii, MapleInventoryType type, short slot, short quantity) { private int standaloneSell(MapleClient c, MapleItemInformationProvider ii, InventoryType type, short slot, short quantity) {
if (quantity == 0xFFFF || quantity == 0) { if (quantity == 0xFFFF || quantity == 0) {
quantity = 1; quantity = 1;
} }
@@ -9419,7 +9419,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private List<Equip> getUpgradeableEquipped() { private List<Equip> getUpgradeableEquipped() {
List<Equip> list = new LinkedList<>(); List<Equip> list = new LinkedList<>();
for (Item item : getInventory(MapleInventoryType.EQUIPPED)) { for (Item item : getInventory(InventoryType.EQUIPPED)) {
if (ii.isUpgradeable(item.getItemId())) { if (ii.isUpgradeable(item.getItemId())) {
list.add((Equip) item); list.add((Equip) item);
} }
@@ -9441,7 +9441,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
public boolean mergeAllItemsFromName(String name) { public boolean mergeAllItemsFromName(String name) {
MapleInventoryType type = MapleInventoryType.EQUIP; InventoryType type = InventoryType.EQUIP;
Inventory inv = getInventory(type); Inventory inv = getInventory(type);
inv.lockInventory(); inv.lockInventory();
@@ -9518,18 +9518,18 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
public void mergeAllItemsFromPosition(Map<StatUpgrade, Float> statups, short pos) { public void mergeAllItemsFromPosition(Map<StatUpgrade, Float> statups, short pos) {
Inventory inv = getInventory(MapleInventoryType.EQUIP); Inventory inv = getInventory(InventoryType.EQUIP);
inv.lockInventory(); inv.lockInventory();
try { try {
for(short i = pos; i <= inv.getSlotLimit(); i++) { for(short i = pos; i <= inv.getSlotLimit(); i++) {
standaloneMerge(statups, getClient(), MapleInventoryType.EQUIP, i, inv.getItem(i)); standaloneMerge(statups, getClient(), InventoryType.EQUIP, i, inv.getItem(i));
} }
} finally { } finally {
inv.unlockInventory(); inv.unlockInventory();
} }
} }
private void standaloneMerge(Map<StatUpgrade, Float> statups, MapleClient c, MapleInventoryType type, short slot, Item item) { private void standaloneMerge(Map<StatUpgrade, Float> statups, MapleClient c, InventoryType type, short slot, Item item) {
short quantity; short quantity;
if (item == null || (quantity = item.getQuantity()) < 1 || ii.isCash(item.getItemId()) || !ii.isUpgradeable(item.getItemId()) || hasMergeFlag(item)){ if (item == null || (quantity = item.getQuantity()) < 1 || ii.isCash(item.getItemId()) || !ii.isUpgradeable(item.getItemId()) || hasMergeFlag(item)){
return; return;
@@ -9623,7 +9623,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
nextWarningTime = curTime + (60 * 1000); // show underlevel info again after 1 minute nextWarningTime = curTime + (60 * 1000); // show underlevel info again after 1 minute
String medal = ""; String medal = "";
Item medalItem = mapOwner.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -49); Item medalItem = mapOwner.getInventory(InventoryType.EQUIPPED).getItem((short) -49);
if (medalItem != null) { if (medalItem != null) {
medal = "<" + ii.getName(medalItem.getItemId()) + "> "; medal = "<" + ii.getName(medalItem.getItemId()) + "> ";
} }
@@ -9722,7 +9722,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} else { } else {
pet.setFullness(newFullness); pet.setFullness(newFullness);
pet.saveToDb(); pet.saveToDb();
Item petz = getInventory(MapleInventoryType.CASH).getItem(pet.getPosition()); Item petz = getInventory(InventoryType.CASH).getItem(pet.getPosition());
if (petz != null) { if (petz != null) {
forceUpdateItem(petz); forceUpdateItem(petz);
} }
@@ -10365,7 +10365,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} }
private Collection<Item> getUpgradeableEquipList() { private Collection<Item> getUpgradeableEquipList() {
Collection<Item> fullList = getInventory(MapleInventoryType.EQUIPPED).list(); Collection<Item> fullList = getInventory(InventoryType.EQUIPPED).list();
if (YamlConfig.config.server.USE_EQUIPMNT_LVLUP_CASH) { if (YamlConfig.config.server.USE_EQUIPMNT_LVLUP_CASH) {
return fullList; return fullList;
} }
@@ -10401,7 +10401,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void showAllEquipFeatures() { public void showAllEquipFeatures() {
String showMsg = ""; String showMsg = "";
for (Item item : getInventory(MapleInventoryType.EQUIPPED).list()) { for (Item item : getInventory(InventoryType.EQUIPPED).list()) {
Equip nEquip = (Equip) item; Equip nEquip = (Equip) item;
String itemName = ii.getName(nEquip.getItemId()); String itemName = ii.getName(nEquip.getItemId());
if (itemName == null) { if (itemName == null) {
+2 -2
View File
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package client; package client;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import config.YamlConfig; import config.YamlConfig;
import constants.game.GameConstants; import constants.game.GameConstants;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
@@ -1491,7 +1491,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
//Cancelling magicdoor? Nope //Cancelling magicdoor? Nope
//Cancelling mounts? Noty //Cancelling mounts? Noty
player.getInventory(MapleInventoryType.EQUIPPED).checked(false); //test player.getInventory(InventoryType.EQUIPPED).checked(false); //test
player.getMap().removePlayer(player); player.getMap().removePlayer(player);
player.clearBanishPlayerData(); player.clearBanishPlayerData();
player.getClient().getChannelServer().removePlayer(player); player.getClient().getChannelServer().removePlayer(player);
@@ -26,8 +26,8 @@ package client.command.commands.gm2;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.command.Command; import client.command.Command;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
public class ClearSlotCommand extends Command { public class ClearSlotCommand extends Command {
@@ -46,79 +46,79 @@ public class ClearSlotCommand extends Command {
switch (type) { switch (type) {
case "all": case "all":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.EQUIP).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, false);
} }
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.USE).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.USE).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, (byte) i, tempItem.getQuantity(), false, false);
} }
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.ETC).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.ETC, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.ETC, (byte) i, tempItem.getQuantity(), false, false);
} }
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.SETUP).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.SETUP).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, false);
} }
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.CASH).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.CASH).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.CASH, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("All Slots Cleared."); player.yellowMessage("All Slots Cleared.");
break; break;
case "equip": case "equip":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.EQUIP).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.EQUIP, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("Equipment Slot Cleared."); player.yellowMessage("Equipment Slot Cleared.");
break; break;
case "use": case "use":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.USE).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.USE).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("Use Slot Cleared."); player.yellowMessage("Use Slot Cleared.");
break; break;
case "setup": case "setup":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.SETUP).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.SETUP).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.SETUP, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("Set-Up Slot Cleared."); player.yellowMessage("Set-Up Slot Cleared.");
break; break;
case "etc": case "etc":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.ETC).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.ETC, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.ETC, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("ETC Slot Cleared."); player.yellowMessage("ETC Slot Cleared.");
break; break;
case "cash": case "cash":
for (int i = 0; i < 101; i++) { for (int i = 0; i < 101; i++) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.CASH).getItem((byte) i); Item tempItem = c.getPlayer().getInventory(InventoryType.CASH).getItem((byte) i);
if (tempItem == null) if (tempItem == null)
continue; continue;
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, (byte) i, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.CASH, (byte) i, tempItem.getQuantity(), false, false);
} }
player.yellowMessage("Cash Slot Cleared."); player.yellowMessage("Cash Slot Cleared.");
break; break;
@@ -26,8 +26,8 @@ package client.command.commands.gm2;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.command.Command; import client.command.Command;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet; import client.inventory.MaplePet;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
@@ -94,7 +94,7 @@ public class ItemDropCommand extends Command {
} }
Item toDrop; Item toDrop;
if (ItemConstants.getInventoryType(itemId) == MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(itemId) == InventoryType.EQUIP) {
toDrop = ii.getEquipById(itemId); toDrop = ii.getEquipById(itemId);
} else { } else {
toDrop = new Item(itemId, (short) 0, quantity); toDrop = new Item(itemId, (short) 0, quantity);
@@ -26,8 +26,8 @@ package client.command.commands.gm2;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.command.Command; import client.command.Command;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -40,7 +40,7 @@ public class RechargeCommand extends Command {
public void execute(MapleClient c, String[] params) { public void execute(MapleClient c, String[] params) {
MapleCharacter player = c.getPlayer(); MapleCharacter player = c.getPlayer();
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
for (Item torecharge : c.getPlayer().getInventory(MapleInventoryType.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()));
c.getPlayer().forceUpdateItem(torecharge); c.getPlayer().forceUpdateItem(torecharge);
@@ -27,8 +27,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.command.Command; import client.command.Command;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -57,8 +57,8 @@ public class ProItemCommand extends Command {
short stat = (short) Math.max(0, Short.parseShort(params[1])); short stat = (short) Math.max(0, Short.parseShort(params[1]));
short spdjmp = params.length >= 3 ? (short) Math.max(0, Short.parseShort(params[2])) : 0; short spdjmp = params.length >= 3 ? (short) Math.max(0, Short.parseShort(params[2])) : 0;
MapleInventoryType type = ItemConstants.getInventoryType(itemid); InventoryType type = ItemConstants.getInventoryType(itemid);
if (type.equals(MapleInventoryType.EQUIP)) { if (type.equals(InventoryType.EQUIP)) {
Item it = ii.getEquipById(itemid); Item it = ii.getEquipById(itemid);
it.setOwner(player.getName()); it.setOwner(player.getName());
@@ -28,7 +28,7 @@ import client.MapleClient;
import client.command.Command; import client.command.Command;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
public class SetEqStatCommand extends Command { public class SetEqStatCommand extends Command {
@@ -46,7 +46,7 @@ public class SetEqStatCommand extends Command {
short newStat = (short) Math.max(0, Integer.parseInt(params[0])); short newStat = (short) Math.max(0, Integer.parseInt(params[0]));
short newSpdJmp = params.length >= 2 ? (short) Integer.parseInt(params[1]) : 0; short newSpdJmp = params.length >= 2 ? (short) Integer.parseInt(params[1]) : 0;
Inventory equip = player.getInventory(MapleInventoryType.EQUIP); Inventory equip = player.getInventory(InventoryType.EQUIP);
for (byte i = 1; i <= equip.getSlotLimit(); i++) { for (byte i = 1; i <= equip.getSlotLimit(); i++) {
try { try {
@@ -23,8 +23,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.MapleSkinColor; import client.MapleSkinColor;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig; import config.YamlConfig;
import net.server.Server; import net.server.Server;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -58,7 +58,7 @@ public abstract class CharacterFactory {
newchar.setJob(recipe.getJob()); newchar.setJob(recipe.getJob());
newchar.setMapId(recipe.getMap()); newchar.setMapId(recipe.getMap());
Inventory equipped = newchar.getInventory(MapleInventoryType.EQUIPPED); Inventory equipped = newchar.getInventory(InventoryType.EQUIPPED);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.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();
@@ -21,15 +21,16 @@ package client.creator;
import client.MapleJob; import client.MapleJob;
import client.Skill; import client.Skill;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig; import config.YamlConfig;
import java.util.concurrent.atomic.AtomicInteger; import tools.Pair;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import tools.Pair; import java.util.concurrent.atomic.AtomicInteger;
/** /**
* *
@@ -44,8 +45,8 @@ public class CharacterFactoryRecipe {
private int meso = 0; private int meso = 0;
private List<Pair<Skill, Integer>> skills = new LinkedList<>(); private List<Pair<Skill, Integer>> skills = new LinkedList<>();
private List<Pair<Item, MapleInventoryType>> itemsWithType = new LinkedList<>(); private List<Pair<Item, InventoryType>> itemsWithType = new LinkedList<>();
private Map<MapleInventoryType, AtomicInteger> runningTypePosition = new LinkedHashMap<>(); private Map<InventoryType, AtomicInteger> runningTypePosition = new LinkedHashMap<>();
public CharacterFactoryRecipe(MapleJob job, int level, int map, int top, int bottom, int shoes, int weapon) { public CharacterFactoryRecipe(MapleJob job, int level, int map, int top, int bottom, int shoes, int weapon) {
this.job = job; this.job = job;
@@ -107,10 +108,10 @@ public class CharacterFactoryRecipe {
} }
public void addStartingEquipment(Item eqpItem) { public void addStartingEquipment(Item eqpItem) {
itemsWithType.add(new Pair<>(eqpItem, MapleInventoryType.EQUIP)); itemsWithType.add(new Pair<>(eqpItem, InventoryType.EQUIP));
} }
public void addStartingItem(int itemid, int quantity, MapleInventoryType itemType) { public void addStartingItem(int itemid, int quantity, InventoryType itemType) {
AtomicInteger p = runningTypePosition.get(itemType); AtomicInteger p = runningTypePosition.get(itemType);
if(p == null) { if(p == null) {
p = new AtomicInteger(0); p = new AtomicInteger(0);
@@ -188,7 +189,7 @@ public class CharacterFactoryRecipe {
return skills; return skills;
} }
public List<Pair<Item, MapleInventoryType>> getStartingItems() { public List<Pair<Item, InventoryType>> getStartingItems() {
return itemsWithType; return itemsWithType;
} }
} }
@@ -23,7 +23,7 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
/** /**
* *
@@ -33,11 +33,11 @@ public class BeginnerCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(MapleJob job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(MapleJob 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);
giveItem(recipe, 4161001, 1, MapleInventoryType.ETC); giveItem(recipe, 4161001, 1, InventoryType.ETC);
return recipe; return recipe;
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -23,7 +23,7 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
/** /**
* *
@@ -33,11 +33,11 @@ public class LegendCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(MapleJob job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(MapleJob 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);
giveItem(recipe, 4161048, 1, MapleInventoryType.ETC); giveItem(recipe, 4161048, 1, InventoryType.ETC);
return recipe; return recipe;
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -23,7 +23,7 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
/** /**
* *
@@ -33,11 +33,11 @@ public class NoblesseCreator extends CharacterFactory {
private static CharacterFactoryRecipe createRecipe(MapleJob job, int level, int map, int top, int bottom, int shoes, int weapon) { private static CharacterFactoryRecipe createRecipe(MapleJob 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);
giveItem(recipe, 4161047, 1, MapleInventoryType.ETC); giveItem(recipe, 4161047, 1, InventoryType.ETC);
return recipe; return recipe;
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -23,8 +23,8 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
/** /**
@@ -53,9 +53,9 @@ public class BowmanCreator extends CharacterFactory {
giveEquipment(recipe, ii, weapons[i]); giveEquipment(recipe, ii, weapons[i]);
} }
giveItem(recipe, 2000002, 100, MapleInventoryType.USE); giveItem(recipe, 2000002, 100, InventoryType.USE);
giveItem(recipe, 2000003, 100, MapleInventoryType.USE); giveItem(recipe, 2000003, 100, InventoryType.USE);
giveItem(recipe, 3010000, 1, MapleInventoryType.SETUP); giveItem(recipe, 3010000, 1, InventoryType.SETUP);
return recipe; return recipe;
} }
@@ -65,7 +65,7 @@ public class BowmanCreator extends CharacterFactory {
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -25,8 +25,8 @@ import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import constants.skills.Magician; import constants.skills.Magician;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -61,9 +61,9 @@ public class MagicianCreator extends CharacterFactory {
giveEquipment(recipe, ii, weapons[i]); giveEquipment(recipe, ii, weapons[i]);
} }
giveItem(recipe, 2000001, 100, MapleInventoryType.USE); giveItem(recipe, 2000001, 100, InventoryType.USE);
giveItem(recipe, 2000006, 100, MapleInventoryType.USE); giveItem(recipe, 2000006, 100, InventoryType.USE);
giveItem(recipe, 3010000, 1, MapleInventoryType.SETUP); giveItem(recipe, 3010000, 1, InventoryType.SETUP);
if(improveSp > 0) { if(improveSp > 0) {
improveSp += 5; improveSp += 5;
@@ -88,7 +88,7 @@ public class MagicianCreator extends CharacterFactory {
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -23,8 +23,8 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
/** /**
@@ -55,11 +55,11 @@ public class PirateCreator extends CharacterFactory {
giveEquipment(recipe, ii, weapons[i]); giveEquipment(recipe, ii, weapons[i]);
} }
giveItem(recipe, 2330000, 800, MapleInventoryType.USE); giveItem(recipe, 2330000, 800, InventoryType.USE);
giveItem(recipe, 2000002, 100, MapleInventoryType.USE); giveItem(recipe, 2000002, 100, InventoryType.USE);
giveItem(recipe, 2000003, 100, MapleInventoryType.USE); giveItem(recipe, 2000003, 100, InventoryType.USE);
giveItem(recipe, 3010000, 1, MapleInventoryType.SETUP); giveItem(recipe, 3010000, 1, InventoryType.SETUP);
return recipe; return recipe;
} }
@@ -69,7 +69,7 @@ public class PirateCreator extends CharacterFactory {
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -23,8 +23,8 @@ import client.MapleClient;
import client.MapleJob; import client.MapleJob;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
/** /**
@@ -53,11 +53,11 @@ public class ThiefCreator extends CharacterFactory {
giveEquipment(recipe, ii, weapons[i]); giveEquipment(recipe, ii, weapons[i]);
} }
giveItem(recipe, 2070000, 500, MapleInventoryType.USE); giveItem(recipe, 2070000, 500, InventoryType.USE);
giveItem(recipe, 2000002, 100, MapleInventoryType.USE); giveItem(recipe, 2000002, 100, InventoryType.USE);
giveItem(recipe, 2000003, 100, MapleInventoryType.USE); giveItem(recipe, 2000003, 100, InventoryType.USE);
giveItem(recipe, 3010000, 1, MapleInventoryType.SETUP); giveItem(recipe, 3010000, 1, InventoryType.SETUP);
return recipe; return recipe;
} }
@@ -67,7 +67,7 @@ public class ThiefCreator extends CharacterFactory {
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
@@ -25,8 +25,8 @@ import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import client.creator.CharacterFactory; import client.creator.CharacterFactory;
import client.creator.CharacterFactoryRecipe; import client.creator.CharacterFactoryRecipe;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import constants.skills.Warrior; import constants.skills.Warrior;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -76,9 +76,9 @@ public class WarriorCreator extends CharacterFactory {
} }
} }
giveItem(recipe, 2000002, 100, MapleInventoryType.USE); giveItem(recipe, 2000002, 100, InventoryType.USE);
giveItem(recipe, 2000003, 100, MapleInventoryType.USE); giveItem(recipe, 2000003, 100, InventoryType.USE);
giveItem(recipe, 3010000, 1, MapleInventoryType.SETUP); giveItem(recipe, 3010000, 1, InventoryType.SETUP);
return recipe; return recipe;
} }
@@ -88,7 +88,7 @@ public class WarriorCreator extends CharacterFactory {
recipe.addStartingEquipment(nEquip); recipe.addStartingEquipment(nEquip);
} }
private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, MapleInventoryType itemType) { private static void giveItem(CharacterFactoryRecipe recipe, int itemid, int quantity, InventoryType itemType) {
recipe.addStartingItem(itemid, quantity, itemType); recipe.addStartingItem(itemid, quantity, itemType);
} }
+20 -20
View File
@@ -41,14 +41,14 @@ import java.util.concurrent.locks.Lock;
*/ */
public class Inventory implements Iterable<Item> { public class Inventory implements Iterable<Item> {
protected final Map<Short, Item> inventory; protected final Map<Short, Item> inventory;
protected final MapleInventoryType type; protected final InventoryType type;
protected final Lock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.INVENTORY, true); protected final Lock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.INVENTORY, true);
protected MapleCharacter owner; protected MapleCharacter owner;
protected byte slotLimit; protected byte slotLimit;
protected boolean checked = false; protected boolean checked = false;
public Inventory(MapleCharacter mc, MapleInventoryType type, byte slotLimit) { public Inventory(MapleCharacter mc, InventoryType type, byte slotLimit) {
this.owner = mc; this.owner = mc;
this.inventory = new LinkedHashMap<>(); this.inventory = new LinkedHashMap<>();
this.type = type; this.type = type;
@@ -56,11 +56,11 @@ public class Inventory implements Iterable<Item> {
} }
public boolean isExtendableInventory() { // not sure about cash, basing this on the previous one. public boolean isExtendableInventory() { // not sure about cash, basing this on the previous one.
return !(type.equals(MapleInventoryType.UNDEFINED) || type.equals(MapleInventoryType.EQUIPPED) || type.equals(MapleInventoryType.CASH)); return !(type.equals(InventoryType.UNDEFINED) || type.equals(InventoryType.EQUIPPED) || type.equals(InventoryType.CASH));
} }
public boolean isEquipInventory() { public boolean isEquipInventory() {
return type.equals(MapleInventoryType.EQUIP) || type.equals(MapleInventoryType.EQUIPPED); return type.equals(InventoryType.EQUIP) || type.equals(InventoryType.EQUIPPED);
} }
public byte getSlotLimit() { public byte getSlotLimit() {
@@ -223,7 +223,7 @@ public class Inventory implements Iterable<Item> {
} }
public void addItemFromDB(Item item) { public void addItemFromDB(Item item) {
if (item.getPosition() < 0 && !type.equals(MapleInventoryType.EQUIPPED)) { if (item.getPosition() < 0 && !type.equals(InventoryType.EQUIPPED)) {
return; return;
} }
addSlotFromDB(item.getPosition(), item); addSlotFromDB(item.getPosition(), item);
@@ -246,7 +246,7 @@ public class Inventory implements Iterable<Item> {
inventory.put(dSlot, source); inventory.put(dSlot, source);
inventory.remove(sSlot); inventory.remove(sSlot);
} else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && isSameOwner(source, target)) { } else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && isSameOwner(source, target)) {
if (type.getType() == MapleInventoryType.EQUIP.getType() || type.getType() == MapleInventoryType.CASH.getType()) { if (type.getType() == InventoryType.EQUIP.getType() || type.getType() == InventoryType.CASH.getType()) {
swap(target, source); swap(target, source);
} else if (source.getQuantity() + target.getQuantity() > slotMax) { } else if (source.getQuantity() + target.getQuantity() > slotMax) {
short rest = (short) ((source.getQuantity() + target.getQuantity()) - slotMax); short rest = (short) ((source.getQuantity() + target.getQuantity()) - slotMax);
@@ -420,11 +420,11 @@ public class Inventory implements Iterable<Item> {
} }
} }
private static boolean checkItemRestricted(List<Pair<Item, MapleInventoryType>> items) { private static boolean checkItemRestricted(List<Pair<Item, InventoryType>> items) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.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, MapleInventoryType> p : items) { for (Pair<Item, InventoryType> p : items) {
int itemid = p.getLeft().getItemId(); int itemid = p.getLeft().getItemId();
if (ii.isPickupRestricted(itemid) && p.getLeft().getQuantity() > 1) { if (ii.isPickupRestricted(itemid) && p.getLeft().getQuantity() > 1) {
return false; return false;
@@ -439,7 +439,7 @@ public class Inventory implements Iterable<Item> {
} }
public static boolean checkSpot(MapleCharacter chr, List<Item> items) { public static boolean checkSpot(MapleCharacter chr, List<Item> items) {
List<Pair<Item, MapleInventoryType>> listItems = new LinkedList<>(); List<Pair<Item, InventoryType>> listItems = new LinkedList<>();
for (Item item : items) { for (Item item : items) {
listItems.add(new Pair<>(item, item.getInventoryType())); listItems.add(new Pair<>(item, item.getInventoryType()));
} }
@@ -447,12 +447,12 @@ public class Inventory implements Iterable<Item> {
return checkSpotsAndOwnership(chr, listItems); return checkSpotsAndOwnership(chr, listItems);
} }
public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items) { public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, InventoryType>> items) {
return checkSpots(chr, items, false); return checkSpots(chr, items, false);
} }
public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items, boolean useProofInv) { public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, InventoryType>> items, boolean useProofInv) {
int invTypesSize = MapleInventoryType.values().length; int invTypesSize = InventoryType.values().length;
List<Integer> zeroedList = new ArrayList<>(invTypesSize); List<Integer> zeroedList = new ArrayList<>(invTypesSize);
for (byte i = 0; i < invTypesSize; i++) { for (byte i = 0; i < invTypesSize; i++) {
zeroedList.add(0); zeroedList.add(0);
@@ -461,7 +461,7 @@ public class Inventory implements Iterable<Item> {
return checkSpots(chr, items, zeroedList, useProofInv); return checkSpots(chr, items, zeroedList, useProofInv);
} }
public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items, List<Integer> typesSlotsUsed, boolean useProofInv) { public static boolean checkSpots(MapleCharacter chr, List<Pair<Item, InventoryType>> items, List<Integer> typesSlotsUsed, boolean useProofInv) {
// assumption: no "UNDEFINED" or "EQUIPPED" items shall be tested here, all counts are >= 0. // assumption: no "UNDEFINED" or "EQUIPPED" items shall be tested here, all counts are >= 0.
if (!checkItemRestricted(items)) { if (!checkItemRestricted(items)) {
@@ -471,7 +471,7 @@ public class Inventory implements Iterable<Item> {
Map<Integer, List<Integer>> rcvItems = new LinkedHashMap<>(); Map<Integer, List<Integer>> rcvItems = new LinkedHashMap<>();
Map<Integer, Byte> rcvTypes = new LinkedHashMap<>(); Map<Integer, Byte> rcvTypes = new LinkedHashMap<>();
for (Pair<Item, MapleInventoryType> item : items) { for (Pair<Item, InventoryType> item : items) {
Integer itemId = item.left.getItemId(); Integer itemId = item.left.getItemId();
List<Integer> qty = rcvItems.get(itemId); List<Integer> qty = rcvItems.get(itemId);
@@ -528,11 +528,11 @@ public class Inventory implements Iterable<Item> {
return (itemId.longValue() << 32L) + fnvHash32(owner); return (itemId.longValue() << 32L) + fnvHash32(owner);
} }
public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items) { public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, InventoryType>> items) {
return checkSpotsAndOwnership(chr, items, false); return checkSpotsAndOwnership(chr, items, false);
} }
public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items, boolean useProofInv) { public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, InventoryType>> items, boolean useProofInv) {
List<Integer> zeroedList = new ArrayList<>(5); List<Integer> zeroedList = new ArrayList<>(5);
for (byte i = 0; i < 5; i++) { for (byte i = 0; i < 5; i++) {
zeroedList.add(0); zeroedList.add(0);
@@ -541,7 +541,7 @@ public class Inventory implements Iterable<Item> {
return checkSpotsAndOwnership(chr, items, zeroedList, useProofInv); return checkSpotsAndOwnership(chr, items, zeroedList, useProofInv);
} }
public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items, List<Integer> typesSlotsUsed, boolean useProofInv) { public static boolean checkSpotsAndOwnership(MapleCharacter chr, List<Pair<Item, InventoryType>> items, List<Integer> typesSlotsUsed, boolean useProofInv) {
//assumption: no "UNDEFINED" or "EQUIPPED" items shall be tested here, all counts are >= 0 and item list to be checked is a legal one. //assumption: no "UNDEFINED" or "EQUIPPED" items shall be tested here, all counts are >= 0 and item list to be checked is a legal one.
if (!checkItemRestricted(items)) { if (!checkItemRestricted(items)) {
@@ -552,7 +552,7 @@ public class Inventory implements Iterable<Item> {
Map<Long, Byte> rcvTypes = new LinkedHashMap<>(); Map<Long, Byte> rcvTypes = new LinkedHashMap<>();
Map<Long, String> rcvOwners = new LinkedHashMap<>(); Map<Long, String> rcvOwners = new LinkedHashMap<>();
for (Pair<Item, MapleInventoryType> item : items) { for (Pair<Item, InventoryType> item : items) {
Long itemHash = hashKey(item.left.getItemId(), item.left.getOwner()); Long itemHash = hashKey(item.left.getItemId(), item.left.getOwner());
List<Integer> qty = rcvItems.get(itemHash); List<Integer> qty = rcvItems.get(itemHash);
@@ -597,7 +597,7 @@ public class Inventory implements Iterable<Item> {
return true; return true;
} }
public MapleInventoryType getType() { public InventoryType getType() {
return type; return type;
} }
@@ -610,7 +610,7 @@ public class Inventory implements Iterable<Item> {
boolean isRing = false; boolean isRing = false;
Equip equip = null; Equip equip = null;
for (Item item : list()) { for (Item item : list()) {
if (item.getInventoryType().equals(MapleInventoryType.EQUIP)) { if (item.getInventoryType().equals(InventoryType.EQUIP)) {
equip = (Equip) item; equip = (Equip) item;
isRing = equip.getRingId() > -1; isRing = equip.getRingId() > -1;
} }
@@ -27,7 +27,7 @@ import client.MapleCharacter;
public class InventoryProof extends Inventory { public class InventoryProof extends Inventory {
public InventoryProof(MapleCharacter mc) { public InventoryProof(MapleCharacter mc) {
super(mc, MapleInventoryType.CANHOLD, (byte) 0); super(mc, InventoryType.CANHOLD, (byte) 0);
} }
public void cloneContents(Inventory inv) { public void cloneContents(Inventory inv) {
@@ -24,7 +24,7 @@ package client.inventory;
/** /**
* @author Matze * @author Matze
*/ */
public enum MapleInventoryType { public enum InventoryType {
UNDEFINED(0), UNDEFINED(0),
EQUIP(1), EQUIP(1),
USE(2), USE(2),
@@ -33,9 +33,10 @@ public enum MapleInventoryType {
CASH(5), CASH(5),
CANHOLD(6), //Proof-guard for inserting after removal checks CANHOLD(6), //Proof-guard for inserting after removal checks
EQUIPPED(-1); //Seems nexon screwed something when removing an item T_T EQUIPPED(-1); //Seems nexon screwed something when removing an item T_T
final byte type; final byte type;
private MapleInventoryType(int type) { InventoryType(int type) {
this.type = (byte) type; this.type = (byte) type;
} }
@@ -47,8 +48,8 @@ public enum MapleInventoryType {
return (short) (2 << type); return (short) (2 << type);
} }
public static MapleInventoryType getByType(byte type) { public static InventoryType getByType(byte type) {
for (MapleInventoryType l : MapleInventoryType.values()) { for (InventoryType l : InventoryType.values()) {
if (l.getType() == type) { if (l.getType() == type) {
return l; return l;
} }
@@ -56,18 +57,14 @@ public enum MapleInventoryType {
return null; return null;
} }
public static MapleInventoryType getByWZName(String name) { public static InventoryType getByWZName(String name) {
if (name.equals("Install")) { return switch (name) {
return SETUP; case "Install" -> SETUP;
} else if (name.equals("Consume")) { case "Consume" -> USE;
return USE; case "Etc" -> ETC;
} else if (name.equals("Etc")) { case "Cash" -> CASH;
return ETC; case "Pet" -> CASH;
} else if (name.equals("Cash")) { default -> UNDEFINED;
return CASH; };
} else if (name.equals("Pet")) {
return CASH;
}
return UNDEFINED;
} }
} }
+4 -3
View File
@@ -21,13 +21,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package client.inventory; package client.inventory;
import client.inventory.manipulator.MapleKarmaManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import client.inventory.manipulator.MapleKarmaManipulator;
import server.MapleItemInformationProvider;
public class Item implements Comparable<Item> { public class Item implements Comparable<Item> {
@@ -104,7 +105,7 @@ public class Item implements Comparable<Item> {
return quantity; return quantity;
} }
public MapleInventoryType getInventoryType() { public InventoryType getInventoryType() {
return ItemConstants.getInventoryType(id); return ItemConstants.getInventoryType(id);
} }
+22 -22
View File
@@ -66,16 +66,16 @@ public enum ItemFactory {
return value; return value;
} }
public List<Pair<Item, MapleInventoryType>> loadItems(int id, boolean login) throws SQLException { public List<Pair<Item, InventoryType>> loadItems(int id, boolean login) throws SQLException {
if(value != 6) return loadItemsCommon(id, login); if(value != 6) return loadItemsCommon(id, login);
else return loadItemsMerchant(id, login); else return loadItemsMerchant(id, login);
} }
public void saveItems(List<Pair<Item, MapleInventoryType>> items, int id, Connection con) throws SQLException { public void saveItems(List<Pair<Item, InventoryType>> items, int id, Connection con) throws SQLException {
saveItems(items, null, id, con); saveItems(items, null, id, con);
} }
public void saveItems(List<Pair<Item, MapleInventoryType>> items, List<Short> bundlesList, int id, Connection con) throws SQLException { public void saveItems(List<Pair<Item, InventoryType>> items, List<Short> bundlesList, int id, Connection con) throws SQLException {
// thanks Arufonsu, MedicOP, BHB for pointing a "synchronized" bottleneck here // thanks Arufonsu, MedicOP, BHB for pointing a "synchronized" bottleneck here
if(value != 6) saveItemsCommon(items, id, con); if(value != 6) saveItemsCommon(items, id, con);
@@ -126,7 +126,7 @@ public enum ItemFactory {
query.append("WHERE accountterm.`"); query.append("WHERE accountterm.`");
query.append(isAccount ? "accountid" : "characterid"); query.append(isAccount ? "accountid" : "characterid");
query.append("` = ?"); query.append("` = ?");
query.append(login ? " AND `inventorytype` = " + MapleInventoryType.EQUIPPED.getType() : ""); query.append(login ? " AND `inventorytype` = " + InventoryType.EQUIPPED.getType() : "");
try (Connection con = DatabaseConnection.getConnection()) { try (Connection con = DatabaseConnection.getConnection()) {
try (PreparedStatement ps = con.prepareStatement(query.toString())) { try (PreparedStatement ps = con.prepareStatement(query.toString())) {
@@ -144,8 +144,8 @@ public enum ItemFactory {
return items; return items;
} }
private List<Pair<Item, MapleInventoryType>> loadItemsCommon(int id, boolean login) throws SQLException { private List<Pair<Item, InventoryType>> loadItemsCommon(int id, boolean login) throws SQLException {
List<Pair<Item, MapleInventoryType>> items = new ArrayList<>(); List<Pair<Item, InventoryType>> items = new ArrayList<>();
try (Connection con = DatabaseConnection.getConnection()) { try (Connection con = DatabaseConnection.getConnection()) {
StringBuilder query = new StringBuilder(); StringBuilder query = new StringBuilder();
@@ -153,7 +153,7 @@ public enum ItemFactory {
query.append(account ? "accountid" : "characterid").append("` = ?"); query.append(account ? "accountid" : "characterid").append("` = ?");
if (login) { if (login) {
query.append(" AND `inventorytype` = ").append(MapleInventoryType.EQUIPPED.getType()); query.append(" AND `inventorytype` = ").append(InventoryType.EQUIPPED.getType());
} }
try (PreparedStatement ps = con.prepareStatement(query.toString())) { try (PreparedStatement ps = con.prepareStatement(query.toString())) {
@@ -162,9 +162,9 @@ public enum ItemFactory {
try (ResultSet rs = ps.executeQuery()) { try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) { while (rs.next()) {
MapleInventoryType mit = MapleInventoryType.getByType(rs.getByte("inventorytype")); InventoryType mit = InventoryType.getByType(rs.getByte("inventorytype"));
if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { if (mit.equals(InventoryType.EQUIP) || mit.equals(InventoryType.EQUIPPED)) {
items.add(new Pair<>(loadEquipFromResultSet(rs), mit)); items.add(new Pair<>(loadEquipFromResultSet(rs), mit));
} else { } else {
int petid = rs.getInt("petid"); int petid = rs.getInt("petid");
@@ -186,7 +186,7 @@ public enum ItemFactory {
return items; return items;
} }
private void saveItemsCommon(List<Pair<Item, MapleInventoryType>> items, int id, Connection con) throws SQLException { private void saveItemsCommon(List<Pair<Item, InventoryType>> items, int id, Connection con) throws SQLException {
Lock lock = locks[id % lockCount]; Lock lock = locks[id % lockCount];
lock.lock(); lock.lock();
try { try {
@@ -202,9 +202,9 @@ public enum ItemFactory {
try (PreparedStatement psItem = con.prepareStatement("INSERT INTO `inventoryitems` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) { try (PreparedStatement psItem = con.prepareStatement("INSERT INTO `inventoryitems` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) {
if (!items.isEmpty()) { if (!items.isEmpty()) {
for (Pair<Item, MapleInventoryType> pair : items) { for (Pair<Item, InventoryType> pair : items) {
Item item = pair.getLeft(); Item item = pair.getLeft();
MapleInventoryType mit = pair.getRight(); InventoryType mit = pair.getRight();
psItem.setInt(1, value); psItem.setInt(1, value);
psItem.setString(2, account ? null : String.valueOf(id)); psItem.setString(2, account ? null : String.valueOf(id));
psItem.setString(3, account ? String.valueOf(id) : null); psItem.setString(3, account ? String.valueOf(id) : null);
@@ -219,7 +219,7 @@ public enum ItemFactory {
psItem.setString(12, item.getGiftFrom()); psItem.setString(12, item.getGiftFrom());
psItem.executeUpdate(); psItem.executeUpdate();
if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { if (mit.equals(InventoryType.EQUIP) || mit.equals(InventoryType.EQUIPPED)) {
try (PreparedStatement psEquip = con.prepareStatement("INSERT INTO `inventoryequipment` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { try (PreparedStatement psEquip = con.prepareStatement("INSERT INTO `inventoryequipment` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
try (ResultSet rs = psItem.getGeneratedKeys()) { try (ResultSet rs = psItem.getGeneratedKeys()) {
if (!rs.next()) { if (!rs.next()) {
@@ -263,8 +263,8 @@ public enum ItemFactory {
} }
} }
private List<Pair<Item, MapleInventoryType>> loadItemsMerchant(int id, boolean login) throws SQLException { private List<Pair<Item, InventoryType>> loadItemsMerchant(int id, boolean login) throws SQLException {
List<Pair<Item, MapleInventoryType>> items = new ArrayList<>(); List<Pair<Item, InventoryType>> items = new ArrayList<>();
try (Connection con = DatabaseConnection.getConnection()) { try (Connection con = DatabaseConnection.getConnection()) {
StringBuilder query = new StringBuilder(); StringBuilder query = new StringBuilder();
@@ -272,7 +272,7 @@ public enum ItemFactory {
query.append(account ? "accountid" : "characterid").append("` = ?"); query.append(account ? "accountid" : "characterid").append("` = ?");
if (login) { if (login) {
query.append(" AND `inventorytype` = ").append(MapleInventoryType.EQUIPPED.getType()); query.append(" AND `inventorytype` = ").append(InventoryType.EQUIPPED.getType());
} }
try (PreparedStatement ps = con.prepareStatement(query.toString())) { try (PreparedStatement ps = con.prepareStatement(query.toString())) {
@@ -292,9 +292,9 @@ public enum ItemFactory {
} }
} }
MapleInventoryType mit = MapleInventoryType.getByType(rs.getByte("inventorytype")); InventoryType mit = InventoryType.getByType(rs.getByte("inventorytype"));
if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { if (mit.equals(InventoryType.EQUIP) || mit.equals(InventoryType.EQUIPPED)) {
items.add(new Pair<>(loadEquipFromResultSet(rs), mit)); items.add(new Pair<>(loadEquipFromResultSet(rs), mit));
} else { } else {
if (bundles > 0) { if (bundles > 0) {
@@ -318,7 +318,7 @@ public enum ItemFactory {
return items; return items;
} }
private void saveItemsMerchant(List<Pair<Item, MapleInventoryType>> items, List<Short> bundlesList, int id, Connection con) throws SQLException { private void saveItemsMerchant(List<Pair<Item, InventoryType>> items, List<Short> bundlesList, int id, Connection con) throws SQLException {
Lock lock = locks[id % lockCount]; Lock lock = locks[id % lockCount];
lock.lock(); lock.lock();
try { try {
@@ -338,10 +338,10 @@ public enum ItemFactory {
} }
int i = 0; int i = 0;
for (Pair<Item, MapleInventoryType> pair : items) { for (Pair<Item, InventoryType> pair : items) {
final Item item = pair.getLeft(); final Item item = pair.getLeft();
final Short bundles = bundlesList.get(i); final Short bundles = bundlesList.get(i);
final MapleInventoryType mit = pair.getRight(); final InventoryType mit = pair.getRight();
i++; i++;
final int genKey; final int genKey;
@@ -379,7 +379,7 @@ public enum ItemFactory {
} }
// Equipment // Equipment
if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { if (mit.equals(InventoryType.EQUIP) || mit.equals(InventoryType.EQUIPPED)) {
try (PreparedStatement ps = con.prepareStatement("INSERT INTO `inventoryequipment` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { try (PreparedStatement ps = con.prepareStatement("INSERT INTO `inventoryequipment` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
ps.setInt(1, genKey); ps.setInt(1, genKey);
+3 -3
View File
@@ -223,7 +223,7 @@ public class MaplePet extends Item {
owner.getMap().broadcastMessage(PacketCreator.petFoodResponse(owner.getId(), slot, enjoyed, false)); owner.getMap().broadcastMessage(PacketCreator.petFoodResponse(owner.getId(), slot, enjoyed, false));
saveToDb(); saveToDb();
Item petz = owner.getInventory(MapleInventoryType.CASH).getItem(getPosition()); Item petz = owner.getInventory(InventoryType.CASH).getItem(getPosition());
if (petz != null) if (petz != null)
owner.forceUpdateItem(petz); owner.forceUpdateItem(petz);
} }
@@ -284,7 +284,7 @@ public class MaplePet extends Item {
this.petFlag |= flag.getValue(); this.petFlag |= flag.getValue();
saveToDb(); saveToDb();
Item petz = owner.getInventory(MapleInventoryType.CASH).getItem(getPosition()); Item petz = owner.getInventory(InventoryType.CASH).getItem(getPosition());
if (petz != null) if (petz != null)
owner.forceUpdateItem(petz); owner.forceUpdateItem(petz);
} }
@@ -293,7 +293,7 @@ public class MaplePet extends Item {
this.petFlag &= 0xFFFFFFFF ^ flag.getValue(); this.petFlag &= 0xFFFFFFFF ^ flag.getValue();
saveToDb(); saveToDb();
Item petz = owner.getInventory(MapleInventoryType.CASH).getItem(getPosition()); Item petz = owner.getInventory(InventoryType.CASH).getItem(getPosition());
if (petz != null) if (petz != null)
owner.forceUpdateItem(petz); owner.forceUpdateItem(petz);
} }
@@ -64,7 +64,7 @@ public class MapleInventoryManipulator {
public static boolean addById(MapleClient c, int itemId, short quantity, String owner, int petid, short flag, long expiration) { public static boolean addById(MapleClient c, int itemId, short quantity, String owner, int petid, short flag, long expiration) {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
MapleInventoryType type = ItemConstants.getInventoryType(itemId); InventoryType type = ItemConstants.getInventoryType(itemId);
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
inv.lockInventory(); inv.lockInventory();
@@ -75,9 +75,9 @@ public class MapleInventoryManipulator {
} }
} }
private static boolean addByIdInternal(MapleClient c, MapleCharacter chr, MapleInventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) { private static boolean addByIdInternal(MapleClient c, MapleCharacter chr, InventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
if (!type.equals(MapleInventoryType.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);
if (!ItemConstants.isRechargeable(itemId) && petid == -1) { if (!ItemConstants.isRechargeable(itemId) && petid == -1) {
@@ -167,7 +167,7 @@ public class MapleInventoryManipulator {
public static boolean addFromDrop(MapleClient c, Item item, boolean show, int petId) { public static boolean addFromDrop(MapleClient c, Item item, boolean show, int petId) {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
MapleInventoryType type = item.getInventoryType(); InventoryType type = item.getInventoryType();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
inv.lockInventory(); inv.lockInventory();
@@ -178,7 +178,7 @@ public class MapleInventoryManipulator {
} }
} }
private static boolean addFromDropInternal(MapleClient c, MapleCharacter chr, MapleInventoryType type, Inventory inv, Item item, boolean show, int petId) { private static boolean addFromDropInternal(MapleClient c, MapleCharacter chr, InventoryType type, Inventory inv, Item item, boolean show, int petId) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.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)) {
@@ -188,7 +188,7 @@ public class MapleInventoryManipulator {
} }
short quantity = item.getQuantity(); short quantity = item.getQuantity();
if (!type.equals(MapleInventoryType.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);
if (!ItemConstants.isRechargeable(itemid) && petId == -1) { if (!ItemConstants.isRechargeable(itemid) && petId == -1) {
@@ -274,19 +274,19 @@ public class MapleInventoryManipulator {
public static boolean checkSpace(MapleClient c, int itemid, int quantity, String owner) { public static boolean checkSpace(MapleClient c, int itemid, int quantity, String owner) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleInventoryType type = ItemConstants.getInventoryType(itemid); InventoryType type = ItemConstants.getInventoryType(itemid);
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
if (ii.isPickupRestricted(itemid)) { if (ii.isPickupRestricted(itemid)) {
if (haveItemWithId(inv, itemid)) { if (haveItemWithId(inv, itemid)) {
return false; return false;
} else if (ItemConstants.isEquipment(itemid) && haveItemWithId(chr.getInventory(MapleInventoryType.EQUIPPED), itemid)) { } else if (ItemConstants.isEquipment(itemid) && haveItemWithId(chr.getInventory(InventoryType.EQUIPPED), itemid)) {
return false; return false;
} }
} }
if (!type.equals(MapleInventoryType.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);
@@ -329,19 +329,19 @@ public class MapleInventoryManipulator {
int returnValue; int returnValue;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleInventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : MapleInventoryType.CANHOLD; InventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : InventoryType.CANHOLD;
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
if (ii.isPickupRestricted(itemid)) { if (ii.isPickupRestricted(itemid)) {
if (haveItemWithId(inv, itemid)) { if (haveItemWithId(inv, itemid)) {
return 0; return 0;
} else if (ItemConstants.isEquipment(itemid) && haveItemWithId(chr.getInventory(MapleInventoryType.EQUIPPED), itemid)) { } else if (ItemConstants.isEquipment(itemid) && haveItemWithId(chr.getInventory(InventoryType.EQUIPPED), itemid)) {
return 0; // thanks Captain & Aika & Vcoc for pointing out inventory checkup on player trades missing out one-of-a-kind items. return 0; // thanks Captain & Aika & Vcoc for pointing out inventory checkup on player trades missing out one-of-a-kind items.
} }
} }
if (!type.equals(MapleInventoryType.EQUIP)) { if (!type.equals(InventoryType.EQUIP)) {
short slotMax = ii.getSlotMax(c, itemid); short slotMax = ii.getSlotMax(c, itemid);
final int numSlotsNeeded; final int numSlotsNeeded;
@@ -383,17 +383,17 @@ public class MapleInventoryManipulator {
return returnValue; return returnValue;
} }
public static void removeFromSlot(MapleClient c, MapleInventoryType type, short slot, short quantity, boolean fromDrop) { public static void removeFromSlot(MapleClient c, InventoryType type, short slot, short quantity, boolean fromDrop) {
removeFromSlot(c, type, slot, quantity, fromDrop, false); removeFromSlot(c, type, slot, quantity, fromDrop, false);
} }
public static void removeFromSlot(MapleClient c, MapleInventoryType type, short slot, short quantity, boolean fromDrop, boolean consume) { public static void removeFromSlot(MapleClient c, InventoryType type, short slot, short quantity, boolean fromDrop, boolean consume) {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory inv = chr.getInventory(type); Inventory inv = chr.getInventory(type);
Item item = inv.getItem(slot); Item item = inv.getItem(slot);
boolean allowZero = consume && ItemConstants.isRechargeable(item.getItemId()); boolean allowZero = consume && ItemConstants.isRechargeable(item.getItemId());
if(type == MapleInventoryType.EQUIPPED) { if(type == InventoryType.EQUIPPED) {
inv.lockInventory(); inv.lockInventory();
try { try {
chr.unequippedItem((Equip) item); chr.unequippedItem((Equip) item);
@@ -413,14 +413,14 @@ public class MapleInventoryManipulator {
} }
inv.removeItem(slot, quantity, allowZero); inv.removeItem(slot, quantity, allowZero);
if(type != MapleInventoryType.CANHOLD) { if(type != InventoryType.CANHOLD) {
announceModifyInventory(c, item, fromDrop, allowZero); announceModifyInventory(c, item, fromDrop, allowZero);
} }
// thanks Robin Schulz for noticing pet issues when moving pets out of inventory // thanks Robin Schulz for noticing pet issues when moving pets out of inventory
} else { } else {
inv.removeItem(slot, quantity, allowZero); inv.removeItem(slot, quantity, allowZero);
if(type != MapleInventoryType.CANHOLD) { if(type != InventoryType.CANHOLD) {
announceModifyInventory(c, item, fromDrop, allowZero); announceModifyInventory(c, item, fromDrop, allowZero);
} }
} }
@@ -435,13 +435,13 @@ public class MapleInventoryManipulator {
} }
} }
public static void removeById(MapleClient c, MapleInventoryType type, int itemId, int quantity, boolean fromDrop, boolean consume) { public static void removeById(MapleClient c, InventoryType type, int itemId, int quantity, boolean fromDrop, boolean consume) {
int removeQuantity = quantity; int removeQuantity = quantity;
Inventory inv = c.getPlayer().getInventory(type); Inventory inv = c.getPlayer().getInventory(type);
int slotLimit = type == MapleInventoryType.EQUIPPED ? 128 : inv.getSlotLimit(); int slotLimit = type == InventoryType.EQUIPPED ? 128 : inv.getSlotLimit();
for (short i = 0; i <= slotLimit; i++) { for (short i = 0; i <= slotLimit; i++) {
Item item = inv.getItem((short) (type == MapleInventoryType.EQUIPPED ? -i : i)); Item item = inv.getItem((short) (type == InventoryType.EQUIPPED ? -i : i));
if (item != null) { if (item != null) {
if (item.getItemId() == itemId || item.getCashId() == itemId) { if (item.getItemId() == itemId || item.getCashId() == itemId) {
if (removeQuantity <= item.getQuantity()) { if (removeQuantity <= item.getQuantity()) {
@@ -455,7 +455,7 @@ public class MapleInventoryManipulator {
} }
} }
} }
if (removeQuantity > 0 && type != MapleInventoryType.CANHOLD) { if (removeQuantity > 0 && type != InventoryType.CANHOLD) {
throw new RuntimeException("[Hack] Not enough items available of Item:" + itemId + ", Quantity (After Quantity/Over Current Quantity): " + (quantity - removeQuantity) + "/" + quantity); throw new RuntimeException("[Hack] Not enough items available of Item:" + itemId + ", Quantity (After Quantity/Over Current Quantity): " + (quantity - removeQuantity) + "/" + quantity);
} }
} }
@@ -464,7 +464,7 @@ public class MapleInventoryManipulator {
return source.getOwner().equals(target.getOwner()); return source.getOwner().equals(target.getOwner());
} }
public static void move(MapleClient c, MapleInventoryType type, short src, short dst) { public static void move(MapleClient c, InventoryType type, short src, short dst) {
Inventory inv = c.getPlayer().getInventory(type); Inventory inv = c.getPlayer().getInventory(type);
if (src < 0 || dst < 0) { if (src < 0 || dst < 0) {
@@ -487,7 +487,7 @@ public class MapleInventoryManipulator {
short slotMax = ii.getSlotMax(c, source.getItemId()); short slotMax = ii.getSlotMax(c, source.getItemId());
inv.move(src, dst, slotMax); inv.move(src, dst, slotMax);
final List<ModifyInventory> mods = new ArrayList<>(); final List<ModifyInventory> mods = new ArrayList<>();
if (!(type.equals(MapleInventoryType.EQUIP) || type.equals(MapleInventoryType.CASH)) && initialTarget != null && initialTarget.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && isSameOwner(source, initialTarget)) { if (!(type.equals(InventoryType.EQUIP) || type.equals(InventoryType.CASH)) && initialTarget != null && initialTarget.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && isSameOwner(source, initialTarget)) {
if ((olddstQ + oldsrcQ) > slotMax) { if ((olddstQ + oldsrcQ) > slotMax) {
mods.add(new ModifyInventory(1, source)); mods.add(new ModifyInventory(1, source));
mods.add(new ModifyInventory(1, initialTarget)); mods.add(new ModifyInventory(1, initialTarget));
@@ -505,8 +505,8 @@ public class MapleInventoryManipulator {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory eqpInv = chr.getInventory(MapleInventoryType.EQUIP); Inventory eqpInv = chr.getInventory(InventoryType.EQUIP);
Inventory eqpdInv = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory eqpdInv = chr.getInventory(InventoryType.EQUIPPED);
Equip source = (Equip) eqpInv.getItem(src); Equip source = (Equip) eqpInv.getItem(src);
if (source == null || !ii.canWearEquipment(chr, source, dst)) { if (source == null || !ii.canWearEquipment(chr, source, dst)) {
@@ -620,8 +620,8 @@ public class MapleInventoryManipulator {
public static void unequip(MapleClient c, short src, short dst) { public static void unequip(MapleClient c, short src, short dst) {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory eqpInv = chr.getInventory(MapleInventoryType.EQUIP); Inventory eqpInv = chr.getInventory(InventoryType.EQUIP);
Inventory eqpdInv = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory eqpdInv = chr.getInventory(InventoryType.EQUIPPED);
Equip source = (Equip) eqpdInv.getItem(src); Equip source = (Equip) eqpdInv.getItem(src);
Equip target = (Equip) eqpInv.getItem(dst); Equip target = (Equip) eqpInv.getItem(dst);
@@ -679,9 +679,9 @@ public class MapleInventoryManipulator {
return false; return false;
} }
public static void drop(MapleClient c, MapleInventoryType type, short src, short quantity) { public static void drop(MapleClient c, InventoryType type, short src, short quantity) {
if (src < 0) { if (src < 0) {
type = MapleInventoryType.EQUIPPED; type = InventoryType.EQUIPPED;
} }
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
@@ -730,7 +730,7 @@ public class MapleInventoryManipulator {
map.spawnItemDrop(chr, chr, target, dropPos, true, true); map.spawnItemDrop(chr, chr, target, dropPos, true, true);
} }
} else { } else {
if (type == MapleInventoryType.EQUIPPED) { if (type == InventoryType.EQUIPPED) {
inv.lockInventory(); inv.lockInventory();
try { try {
chr.unequippedItem((Equip) source); chr.unequippedItem((Equip) source);
@@ -22,8 +22,8 @@ package client.processor.action;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import constants.game.GameConstants; import constants.game.GameConstants;
@@ -75,7 +75,7 @@ public class MakerProcessor {
p.readInt(); // 1... probably inventory type p.readInt(); // 1... probably inventory type
pos = p.readInt(); pos = p.readInt();
Item it = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((short) pos); Item it = c.getPlayer().getInventory(InventoryType.EQUIP).getItem((short) pos);
if(it != null && it.getItemId() == toCreate) { if(it != null && it.getItemId() == toCreate) {
toDisassemble = toCreate; toDisassemble = toCreate;
@@ -182,7 +182,7 @@ public class MakerProcessor {
default: default:
if(toDisassemble != -1) { if(toDisassemble != -1) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (short) pos, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.EQUIP, (short) pos, (short) 1, false);
} else { } else {
for (Pair<Integer, Integer> pair : recipe.getReqItems()) { for (Pair<Integer, Integer> pair : recipe.getReqItems()) {
c.getAbstractPlayerInteraction().gainItem(pair.getLeft(), (short) -pair.getRight(), false); c.getAbstractPlayerInteraction().gainItem(pair.getLeft(), (short) -pair.getRight(), false);
@@ -24,8 +24,8 @@ package client.processor.action;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
@@ -55,7 +55,7 @@ public class PetAutopotProcessor {
private boolean cursorOnNextAvailablePot(MapleCharacter chr) { private boolean cursorOnNextAvailablePot(MapleCharacter chr) {
if(toUseList == null) { if(toUseList == null) {
toUseList = chr.getInventory(MapleInventoryType.USE).linkedListById(itemId); toUseList = chr.getInventory(InventoryType.USE).linkedListById(itemId);
} }
toUse = null; toUse = null;
@@ -96,7 +96,7 @@ public class PetAutopotProcessor {
curHp = chr.getHp(); curHp = chr.getHp();
curMp = chr.getMp(); curMp = chr.getMp();
Inventory useInv = chr.getInventory(MapleInventoryType.USE); Inventory useInv = chr.getInventory(InventoryType.USE);
useInv.lockInventory(); useInv.lockInventory();
try { try {
toUse = useInv.getItem(slot); toUse = useInv.getItem(slot);
@@ -150,7 +150,7 @@ public class PetAutopotProcessor {
while (true) { while (true) {
short qtyToUse = (short) Math.min(qtyCount, toUse.getQuantity()); short qtyToUse = (short) Math.min(qtyCount, toUse.getQuantity());
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, qtyToUse, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, qtyToUse, false);
curHp += (incHp * qtyToUse); curHp += (incHp * qtyToUse);
curMp += (incMp * qtyToUse); curMp += (incMp * qtyToUse);
@@ -22,7 +22,7 @@ package client.processor.action;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.SkillFactory; import client.SkillFactory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.MaplePet; import client.inventory.MaplePet;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import provider.MapleDataProvider; import provider.MapleDataProvider;
@@ -44,7 +44,7 @@ public class SpawnPetProcessor {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
MaplePet pet = chr.getInventory(MapleInventoryType.CASH).getItem(slot).getPet(); MaplePet pet = chr.getInventory(InventoryType.CASH).getItem(slot).getPet();
if (pet == null) return; if (pet == null) return;
int petid = pet.getItemId(); int petid = pet.getItemId();
@@ -60,8 +60,8 @@ public class SpawnPetProcessor {
if (petId == -1) { if (petId == -1) {
return; return;
} }
long expiration = chr.getInventory(MapleInventoryType.CASH).getItem(slot).getExpiration(); long expiration = chr.getInventory(InventoryType.CASH).getItem(slot).getExpiration();
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, petid, (short) 1, false, false); MapleInventoryManipulator.removeById(c, InventoryType.CASH, petid, (short) 1, false, false);
MapleInventoryManipulator.addById(c, evolveid, (short) 1, null, petId, expiration); MapleInventoryManipulator.addById(c, evolveid, (short) 1, null, petId, expiration);
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
@@ -27,9 +27,9 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.ItemFactory; import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -146,7 +146,7 @@ public class DueyProcessor {
try { try {
int packageId = rs.getInt("PackageId"); int packageId = rs.getInt("PackageId");
List<Pair<Item, MapleInventoryType>> dueyItems = ItemFactory.DUEY.loadItems(packageId, false); List<Pair<Item, InventoryType>> dueyItems = ItemFactory.DUEY.loadItems(packageId, false);
DueyPackage dueypack; DueyPackage dueypack;
if (!dueyItems.isEmpty()) { // in a duey package there's only one item if (!dueyItems.isEmpty()) { // in a duey package there's only one item
@@ -226,7 +226,7 @@ public class DueyProcessor {
} }
private static boolean insertPackageItem(int packageId, Item item) { private static boolean insertPackageItem(int packageId, Item item) {
Pair<Item, MapleInventoryType> dueyItem = new Pair<>(item, MapleInventoryType.getByType(item.getItemType())); Pair<Item, InventoryType> dueyItem = new Pair<>(item, InventoryType.getByType(item.getItemType()));
try (Connection con = DatabaseConnection.getConnection()) { try (Connection con = DatabaseConnection.getConnection()) {
ItemFactory.DUEY.saveItems(Collections.singletonList(dueyItem), packageId, con); ItemFactory.DUEY.saveItems(Collections.singletonList(dueyItem), packageId, con);
return true; return true;
@@ -241,7 +241,7 @@ public class DueyProcessor {
if (invTypeId > 0) { if (invTypeId > 0) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleInventoryType invType = MapleInventoryType.getByType(invTypeId); InventoryType invType = InventoryType.getByType(invTypeId);
Inventory inv = c.getPlayer().getInventory(invType); Inventory inv = c.getPlayer().getInventory(invType);
Item item; Item item;
@@ -324,7 +324,7 @@ public class DueyProcessor {
} }
if (quick) { if (quick) {
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, 5330000, (short) 1, false, false); MapleInventoryManipulator.removeById(c, InventoryType.CASH, 5330000, (short) 1, false, false);
} }
int packageId = createPackage(sendMesos, sendMessage, c.getPlayer().getName(), recipientCid, quick); int packageId = createPackage(sendMesos, sendMessage, c.getPlayer().getName(), recipientCid, quick);
@@ -26,9 +26,9 @@ package client.processor.npc;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.ItemFactory; import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.server.Server; import net.server.Server;
import net.server.world.World; import net.server.world.World;
@@ -52,10 +52,10 @@ public class FredrickProcessor {
private static int[] dailyReminders = new int[]{2, 5, 10, 15, 30, 60, 90, Integer.MAX_VALUE}; private static int[] dailyReminders = new int[]{2, 5, 10, 15, 30, 60, 90, Integer.MAX_VALUE};
private static byte canRetrieveFromFredrick(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> items) { private static byte canRetrieveFromFredrick(MapleCharacter chr, List<Pair<Item, InventoryType>> items) {
if (!Inventory.checkSpotsAndOwnership(chr, items)) { if (!Inventory.checkSpotsAndOwnership(chr, items)) {
List<Integer> itemids = new LinkedList<>(); List<Integer> itemids = new LinkedList<>();
for (Pair<Item, MapleInventoryType> it : items) { for (Pair<Item, InventoryType> it : items) {
itemids.add(it.getLeft().getItemId()); itemids.add(it.getLeft().getItemId());
} }
@@ -269,7 +269,7 @@ public class FredrickProcessor {
try { try {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
List<Pair<Item, MapleInventoryType>> items; List<Pair<Item, InventoryType>> items;
try { try {
items = ItemFactory.MERCHANT.loadItems(chr.getId(), false); items = ItemFactory.MERCHANT.loadItems(chr.getId(), false);
@@ -287,7 +287,7 @@ public class FredrickProcessor {
if(merchant != null) if(merchant != null)
merchant.clearItems(); merchant.clearItems();
for (Pair<Item, MapleInventoryType> it : items) { for (Pair<Item, InventoryType> it : items) {
Item item = it.getLeft(); Item item = it.getLeft();
MapleInventoryManipulator.addFromDrop(chr.getClient(), item, false); MapleInventoryManipulator.addFromDrop(chr.getClient(), item, false);
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()); String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId());
@@ -25,8 +25,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -67,7 +67,7 @@ public class StorageProcessor {
c.disconnect(true, false); c.disconnect(true, false);
return; return;
} }
slot = storage.getSlot(MapleInventoryType.getByType(type), slot); slot = storage.getSlot(InventoryType.getByType(type), slot);
Item item = storage.getItem(slot); Item item = storage.getItem(slot);
if (item != null) { if (item != null) {
if (ii.isPickupRestricted(item.getItemId()) && chr.haveItemWithId(item.getItemId(), true)) { if (ii.isPickupRestricted(item.getItemId()) && chr.haveItemWithId(item.getItemId(), true)) {
@@ -106,7 +106,7 @@ public class StorageProcessor {
short slot = p.readShort(); short slot = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
short quantity = p.readShort(); short quantity = p.readShort();
MapleInventoryType invType = ItemConstants.getInventoryType(itemId); InventoryType invType = ItemConstants.getInventoryType(itemId);
Inventory inv = chr.getInventory(invType); Inventory inv = chr.getInventory(invType);
if (slot < 1 || slot > inv.getSlotLimit()) { //player inv starts at one if (slot < 1 || slot > inv.getSlotLimit()) { //player inv starts at one
AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit with storage."); AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit with storage.");
@@ -26,8 +26,8 @@ package client.processor.stat;
import client.*; import client.*;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig; import config.YamlConfig;
import constants.skills.*; import constants.skills.*;
import net.packet.InPacket; import net.packet.InPacket;
@@ -49,7 +49,7 @@ public class AssignAPProcessor {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
if (chr.getRemainingAp() < 1) return; if (chr.getRemainingAp() < 1) return;
Collection<Item> equippedC = chr.getInventory(MapleInventoryType.EQUIPPED).list(); Collection<Item> equippedC = chr.getInventory(InventoryType.EQUIPPED).list();
c.lockClient(); c.lockClient();
try { try {
@@ -21,13 +21,13 @@
*/ */
package constants.inventory; package constants.inventory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import config.YamlConfig; import config.YamlConfig;
import java.util.HashSet;
import java.util.Set;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* *
@@ -35,7 +35,7 @@ import java.util.Map;
* @author Ronan * @author Ronan
*/ */
public final class ItemConstants { public final class ItemConstants {
protected static Map<Integer, MapleInventoryType> inventoryTypeCache = new HashMap<>(); protected static Map<Integer, InventoryType> inventoryTypeCache = new HashMap<>();
public final static short LOCK = 0x01; public final static short LOCK = 0x01;
public final static short SPIKES = 0x02; public final static short SPIKES = 0x02;
@@ -184,16 +184,16 @@ public final class ItemConstants {
return itemId / 10000 == 514; return itemId / 10000 == 514;
} }
public static MapleInventoryType getInventoryType(final int itemId) { public static InventoryType getInventoryType(final int itemId) {
if (inventoryTypeCache.containsKey(itemId)) { if (inventoryTypeCache.containsKey(itemId)) {
return inventoryTypeCache.get(itemId); return inventoryTypeCache.get(itemId);
} }
MapleInventoryType ret = MapleInventoryType.UNDEFINED; InventoryType ret = InventoryType.UNDEFINED;
final byte type = (byte) (itemId / 1000000); final byte type = (byte) (itemId / 1000000);
if (type >= 1 && type <= 5) { if (type >= 1 && type <= 5) {
ret = MapleInventoryType.getByType(type); ret = InventoryType.getByType(type);
} }
inventoryTypeCache.put(itemId, ret); inventoryTypeCache.put(itemId, ret);
@@ -24,7 +24,7 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -62,10 +62,10 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
break; break;
case 0x01: { // /d (inv) case 0x01: { // /d (inv)
byte type = p.readByte(); byte type = p.readByte();
Inventory in = c.getPlayer().getInventory(MapleInventoryType.getByType(type)); Inventory in = c.getPlayer().getInventory(InventoryType.getByType(type));
for (short i = 1; i <= in.getSlotLimit(); i++) { //TODO What is the point of this loop? for (short i = 1; i <= in.getSlotLimit(); i++) { //TODO What is the point of this loop?
if (in.getItem(i) != null) { if (in.getItem(i) != null) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(type), i, in.getItem(i).getQuantity(), false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.getByType(type), i, in.getItem(i).getQuantity(), false);
} }
return; return;
} }
@@ -26,8 +26,8 @@ import client.MapleClient;
import client.MapleRing; import client.MapleRing;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
@@ -280,7 +280,7 @@ public final class CashOperationHandler extends AbstractPacketHandler {
return; return;
} }
Inventory mi = chr.getInventory(MapleInventoryType.getByType(invType)); Inventory mi = chr.getInventory(InventoryType.getByType(invType));
Item item = mi.findByCashId(cashId); Item item = mi.findByCashId(cashId);
if (item == null) { if (item == null) {
c.enableCSActions(); c.enableCSActions();
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -94,7 +94,7 @@ public final class ChangeMapHandler extends AbstractPacketHandler {
if (wheel && chr.haveItemWithId(5510000, false)) { if (wheel && chr.haveItemWithId(5510000, false)) {
// thanks lucasziron (lziron) for showing revivePlayer() triggering by Wheel // thanks lucasziron (lziron) for showing revivePlayer() triggering by Wheel
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, 5510000, 1, true, false); MapleInventoryManipulator.removeById(c, InventoryType.CASH, 5510000, 1, true, false);
chr.sendPacket(PacketCreator.showWheelsLeft(chr.getItemQuantity(5510000, false))); chr.sendPacket(PacketCreator.showWheelsLeft(chr.getItemQuantity(5510000, false)));
chr.updateHp(50); chr.updateHp(50);
@@ -24,8 +24,8 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -53,7 +53,7 @@ public final class InventoryMergeHandler extends AbstractPacketHandler {
return; return;
} }
MapleInventoryType inventoryType = MapleInventoryType.getByType(invType); InventoryType inventoryType = InventoryType.getByType(invType);
Inventory inventory = c.getPlayer().getInventory(inventoryType); Inventory inventory = c.getPlayer().getInventory(inventoryType);
inventory.lockInventory(); inventory.lockInventory();
try { try {
@@ -238,7 +238,7 @@ class PairedQuicksort {
if(A.size() > 0) { if(A.size() > 0) {
MapleQuicksort(0, A.size() - 1, A, primarySort); MapleQuicksort(0, A.size() - 1, A, primarySort);
if (A.get(0).getInventoryType().equals(MapleInventoryType.USE)) { // thanks KDA & Vcoc for suggesting stronger projectiles coming before weaker ones if (A.get(0).getInventoryType().equals(InventoryType.USE)) { // thanks KDA & Vcoc for suggesting stronger projectiles coming before weaker ones
reverseSortSublist(A, BinarySearchElement(A, 206)); // arrows reverseSortSublist(A, BinarySearchElement(A, 206)); // arrows
reverseSortSublist(A, BinarySearchElement(A, 207)); // stars reverseSortSublist(A, BinarySearchElement(A, 207)); // stars
reverseSortSublist(A, BinarySearchElement(A, 233)); // bullets reverseSortSublist(A, BinarySearchElement(A, 233)); // bullets
@@ -280,7 +280,7 @@ public final class InventorySortHandler extends AbstractPacketHandler {
ArrayList<Item> itemarray = new ArrayList<>(); ArrayList<Item> itemarray = new ArrayList<>();
List<ModifyInventory> mods = new ArrayList<>(); List<ModifyInventory> mods = new ArrayList<>();
Inventory inventory = chr.getInventory(MapleInventoryType.getByType(invType)); Inventory inventory = chr.getInventory(InventoryType.getByType(invType));
inventory.lockInventory(); inventory.lockInventory();
try { try {
for (short i = 1; i <= inventory.getSlotLimit(); i++) { for (short i = 1; i <= inventory.getSlotLimit(); i++) {
@@ -295,7 +295,7 @@ public final class InventorySortHandler extends AbstractPacketHandler {
mods.add(new ModifyInventory(3, item)); mods.add(new ModifyInventory(3, item));
} }
int invTypeCriteria = (MapleInventoryType.getByType(invType) == MapleInventoryType.EQUIP) ? 3 : 1; int invTypeCriteria = (InventoryType.getByType(invType) == InventoryType.EQUIP) ? 3 : 1;
int sortCriteria = (YamlConfig.config.server.USE_ITEM_SORT_BY_NAME == true) ? 2 : 0; int sortCriteria = (YamlConfig.config.server.USE_ITEM_SORT_BY_NAME == true) ? 2 : 0;
PairedQuicksort pq = new PairedQuicksort(itemarray, sortCriteria, invTypeCriteria); PairedQuicksort pq = new PairedQuicksort(itemarray, sortCriteria, invTypeCriteria);
@@ -22,7 +22,7 @@
package net.server.channel.handlers; package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -41,7 +41,7 @@ public final class ItemMoveHandler extends AbstractPacketHandler {
return; return;
} }
MapleInventoryType type = MapleInventoryType.getByType(p.readByte()); InventoryType type = InventoryType.getByType(p.readByte());
short src = p.readShort(); //is there any reason to use byte instead of short in src and action? short src = p.readShort(); //is there any reason to use byte instead of short in src and action?
short action = p.readShort(); short action = p.readShort();
short quantity = p.readShort(); short quantity = p.readShort();
@@ -22,8 +22,8 @@
package net.server.channel.handlers; package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -47,8 +47,8 @@ public final class ItemRewardHandler extends AbstractPacketHandler {
byte slot = (byte) p.readShort(); byte slot = (byte) p.readShort();
int itemId = p.readInt(); // will load from xml I don't care. int itemId = p.readInt(); // will load from xml I don't care.
Item it = c.getPlayer().getInventory(MapleInventoryType.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(MapleInventoryType.USE).countById(itemId) < 1) return; if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(InventoryType.USE).countById(itemId) < 1) return;
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId); Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId);
@@ -58,7 +58,7 @@ public final class ItemRewardHandler extends AbstractPacketHandler {
break; break;
} }
if (Randomizer.nextInt(rewards.getLeft()) < reward.prob) {//Is it even possible to get an item with prob 1? if (Randomizer.nextInt(rewards.getLeft()) < reward.prob) {//Is it even possible to get an item with prob 1?
if (ItemConstants.getInventoryType(reward.itemid) == MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(reward.itemid) == InventoryType.EQUIP) {
final Item item = ii.getEquipById(reward.itemid); final Item item = ii.getEquipById(reward.itemid);
if (reward.period != -1) { if (reward.period != -1) {
item.setExpiration(currentServerTime() + (reward.period * 60 * 60 * 10)); item.setExpiration(currentServerTime() + (reward.period * 60 * 60 * 10));
@@ -67,7 +67,7 @@ public final class ItemRewardHandler extends AbstractPacketHandler {
} else { } else {
MapleInventoryManipulator.addById(c, reward.itemid, reward.quantity, "", -1); MapleInventoryManipulator.addById(c, reward.itemid, reward.quantity, "", -1);
} }
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, false, false); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, false, false);
if (reward.worldmsg != null) { if (reward.worldmsg != null) {
String msg = reward.worldmsg; String msg = reward.worldmsg;
msg.replaceAll("/name", c.getPlayer().getName()); msg.replaceAll("/name", c.getPlayer().getName());
@@ -24,7 +24,7 @@ package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.Skill; import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.keybind.MapleKeyBinding; import client.keybind.MapleKeyBinding;
import constants.game.GameConstants; import constants.game.GameConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -65,14 +65,14 @@ public final class KeymapChangeHandler extends AbstractPacketHandler {
} }
} else if(mode == 1) { // Auto HP Potion } else if(mode == 1) { // Auto HP Potion
int itemID = p.readInt(); int itemID = p.readInt();
if(itemID != 0 && c.getPlayer().getInventory(MapleInventoryType.USE).findById(itemID) == null) { if(itemID != 0 && c.getPlayer().getInventory(InventoryType.USE).findById(itemID) == null) {
c.disconnect(false, false); // Don't let them send a packet with a use item they dont have. c.disconnect(false, false); // Don't let them send a packet with a use item they dont have.
return; return;
} }
c.getPlayer().changeKeybinding(91, new MapleKeyBinding(7, itemID)); c.getPlayer().changeKeybinding(91, new MapleKeyBinding(7, itemID));
} else if(mode == 2) { // Auto MP Potion } else if(mode == 2) { // Auto MP Potion
int itemID = p.readInt(); int itemID = p.readInt();
if(itemID != 0 && c.getPlayer().getInventory(MapleInventoryType.USE).findById(itemID) == null) { if(itemID != 0 && c.getPlayer().getInventory(InventoryType.USE).findById(itemID) == null) {
c.disconnect(false, false); // Don't let them send a packet with a use item they dont have. c.disconnect(false, false); // Don't let them send a packet with a use item they dont have.
return; return;
} }
@@ -24,8 +24,8 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -102,7 +102,7 @@ public final class MTSHandler extends AbstractPacketHandler {
if (quantity < 0 || price < 110 || c.getPlayer().getItemQuantity(itemid, false) < quantity) { if (quantity < 0 || price < 110 || c.getPlayer().getItemQuantity(itemid, false) < quantity) {
return; return;
} }
MapleInventoryType invType = ItemConstants.getInventoryType(itemid); InventoryType invType = ItemConstants.getInventoryType(itemid);
Item i = c.getPlayer().getInventory(invType).getItem(slot).copy(); Item i = c.getPlayer().getInventory(invType).getItem(slot).copy();
if (i != null && c.getPlayer().getMeso() >= 5000) { if (i != null && c.getPlayer().getMeso() >= 5000) {
Connection con = null; Connection con = null;
@@ -159,7 +159,7 @@ public final class MTSHandler extends AbstractPacketHandler {
} else { } else {
date += day + ""; date += day + "";
} }
if (!i.getInventoryType().equals(MapleInventoryType.EQUIP)) { if (!i.getInventoryType().equals(InventoryType.EQUIP)) {
Item item = i; Item item = i;
ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
ps.setInt(1, 1); ps.setInt(1, 1);
@@ -25,8 +25,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanManager; import client.autoban.AutobanManager;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet; import client.inventory.MaplePet;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -71,7 +71,7 @@ public final class PetFoodHandler extends AbstractPacketHandler {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
Inventory useInv = chr.getInventory(MapleInventoryType.USE); Inventory useInv = chr.getInventory(InventoryType.USE);
useInv.lockInventory(); useInv.lockInventory();
try { try {
Item use = useInv.getItem(pos); Item use = useInv.getItem(pos);
@@ -80,7 +80,7 @@ public final class PetFoodHandler extends AbstractPacketHandler {
} }
pet.gainClosenessFullness(chr, (pet.getFullness() <= 75) ? 1 : 0, 30, 1); // 25+ "emptyness" to get +1 closeness pet.gainClosenessFullness(chr, (pet.getFullness() <= 75) ? 1 : 0, 30, 1); // 25+ "emptyness" to get +1 closeness
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, pos, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, pos, (short) 1, false);
} finally { } finally {
useInv.unlockInventory(); useInv.unlockInventory();
} }
@@ -25,8 +25,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -239,7 +239,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
String desc = p.readString(); String desc = p.readString();
p.skip(3); p.skip(3);
int itemId = p.readInt(); int itemId = p.readInt();
if (chr.getInventory(MapleInventoryType.CASH).countById(itemId) < 1) { if (chr.getInventory(InventoryType.CASH).countById(itemId) < 1) {
chr.sendPacket(PacketCreator.getMiniRoomError(6)); chr.sendPacket(PacketCreator.getMiniRoomError(6));
return; return;
} }
@@ -363,7 +363,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
if (shop != null && shop.isOwner(chr)) { if (shop != null && shop.isOwner(chr)) {
if(YamlConfig.config.server.USE_ERASE_PERMIT_ON_OPENSHOP) { if(YamlConfig.config.server.USE_ERASE_PERMIT_ON_OPENSHOP) {
try { try {
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, shop.getItemId(), 1, true, false); MapleInventoryManipulator.removeById(c, InventoryType.CASH, shop.getItemId(), 1, true, false);
} catch(RuntimeException re) {} // fella does not have a player shop permit... } catch(RuntimeException re) {} // fella does not have a player shop permit...
} }
@@ -472,7 +472,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
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(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleInventoryType ivType = MapleInventoryType.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);
short quantity = p.readShort(); short quantity = p.readShort();
@@ -556,7 +556,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
} else if (mode == Action.ADD_ITEM.getCode() || mode == Action.PUT_ITEM.getCode()) { } else if (mode == Action.ADD_ITEM.getCode() || mode == Action.PUT_ITEM.getCode()) {
if (isTradeOpen(chr)) return; if (isTradeOpen(chr)) return;
MapleInventoryType ivType = MapleInventoryType.getByType(p.readByte()); InventoryType ivType = InventoryType.getByType(p.readByte());
short slot = p.readShort(); short slot = p.readShort();
short bundles = p.readShort(); short bundles = p.readShort();
Item ivItem = chr.getInventory(ivType).getItem(slot); Item ivItem = chr.getInventory(ivType).getItem(slot);
@@ -616,7 +616,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.getPlayerShopItemUpdate(shop)); c.sendPacket(PacketCreator.getPlayerShopItemUpdate(shop));
} else if (merchant != null && merchant.isOwner(chr)) { } else if (merchant != null && merchant.isOwner(chr)) {
if (ivType.equals(MapleInventoryType.CASH) && merchant.isPublished()) { if (ivType.equals(InventoryType.CASH) && merchant.isPublished()) {
c.sendPacket(PacketCreator.serverNotice(1, "Cash items are only allowed to be sold when first opening the store.")); c.sendPacket(PacketCreator.serverNotice(1, "Cash items are only allowed to be sold when first opening the store."));
return; return;
} }
@@ -314,7 +314,7 @@ public final class PlayerLoggedinHandler extends AbstractPacketHandler {
player.updatePartyMemberHP(); player.updatePartyMemberHP();
} }
Inventory eqpInv = player.getInventory(MapleInventoryType.EQUIPPED); Inventory eqpInv = player.getInventory(InventoryType.EQUIPPED);
eqpInv.lockInventory(); eqpInv.lockInventory();
try { try {
for (Item it : eqpInv.list()) { for (Item it : eqpInv.list()) {
@@ -4,7 +4,7 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.MapleQuestStatus; import client.MapleQuestStatus;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -47,7 +47,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
} }
int consId; int consId;
Inventory inv = chr.getInventory(MapleInventoryType.getByType(inventorytype)); Inventory inv = chr.getInventory(InventoryType.getByType(inventorytype));
inv.lockInventory(); inv.lockInventory();
try { try {
consId = inv.getItem(slot).getItemId(); consId = inv.getItem(slot).getItemId();
@@ -55,7 +55,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
return; return;
} }
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(inventorytype), slot, (short) 1, false, true); MapleInventoryManipulator.removeFromSlot(c, InventoryType.getByType(inventorytype), slot, (short) 1, false, true);
} finally { } finally {
inv.unlockInventory(); inv.unlockInventory();
} }
@@ -23,8 +23,8 @@ package net.server.channel.handlers;
import client.*; import client.*;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType; import client.inventory.MapleWeaponType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -89,7 +89,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
applyAttack(attack, chr, 4); applyAttack(attack, chr, 4);
} }
} else { } else {
Item weapon = chr.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11); Item weapon = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -11);
MapleWeaponType type = MapleItemInformationProvider.getInstance().getWeaponType(weapon.getItemId()); MapleWeaponType type = MapleItemInformationProvider.getInstance().getWeaponType(weapon.getItemId());
if (type == MapleWeaponType.NOT_A_WEAPON) { if (type == MapleWeaponType.NOT_A_WEAPON) {
return; return;
@@ -123,7 +123,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
if (hasShadowPartner) { if (hasShadowPartner) {
bulletCount *= 2; bulletCount *= 2;
} }
Inventory inv = chr.getInventory(MapleInventoryType.USE); Inventory inv = chr.getInventory(InventoryType.USE);
for (short i = 1; i <= inv.getSlotLimit(); i++) { for (short i = 1; i <= inv.getSlotLimit(); i++) {
Item item = inv.getItem(i); Item item = inv.getItem(i);
if (item != null) { if (item != null) {
@@ -167,14 +167,14 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
} }
if(slot < 0) System.out.println("<ERROR> Projectile to use was unable to be found."); if(slot < 0) System.out.println("<ERROR> Projectile to use was unable to be found.");
else MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, bulletConsume, false, true); else MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, bulletConsume, false, true);
} }
} }
if (projectile != 0 || soulArrow || attack.skill == 11101004 || attack.skill == 15111007 || attack.skill == 14101006 || attack.skill == 4111004 || attack.skill == 13101005) { if (projectile != 0 || soulArrow || attack.skill == 11101004 || attack.skill == 15111007 || attack.skill == 14101006 || attack.skill == 4111004 || attack.skill == 13101005) {
int visProjectile = projectile; //visible projectile sent to players int visProjectile = projectile; //visible projectile sent to players
if (ItemConstants.isThrowingStar(projectile)) { if (ItemConstants.isThrowingStar(projectile)) {
Inventory cash = chr.getInventory(MapleInventoryType.CASH); Inventory cash = chr.getInventory(InventoryType.CASH);
for (int i = 1; i <= cash.getSlotLimit(); i++) { // impose order... for (int i = 1; i <= cash.getSlotLimit(); i++) { // impose order...
Item item = cash.getItem((short) i); Item item = cash.getItem((short) i);
if (item != null) { if (item != null) {
@@ -25,8 +25,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.MapleRing; import client.MapleRing;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.processor.npc.DueyProcessor; import client.processor.npc.DueyProcessor;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -205,9 +205,9 @@ public final class RingActionHandler extends AbstractPacketHandler {
private static void resetRingId(MapleCharacter player) { private static void resetRingId(MapleCharacter player) {
int ringitemid = player.getMarriageRing().getItemId(); int ringitemid = player.getMarriageRing().getItemId();
Item it = player.getInventory(MapleInventoryType.EQUIP).findById(ringitemid); Item it = player.getInventory(InventoryType.EQUIP).findById(ringitemid);
if(it == null) { if(it == null) {
it = player.getInventory(MapleInventoryType.EQUIPPED).findById(ringitemid); it = player.getInventory(InventoryType.EQUIPPED).findById(ringitemid);
} }
if(it != null) { if(it != null) {
@@ -230,7 +230,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
int partnerMarriageitemid = marriageitemid + ((chr.getGender() == 0) ? 1 : -1); int partnerMarriageitemid = marriageitemid + ((chr.getGender() == 0) ? 1 : -1);
if(partner.haveItem(partnerMarriageitemid)) { if(partner.haveItem(partnerMarriageitemid)) {
MapleInventoryManipulator.removeById(partner.getClient(), MapleInventoryType.ETC, partnerMarriageitemid, (short) 1, false, false); MapleInventoryManipulator.removeById(partner.getClient(), InventoryType.ETC, partnerMarriageitemid, (short) 1, false, false);
} }
//partner.sendPacket(Wedding.OnMarriageResult((byte) 0)); ok, how to gracefully unengage someone without the need to cc? //partner.sendPacket(Wedding.OnMarriageResult((byte) 0)); ok, how to gracefully unengage someone without the need to cc?
@@ -240,7 +240,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
} }
if(chr.haveItem(marriageitemid)) { if(chr.haveItem(marriageitemid)) {
MapleInventoryManipulator.removeById(chr.getClient(), MapleInventoryType.ETC, marriageitemid, (short) 1, false, false); MapleInventoryManipulator.removeById(chr.getClient(), InventoryType.ETC, marriageitemid, (short) 1, false, false);
} }
chr.dropMessage(5, "You have successfully break the engagement with " + MapleCharacter.getNameById(partnerid) + "."); chr.dropMessage(5, "You have successfully break the engagement with " + MapleCharacter.getNameById(partnerid) + ".");
@@ -251,9 +251,9 @@ public final class RingActionHandler extends AbstractPacketHandler {
} }
public static void breakMarriageRing(MapleCharacter chr, final int wItemId) { public static void breakMarriageRing(MapleCharacter chr, final int wItemId) {
final MapleInventoryType type = MapleInventoryType.getByType((byte) (wItemId / 1000000)); final InventoryType type = InventoryType.getByType((byte) (wItemId / 1000000));
final Item wItem = chr.getInventory(type).findById(wItemId); final Item wItem = chr.getInventory(type).findById(wItemId);
final boolean weddingToken = (wItem != null && type == MapleInventoryType.ETC && wItemId / 10000 == 403); final boolean weddingToken = (wItem != null && type == InventoryType.ETC && wItemId / 10000 == 403);
final boolean weddingRing = (wItem != null && wItemId / 10 == 111280); final boolean weddingRing = (wItem != null && wItemId / 10 == 111280);
if (weddingRing) { if (weddingRing) {
@@ -333,7 +333,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
} }
try { try {
MapleInventoryManipulator.removeById(source.getClient(), MapleInventoryType.USE, itemid, 1, false, false); MapleInventoryManipulator.removeById(source.getClient(), InventoryType.USE, itemid, 1, false, false);
int marriageId = c.getWorldServer().createRelationship(source.getId(), target.getId()); int marriageId = c.getWorldServer().createRelationship(source.getId(), target.getId());
source.setPartnerId(target.getId()); // engage them (new marriageitemid, partnerid for both) source.setPartnerId(target.getId()); // engage them (new marriageitemid, partnerid for both)
@@ -372,7 +372,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
int itemId; int itemId;
try { try {
itemId = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem(slot).getItemId(); itemId = c.getPlayer().getInventory(InventoryType.ETC).getItem(slot).getItemId();
} catch(NullPointerException npe) { } catch(NullPointerException npe) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
@@ -442,7 +442,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
int invitationid = p.readInt(); int invitationid = p.readInt();
if(invitationid == 4031406 || invitationid == 4031407) { if(invitationid == 4031406 || invitationid == 4031407) {
Item item = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem(slot); Item item = c.getPlayer().getInventory(InventoryType.ETC).getItem(slot);
if(item == null || item.getItemId() != invitationid) { if(item == null || item.getItemId() != invitationid) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
@@ -60,15 +60,15 @@ public final class ScrollHandler extends AbstractPacketHandler {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Equip toScroll = (Equip) chr.getInventory(MapleInventoryType.EQUIPPED).getItem(dst); Equip toScroll = (Equip) chr.getInventory(InventoryType.EQUIPPED).getItem(dst);
Skill LegendarySpirit = SkillFactory.getSkill(1003); Skill LegendarySpirit = SkillFactory.getSkill(1003);
if (chr.getSkillLevel(LegendarySpirit) > 0 && dst >= 0) { if (chr.getSkillLevel(LegendarySpirit) > 0 && dst >= 0) {
legendarySpirit = true; legendarySpirit = true;
toScroll = (Equip) chr.getInventory(MapleInventoryType.EQUIP).getItem(dst); toScroll = (Equip) chr.getInventory(InventoryType.EQUIP).getItem(dst);
} }
byte oldLevel = toScroll.getLevel(); byte oldLevel = toScroll.getLevel();
byte oldSlots = toScroll.getUpgradeSlots(); byte oldSlots = toScroll.getUpgradeSlots();
Inventory useInventory = chr.getInventory(MapleInventoryType.USE); Inventory useInventory = chr.getInventory(InventoryType.USE);
Item scroll = useInventory.getItem(slot); Item scroll = useInventory.getItem(slot);
Item wscroll = null; Item wscroll = null;
@@ -128,10 +128,10 @@ public final class ScrollHandler extends AbstractPacketHandler {
return; return;
} }
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, wscroll.getPosition(), (short) 1, false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, wscroll.getPosition(), (short) 1, false, false);
} }
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, scroll.getPosition(), (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, scroll.getPosition(), (short) 1, false);
} finally { } finally {
useInventory.unlockInventory(); useInventory.unlockInventory();
} }
@@ -141,7 +141,7 @@ public final class ScrollHandler extends AbstractPacketHandler {
if(!ItemConstants.isWeddingRing(toScroll.getItemId())) { if(!ItemConstants.isWeddingRing(toScroll.getItemId())) {
mods.add(new ModifyInventory(3, toScroll)); mods.add(new ModifyInventory(3, toScroll));
if (dst < 0) { if (dst < 0) {
Inventory inv = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory inv = chr.getInventory(InventoryType.EQUIPPED);
inv.lockInventory(); inv.lockInventory();
try { try {
@@ -151,7 +151,7 @@ public final class ScrollHandler extends AbstractPacketHandler {
inv.unlockInventory(); inv.unlockInventory();
} }
} else { } else {
Inventory inv = chr.getInventory(MapleInventoryType.EQUIP); Inventory inv = chr.getInventory(InventoryType.EQUIP);
inv.lockInventory(); inv.lockInventory();
try { try {
@@ -26,8 +26,8 @@ import client.MapleClient;
import client.Skill; import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -56,7 +56,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
MapleCharacter player = c.getPlayer(); MapleCharacter player = c.getPlayer();
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
Inventory inv = c.getPlayer().getInventory(MapleInventoryType.USE); Inventory inv = c.getPlayer().getInventory(InventoryType.USE);
Item toUse = inv.getItem(slot); Item toUse = inv.getItem(slot);
if (toUse == null || toUse.getItemId() != itemId) { if (toUse == null || toUse.getItemId() != itemId) {
return; return;
@@ -76,7 +76,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
return; return;
} }
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
} finally { } finally {
inv.unlockInventory(); inv.unlockInventory();
} }
@@ -26,8 +26,8 @@ import client.MapleClient;
import client.Skill; import client.Skill;
import client.SkillFactory; import client.SkillFactory;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType; import client.inventory.MapleWeaponType;
import client.status.MonsterStatusEffect; import client.status.MonsterStatusEffect;
import constants.skills.Outlaw; import constants.skills.Outlaw;
@@ -135,7 +135,7 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler {
maxDamage = player.calculateMaxBaseMagicDamage(matk) * (0.05 * summonEffect.getMatk()); maxDamage = player.calculateMaxBaseMagicDamage(matk) * (0.05 * summonEffect.getMatk());
} else { } else {
int watk = Math.max(player.getTotalWatk(), 14); int watk = Math.max(player.getTotalWatk(), 14);
Item weapon_item = player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11); Item weapon_item = player.getInventory(InventoryType.EQUIPPED).getItem((short) -11);
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) {
@@ -23,8 +23,8 @@ package net.server.channel.handlers;
import client.*; import client.*;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.status.MonsterStatus; import client.status.MonsterStatus;
import client.status.MonsterStatusEffect; import client.status.MonsterStatusEffect;
@@ -88,7 +88,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
loseItems = attacker.getStats().loseItem(); loseItems = attacker.getStats().loseItem();
if (loseItems != null) { if (loseItems != null) {
if (chr.getBuffEffect(MapleBuffStat.AURA) == null) { if (chr.getBuffEffect(MapleBuffStat.AURA) == null) {
MapleInventoryType type; InventoryType type;
final int playerpos = chr.getPosition().x; final int playerpos = chr.getPosition().x;
byte d = 1; byte d = 1;
Point pos = new Point(0, chr.getPosition().y); Point pos = new Point(0, chr.getPosition().y);
@@ -68,7 +68,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
int itemId = p.readInt(); int itemId = p.readInt();
int itemType = itemId / 10000; int itemType = itemId / 10000;
Inventory cashInv = player.getInventory(MapleInventoryType.CASH); Inventory cashInv = player.getInventory(InventoryType.CASH);
Item toUse = cashInv.getItem(position); Item toUse = cashInv.getItem(position);
if (toUse == null || toUse.getItemId() != itemId) { if (toUse == null || toUse.getItemId() != itemId) {
toUse = cashInv.findById(itemId); toUse = cashInv.findById(itemId);
@@ -87,7 +87,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} }
String medal = ""; String medal = "";
Item medalItem = player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -49); Item medalItem = player.getInventory(InventoryType.EQUIPPED).getItem((short) -49);
if (medalItem != null) { if (medalItem != null) {
medal = "<" + ii.getName(medalItem.getItemId()) + "> "; medal = "<" + ii.getName(medalItem.getItemId()) + "> ";
} }
@@ -203,10 +203,10 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
if (equipSlot == 0) { if (equipSlot == 0) {
return; return;
} }
eq = player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) equipSlot); eq = player.getInventory(InventoryType.EQUIPPED).getItem((short) equipSlot);
eq.setOwner(player.getName()); eq.setOwner(player.getName());
} else if (itemId == 5060001 || itemId == 5061000 || itemId == 5061001 || itemId == 5061002 || itemId == 5061003) { // Sealing lock } else if (itemId == 5060001 || itemId == 5061000 || itemId == 5061001 || itemId == 5061002 || itemId == 5061003) { // Sealing lock
MapleInventoryType type = MapleInventoryType.getByType((byte) p.readInt()); InventoryType type = InventoryType.getByType((byte) p.readInt());
eq = player.getInventory(type).getItem((short) p.readInt()); eq = player.getInventory(type).getItem((short) p.readInt());
if (eq == null) { //Check if the type is EQUIPMENT? if (eq == null) { //Check if the type is EQUIPMENT?
return; return;
@@ -237,13 +237,13 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} else if (itemId == 5060002) { // Incubator } else if (itemId == 5060002) { // Incubator
byte inventory2 = (byte) p.readInt(); byte inventory2 = (byte) p.readInt();
short slot2 = (short) p.readInt(); short slot2 = (short) p.readInt();
Item item2 = player.getInventory(MapleInventoryType.getByType(inventory2)).getItem(slot2); Item item2 = player.getInventory(InventoryType.getByType(inventory2)).getItem(slot2);
if (item2 == null) // hacking if (item2 == null) // hacking
{ {
return; return;
} }
if (getIncubatedItem(c, itemId)) { if (getIncubatedItem(c, itemId)) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(inventory2), slot2, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.getByType(inventory2), slot2, (short) 1, false);
remove(c, position, itemId); remove(c, position, itemId);
} }
return; return;
@@ -312,7 +312,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
whisper = p.readByte() == 1; whisper = p.readByte() == 1;
Item item = null; Item item = null;
if (p.readByte() == 1) { //item if (p.readByte() == 1) { //item
item = player.getInventory(MapleInventoryType.getByType((byte) p.readInt())).getItem((short) p.readInt()); item = player.getInventory(InventoryType.getByType((byte) p.readInt())).getItem((short) p.readInt());
if (item == null) //hack if (item == null) //hack
{ {
return; return;
@@ -376,7 +376,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
pet.setName(newName); pet.setName(newName);
pet.saveToDb(); pet.saveToDb();
Item item = player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition()); Item item = player.getInventory(InventoryType.CASH).getItem(pet.getPosition());
if (item != null) { if (item != null) {
player.forceUpdateItem(item); player.forceUpdateItem(item);
} }
@@ -504,7 +504,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} else if (itemType == 550) { //Extend item expiration } else if (itemType == 550) { //Extend item expiration
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
} else if (itemType == 552) { } else if (itemType == 552) {
MapleInventoryType type = MapleInventoryType.getByType((byte) p.readInt()); InventoryType type = InventoryType.getByType((byte) p.readInt());
short slot = (short) p.readInt(); short slot = (short) p.readInt();
Item item = player.getInventory(type).getItem(slot); Item item = player.getInventory(type).getItem(slot);
if (item == null || item.getQuantity() <= 0 || MapleKarmaManipulator.hasKarmaFlag(item) || !ii.isKarmaAble(item.getItemId())) { if (item == null || item.getQuantity() <= 0 || MapleKarmaManipulator.hasKarmaFlag(item) || !ii.isKarmaAble(item.getItemId())) {
@@ -522,8 +522,8 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
p.readInt(); p.readInt();
int itemSlot = p.readInt(); int itemSlot = p.readInt();
p.readInt(); p.readInt();
final Equip equip = (Equip) player.getInventory(MapleInventoryType.EQUIP).getItem((short) itemSlot); final Equip equip = (Equip) player.getInventory(InventoryType.EQUIP).getItem((short) itemSlot);
if (equip.getVicious() >= 2 || player.getInventory(MapleInventoryType.CASH).findById(5570000) == null) { if (equip.getVicious() >= 2 || player.getInventory(InventoryType.CASH).findById(5570000) == null) {
return; return;
} }
equip.setVicious(equip.getVicious() + 1); equip.setVicious(equip.getVicious() + 1);
@@ -538,14 +538,14 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} }
final byte eSlot = (byte) p.readInt(); final byte eSlot = (byte) p.readInt();
final Item eitem = player.getInventory(MapleInventoryType.EQUIP).getItem(eSlot); final Item eitem = player.getInventory(InventoryType.EQUIP).getItem(eSlot);
if (p.readInt() != 2) { if (p.readInt() != 2) {
return; return;
} }
final byte uSlot = (byte) p.readInt(); final byte uSlot = (byte) p.readInt();
final Item uitem = player.getInventory(MapleInventoryType.USE).getItem(uSlot); final Item uitem = player.getInventory(InventoryType.USE).getItem(uSlot);
if (eitem == null || uitem == null) { if (eitem == null || uitem == null) {
return; return;
} }
@@ -570,7 +570,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.sendVegaScroll(scrolled.getLevel() > curlevel ? 0x41 : 0x43)); c.sendPacket(PacketCreator.sendVegaScroll(scrolled.getLevel() > curlevel ? 0x41 : 0x43));
//opcodes 0x42, 0x44: "this item cannot be used"; 0x39, 0x45: crashes //opcodes 0x42, 0x44: "this item cannot be used"; 0x39, 0x45: crashes
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, uSlot, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, uSlot, (short) 1, false);
remove(c, position, itemId); remove(c, position, itemId);
final MapleClient client = c; final MapleClient client = c;
@@ -601,7 +601,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} }
private static void remove(MapleClient c, short position, int itemid) { private static void remove(MapleClient c, short position, int itemid) {
Inventory cashInv = c.getPlayer().getInventory(MapleInventoryType.CASH); Inventory cashInv = c.getPlayer().getInventory(InventoryType.CASH);
cashInv.lockInventory(); cashInv.lockInventory();
try { try {
Item it = cashInv.getItem(position); Item it = cashInv.getItem(position);
@@ -612,7 +612,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
} }
} }
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, position, (short) 1, true, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.CASH, position, (short) 1, true, false);
} finally { } finally {
cashInv.unlockInventory(); cashInv.unlockInventory();
} }
@@ -627,7 +627,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
amount = quantitys[i]; amount = quantitys[i];
} }
} }
if (c.getPlayer().getInventory(MapleInventoryType.getByType((byte) (id / 1000000))).isFull()) { if (c.getPlayer().getInventory(InventoryType.getByType((byte) (id / 1000000))).isFull()) {
return false; return false;
} }
MapleInventoryManipulator.addById(c, id, (short) amount); MapleInventoryManipulator.addById(c, id, (short) amount);
@@ -24,7 +24,7 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanManager; import client.autoban.AutobanManager;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -61,7 +61,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getId() == 9300101) { if (mob.getId() == 9300101) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 1902000, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 1902000, (short) 1, "", -1);
} }
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
@@ -72,7 +72,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 4031830, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 4031830, (short) 1, "", -1);
} else { } else {
abm.spam(10); abm.spam(10);
@@ -90,7 +90,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (Math.random() < 0.5) { // 50% chance if (Math.random() < 0.5) { // 50% chance
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 4031868, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 4031868, (short) 1, "", -1);
} else { } else {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 0)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 0));
@@ -112,7 +112,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 4031887, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 4031887, (short) 1, "", -1);
} else { } else {
c.sendPacket(PacketCreator.catchMessage(0)); c.sendPacket(PacketCreator.catchMessage(0));
@@ -125,7 +125,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 2109001, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 2109001, (short) 1, "", -1);
} else { } else {
c.sendPacket(PacketCreator.catchMessage(0)); c.sendPacket(PacketCreator.catchMessage(0));
@@ -138,7 +138,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 2109002, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 2109002, (short) 1, "", -1);
} else { } else {
c.sendPacket(PacketCreator.catchMessage(0)); c.sendPacket(PacketCreator.catchMessage(0));
@@ -151,7 +151,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 3)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 2109003, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 2109003, (short) 1, "", -1);
} else { } else {
c.sendPacket(PacketCreator.catchMessage(0)); c.sendPacket(PacketCreator.catchMessage(0));
@@ -164,7 +164,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) { if (mob.getHp() < ((mob.getMaxHp() / 10) * 4)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 4001169, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 4001169, (short) 1, "", -1);
} else { } else {
c.sendPacket(PacketCreator.catchMessage(0)); c.sendPacket(PacketCreator.catchMessage(0));
@@ -178,7 +178,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
abm.spam(10); abm.spam(10);
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, 2022323, (short) 1, "", -1); MapleInventoryManipulator.addById(c, 2022323, (short) 1, "", -1);
} else { } else {
chr.message("You cannot use the Fishing Net yet."); chr.message("You cannot use the Fishing Net yet.");
@@ -201,7 +201,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
if (mobHp != 0 && mob.getHp() < ((mob.getMaxHp() / 100) * mobHp)) { if (mobHp != 0 && mob.getHp() < ((mob.getMaxHp() / 100) * mobHp)) {
chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1)); chr.getMap().broadcastMessage(PacketCreator.catchMonster(monsterid, itemId, (byte) 1));
mob.getMap().killMonster(mob, null, false); mob.getMap().killMonster(mob, null, false);
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemId, 1, true, true); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemId, 1, true, true);
MapleInventoryManipulator.addById(c, itemGanho, (short) 1, "", -1); MapleInventoryManipulator.addById(c, itemGanho, (short) 1, "", -1);
} else if (mob.getId() != 9500336) { } else if (mob.getId() != 9500336) {
if (mobHp != 0) { if (mobHp != 0) {
@@ -22,7 +22,7 @@
package net.server.channel.handlers; package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.inventory.MapleInventoryType; import client.inventory.InventoryType;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -33,7 +33,7 @@ public final class UseChairHandler extends AbstractPacketHandler {
int itemId = p.readInt(); int itemId = p.readInt();
// thanks Darter (YungMoozi) for reporting unchecked chair item // thanks Darter (YungMoozi) for reporting unchecked chair item
if (!ItemConstants.isChair(itemId) || c.getPlayer().getInventory(MapleInventoryType.SETUP).findById(itemId) == null) { if (!ItemConstants.isChair(itemId) || c.getPlayer().getInventory(InventoryType.SETUP).findById(itemId) == null) {
return; return;
} }
@@ -22,8 +22,8 @@
package net.server.channel.handlers; package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
import tools.PacketCreator; import tools.PacketCreator;
@@ -34,9 +34,9 @@ public final class UseItemEffectHandler extends AbstractPacketHandler {
Item toUse; Item toUse;
int itemId = p.readInt(); int itemId = p.readInt();
if (itemId == 4290001 || itemId == 4290000) { if (itemId == 4290001 || itemId == 4290000) {
toUse = c.getPlayer().getInventory(MapleInventoryType.ETC).findById(itemId); toUse = c.getPlayer().getInventory(InventoryType.ETC).findById(itemId);
} else { } else {
toUse = c.getPlayer().getInventory(MapleInventoryType.CASH).findById(itemId); toUse = c.getPlayer().getInventory(InventoryType.CASH).findById(itemId);
} }
if (toUse == null || toUse.getQuantity() < 1) { if (toUse == null || toUse.getQuantity() < 1) {
if (itemId != 0) return; if (itemId != 0) return;
@@ -24,8 +24,8 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.MapleDisease; import client.MapleDisease;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
@@ -51,7 +51,7 @@ public final class UseItemHandler extends AbstractPacketHandler {
p.readInt(); p.readInt();
short slot = p.readShort(); short slot = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
Item toUse = chr.getInventory(MapleInventoryType.USE).getItem(slot); Item toUse = chr.getInventory(InventoryType.USE).getItem(slot);
if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) { if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) {
if (itemId == 2050004) { if (itemId == 2050004) {
chr.dispelDebuffs(); chr.dispelDebuffs();
@@ -107,7 +107,7 @@ public final class UseItemHandler extends AbstractPacketHandler {
} }
private void remove(MapleClient c, short slot) { private void remove(MapleClient c, short slot) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
} }
} }
@@ -25,8 +25,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.MapleMount; import client.MapleMount;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.game.ExpTable; import constants.game.ExpTable;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
@@ -46,7 +46,7 @@ public final class UseMountFoodHandler extends AbstractPacketHandler {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
MapleMount mount = chr.getMount(); MapleMount mount = chr.getMount();
Inventory useInv = chr.getInventory(MapleInventoryType.USE); Inventory useInv = chr.getInventory(InventoryType.USE);
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
@@ -73,7 +73,7 @@ public final class UseMountFoodHandler extends AbstractPacketHandler {
mountLevelup = levelup; mountLevelup = levelup;
} }
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, itemid, 1, true, false); MapleInventoryManipulator.removeById(c, InventoryType.USE, itemid, 1, true, false);
} }
} finally { } finally {
useInv.unlockInventory(); useInv.unlockInventory();
@@ -24,8 +24,8 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -50,7 +50,7 @@ public final class UseSolomonHandler extends AbstractPacketHandler {
if (c.tryacquireClient()) { if (c.tryacquireClient()) {
try { try {
MapleCharacter chr = c.getPlayer(); MapleCharacter chr = c.getPlayer();
Inventory inv = chr.getInventory(MapleInventoryType.USE); Inventory inv = chr.getInventory(InventoryType.USE);
inv.lockInventory(); inv.lockInventory();
try { try {
Item slotItem = inv.getItem(slot); Item slotItem = inv.getItem(slot);
@@ -66,7 +66,7 @@ public final class UseSolomonHandler extends AbstractPacketHandler {
return; return;
} }
chr.addGachaExp((int) gachaexp); chr.addGachaExp((int) gachaexp);
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
} finally { } finally {
inv.unlockInventory(); inv.unlockInventory();
} }
@@ -22,8 +22,8 @@
package net.server.channel.handlers; package net.server.channel.handlers;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import net.AbstractPacketHandler; import net.AbstractPacketHandler;
import net.packet.InPacket; import net.packet.InPacket;
@@ -48,9 +48,9 @@ public final class UseSummonBagHandler extends AbstractPacketHandler {
p.readInt(); p.readInt();
short slot = p.readShort(); short slot = p.readShort();
int itemId = p.readInt(); int itemId = p.readInt();
Item toUse = c.getPlayer().getInventory(MapleInventoryType.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) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(itemId); int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(itemId);
for (int[] toSpawnChild : toSpawn) { for (int[] toSpawnChild : toSpawn) {
if (Randomizer.nextInt(100) < toSpawnChild[1]) { if (Randomizer.nextInt(100) < toSpawnChild[1]) {
@@ -10,8 +10,8 @@ package net.server.channel.handlers;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -56,7 +56,7 @@ public final class WeddingHandler extends AbstractPacketHandler {
if (chr.getId() != cid) { // cannot gift yourself if (chr.getId() != cid) { // cannot gift yourself
MapleCharacter spouse = marriage.getPlayerById(cid); MapleCharacter spouse = marriage.getPlayerById(cid);
if (spouse != null) { if (spouse != null) {
MapleInventoryType type = ItemConstants.getInventoryType(itemid); InventoryType type = ItemConstants.getInventoryType(itemid);
Inventory chrInv = chr.getInventory(type); Inventory chrInv = chr.getInventory(type);
Item newItem = null; Item newItem = null;
@@ -170,10 +170,10 @@ public class AbstractPlayerInteraction {
} }
public Inventory getInventory(int type) { public Inventory getInventory(int type) {
return getPlayer().getInventory(MapleInventoryType.getByType((byte) type)); return getPlayer().getInventory(InventoryType.getByType((byte) type));
} }
public Inventory getInventory(MapleInventoryType type) { public Inventory getInventory(InventoryType type) {
return getPlayer().getInventory(type); return getPlayer().getInventory(type);
} }
@@ -245,7 +245,7 @@ public class AbstractPlayerInteraction {
private boolean canHoldAll(List<Integer> itemids, List<Integer> quantity, boolean isInteger) { private boolean canHoldAll(List<Integer> itemids, List<Integer> quantity, boolean isInteger) {
int size = Math.min(itemids.size(), quantity.size()); int size = Math.min(itemids.size(), quantity.size());
List<Pair<Item, MapleInventoryType>> addedItems = new LinkedList<>(); List<Pair<Item, InventoryType>> addedItems = new LinkedList<>();
for(int i = 0; i < size; i++) { for(int i = 0; i < size; i++) {
Item it = new Item(itemids.get(i), (short) 0, quantity.get(i).shortValue()); Item it = new Item(itemids.get(i), (short) 0, quantity.get(i).shortValue());
addedItems.add(new Pair<>(it, ItemConstants.getInventoryType(itemids.get(i)))); addedItems.add(new Pair<>(it, ItemConstants.getInventoryType(itemids.get(i))));
@@ -254,11 +254,11 @@ public class AbstractPlayerInteraction {
return Inventory.checkSpots(c.getPlayer(), addedItems); return Inventory.checkSpots(c.getPlayer(), addedItems);
} }
private List<Pair<Item, MapleInventoryType>> prepareProofInventoryItems(List<Pair<Integer, Integer>> items) { private List<Pair<Item, InventoryType>> prepareProofInventoryItems(List<Pair<Integer, Integer>> items) {
List<Pair<Item, MapleInventoryType>> addedItems = new LinkedList<>(); List<Pair<Item, InventoryType>> addedItems = new LinkedList<>();
for(Pair<Integer, Integer> p : items) { for(Pair<Integer, Integer> p : items) {
Item it = new Item(p.getLeft(), (short) 0, p.getRight().shortValue()); Item it = new Item(p.getLeft(), (short) 0, p.getRight().shortValue());
addedItems.add(new Pair<>(it, MapleInventoryType.CANHOLD)); addedItems.add(new Pair<>(it, InventoryType.CANHOLD));
} }
return addedItems; return addedItems;
@@ -268,7 +268,7 @@ public class AbstractPlayerInteraction {
int size = Math.min(itemids.size(), quantity.size()); int size = Math.min(itemids.size(), quantity.size());
List<List<Pair<Integer, Integer>>> invList = new ArrayList<>(6); List<List<Pair<Integer, Integer>>> invList = new ArrayList<>(6);
for(int i = MapleInventoryType.UNDEFINED.getType(); i < MapleInventoryType.CASH.getType(); i++) { for(int i = InventoryType.UNDEFINED.getType(); i < InventoryType.CASH.getType(); i++) {
invList.add(new LinkedList<>()); invList.add(new LinkedList<>());
} }
@@ -284,10 +284,10 @@ public class AbstractPlayerInteraction {
List<List<Pair<Integer, Integer>>> toAddItemList = prepareInventoryItemList(toAddItemids, toAddQuantity); List<List<Pair<Integer, Integer>>> toAddItemList = prepareInventoryItemList(toAddItemids, toAddQuantity);
List<List<Pair<Integer, Integer>>> toRemoveItemList = prepareInventoryItemList(toRemoveItemids, toRemoveQuantity); List<List<Pair<Integer, Integer>>> toRemoveItemList = prepareInventoryItemList(toRemoveItemids, toRemoveQuantity);
InventoryProof prfInv = (InventoryProof) this.getInventory(MapleInventoryType.CANHOLD); InventoryProof prfInv = (InventoryProof) this.getInventory(InventoryType.CANHOLD);
prfInv.lockInventory(); prfInv.lockInventory();
try { try {
for(int i = MapleInventoryType.EQUIP.getType(); i < MapleInventoryType.CASH.getType(); i++) { for(int i = InventoryType.EQUIP.getType(); i < InventoryType.CASH.getType(); i++) {
List<Pair<Integer, Integer>> toAdd = toAddItemList.get(i); List<Pair<Integer, Integer>> toAdd = toAddItemList.get(i);
if(!toAdd.isEmpty()) { if(!toAdd.isEmpty()) {
@@ -297,10 +297,10 @@ public class AbstractPlayerInteraction {
prfInv.cloneContents(inv); prfInv.cloneContents(inv);
for(Pair<Integer, Integer> p : toRemove) { for(Pair<Integer, Integer> p : toRemove) {
MapleInventoryManipulator.removeById(c, MapleInventoryType.CANHOLD, p.getLeft(), p.getRight(), false, false); MapleInventoryManipulator.removeById(c, InventoryType.CANHOLD, p.getLeft(), p.getRight(), false, false);
} }
List<Pair<Item, MapleInventoryType>> addItems = prepareProofInventoryItems(toAdd); List<Pair<Item, InventoryType>> addItems = prepareProofInventoryItems(toAdd);
boolean canHold = Inventory.checkSpots(c.getPlayer(), addItems, true); boolean canHold = Inventory.checkSpots(c.getPlayer(), addItems, true);
if(!canHold) { if(!canHold) {
@@ -532,7 +532,7 @@ public class AbstractPlayerInteraction {
chr.getClient().getWorldServer().registerPetHunger(chr, chr.getPetIndex(evolved)); chr.getClient().getWorldServer().registerPetHunger(chr, chr.getPetIndex(evolved));
*/ */
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.CASH, target.getPosition(), (short) 1, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.CASH, target.getPosition(), (short) 1, false);
return evolved; return evolved;
} }
@@ -593,7 +593,7 @@ public class AbstractPlayerInteraction {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
if (ItemConstants.getInventoryType(id).equals(MapleInventoryType.EQUIP)) { if (ItemConstants.getInventoryType(id).equals(InventoryType.EQUIP)) {
item = ii.getEquipById(id); item = ii.getEquipById(id);
if(item != null) { if(item != null) {
@@ -622,7 +622,7 @@ public class AbstractPlayerInteraction {
c.getPlayer().dropMessage(1, "Your inventory is full. Please remove an item from your " + ItemConstants.getInventoryType(id).name() + " inventory."); c.getPlayer().dropMessage(1, "Your inventory is full. Please remove an item from your " + ItemConstants.getInventoryType(id).name() + " inventory.");
return null; return null;
} }
if (ItemConstants.getInventoryType(id) == MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(id) == InventoryType.EQUIP) {
if (randomStats) { if (randomStats) {
MapleInventoryManipulator.addFromDrop(c, ii.randomizeStats((Equip) item), false, petId); MapleInventoryManipulator.addFromDrop(c, ii.randomizeStats((Equip) item), false, petId);
} else { } else {
@@ -842,7 +842,7 @@ public class AbstractPlayerInteraction {
public void removeFromParty(int id, List<MapleCharacter> party) { public void removeFromParty(int id, List<MapleCharacter> party) {
for (MapleCharacter chr : party) { for (MapleCharacter chr : party) {
MapleInventoryType type = ItemConstants.getInventoryType(id); InventoryType type = ItemConstants.getInventoryType(id);
Inventory iv = chr.getInventory(type); Inventory iv = chr.getInventory(type);
int possesed = iv.countById(id); int possesed = iv.countById(id);
if (possesed > 0) { if (possesed > 0) {
@@ -857,16 +857,16 @@ public class AbstractPlayerInteraction {
} }
public void removeAll(int id, MapleClient cl) { public void removeAll(int id, MapleClient cl) {
MapleInventoryType invType = ItemConstants.getInventoryType(id); InventoryType invType = ItemConstants.getInventoryType(id);
int possessed = cl.getPlayer().getInventory(invType).countById(id); int possessed = cl.getPlayer().getInventory(invType).countById(id);
if (possessed > 0) { if (possessed > 0) {
MapleInventoryManipulator.removeById(cl, ItemConstants.getInventoryType(id), id, possessed, true, false); MapleInventoryManipulator.removeById(cl, ItemConstants.getInventoryType(id), id, possessed, true, false);
cl.sendPacket(PacketCreator.getShowItemGain(id, (short) -possessed, true)); cl.sendPacket(PacketCreator.getShowItemGain(id, (short) -possessed, true));
} }
if(invType == MapleInventoryType.EQUIP) { if(invType == InventoryType.EQUIP) {
if(cl.getPlayer().getInventory(MapleInventoryType.EQUIPPED).countById(id) > 0) { if(cl.getPlayer().getInventory(InventoryType.EQUIPPED).countById(id) > 0) {
MapleInventoryManipulator.removeById(cl, MapleInventoryType.EQUIPPED, id, 1, true, false); MapleInventoryManipulator.removeById(cl, InventoryType.EQUIPPED, id, 1, true, false);
cl.sendPacket(PacketCreator.getShowItemGain(id, (short) -1, true)); cl.sendPacket(PacketCreator.getShowItemGain(id, (short) -1, true));
} }
} }
@@ -931,18 +931,18 @@ public class AbstractPlayerInteraction {
} }
public void removeEquipFromSlot(short slot) { public void removeEquipFromSlot(short slot) {
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem(slot); Item tempItem = c.getPlayer().getInventory(InventoryType.EQUIPPED).getItem(slot);
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIPPED, slot, tempItem.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, tempItem.getQuantity(), false, false);
} }
public void gainAndEquip(int itemid, short slot) { public void gainAndEquip(int itemid, short slot) {
final Item old = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem(slot); final Item old = c.getPlayer().getInventory(InventoryType.EQUIPPED).getItem(slot);
if (old != null) { if (old != null) {
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIPPED, slot, old.getQuantity(), false, false); MapleInventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, old.getQuantity(), false, false);
} }
final Item newItem = MapleItemInformationProvider.getInstance().getEquipById(itemid); final Item newItem = MapleItemInformationProvider.getInstance().getEquipById(itemid);
newItem.setPosition(slot); newItem.setPosition(slot);
c.getPlayer().getInventory(MapleInventoryType.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))));
} }
@@ -1117,7 +1117,7 @@ public class AbstractPlayerInteraction {
List<MaplePet> list = new LinkedList<>(); List<MaplePet> list = new LinkedList<>();
long curTime = System.currentTimeMillis(); long curTime = System.currentTimeMillis();
for(Item it : getPlayer().getInventory(MapleInventoryType.CASH).list()) { for(Item it : getPlayer().getInventory(InventoryType.CASH).list()) {
if(ItemConstants.isPet(it.getItemId()) && it.getExpiration() < curTime) { if(ItemConstants.isPet(it.getItemId()) && it.getExpiration() < curTime) {
MaplePet pet = it.getPet(); MaplePet pet = it.getPet();
if (pet != null) { if (pet != null) {
@@ -24,8 +24,8 @@ package scripting.reactor;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig; import config.YamlConfig;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import scripting.AbstractPlayerInteraction; import scripting.AbstractPlayerInteraction;
@@ -175,7 +175,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
} else { } else {
Item drop; Item drop;
if (ItemConstants.getInventoryType(d.itemId) != MapleInventoryType.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 {
drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId)); drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId));
@@ -206,7 +206,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
} else { } else {
Item drop; Item drop;
if (ItemConstants.getInventoryType(d.itemId) != MapleInventoryType.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(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
+5 -5
View File
@@ -90,7 +90,7 @@ public class CashShop {
petid = MaplePet.createPet(itemId); petid = MaplePet.createPet(itemId);
} }
if (ItemConstants.getInventoryType(itemId).equals(MapleInventoryType.EQUIP)) { if (ItemConstants.getInventoryType(itemId).equals(InventoryType.EQUIP)) {
item = MapleItemInformationProvider.getInstance().getEquipById(itemId); item = MapleItemInformationProvider.getInstance().getEquipById(itemId);
} else { } else {
item = new Item(itemId, (byte) 0, count, petid); item = new Item(itemId, (byte) 0, count, petid);
@@ -277,7 +277,7 @@ public class CashShop {
} }
} }
for (Pair<Item, MapleInventoryType> item : factory.loadItems(accountId, false)) { for (Pair<Item, InventoryType> item : factory.loadItems(accountId, false)) {
inventory.add(item.getLeft()); inventory.add(item.getLeft());
} }
@@ -348,7 +348,7 @@ public class CashShop {
boolean isRing; boolean isRing;
Equip equip = null; Equip equip = null;
for (Item item : getInventory()) { for (Item item : getInventory()) {
if (item.getInventoryType().equals(MapleInventoryType.EQUIP)) { if (item.getInventoryType().equals(InventoryType.EQUIP)) {
equip = (Equip) item; equip = (Equip) item;
isRing = equip.getRingId() > -1; isRing = equip.getRingId() > -1;
} else { } else {
@@ -426,7 +426,7 @@ public class CashShop {
Item item = cItem.toItem(); Item item = cItem.toItem();
Equip equip = null; Equip equip = null;
item.setGiftFrom(rs.getString("from")); item.setGiftFrom(rs.getString("from"));
if (item.getInventoryType().equals(MapleInventoryType.EQUIP)) { if (item.getInventoryType().equals(InventoryType.EQUIP)) {
equip = (Equip) item; equip = (Equip) item;
equip.setRingId(rs.getInt("ringid")); equip.setRingId(rs.getInt("ringid"));
gifts.add(new Pair<>(equip, rs.getString("message"))); gifts.add(new Pair<>(equip, rs.getString("message")));
@@ -474,7 +474,7 @@ public class CashShop {
ps.executeUpdate(); ps.executeUpdate();
} }
List<Pair<Item, MapleInventoryType>> itemsWithType = new ArrayList<>(); List<Pair<Item, InventoryType>> itemsWithType = new ArrayList<>();
List<Item> inv = getInventory(); List<Item> inv = getInventory();
for (Item item : inv) { for (Item item : inv) {
@@ -345,7 +345,7 @@ public class MapleItemInformationProvider {
if (item != null) { if (item != null) {
MapleData smEntry = item.getChildByPath("info/slotMax"); MapleData smEntry = item.getChildByPath("info/slotMax");
if (smEntry == null) { if (smEntry == null) {
if (ItemConstants.getInventoryType(itemId).getType() == MapleInventoryType.EQUIP.getType()) { if (ItemConstants.getInventoryType(itemId).getType() == InventoryType.EQUIP.getType()) {
ret = 1; ret = 1;
} else { } else {
ret = 100; ret = 100;
@@ -1581,7 +1581,7 @@ public class MapleItemInformationProvider {
} }
public Collection<Item> canWearEquipment(MapleCharacter chr, Collection<Item> items) { public Collection<Item> canWearEquipment(MapleCharacter chr, Collection<Item> items) {
Inventory inv = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory inv = chr.getInventory(InventoryType.EQUIPPED);
if (inv.checked()) { if (inv.checked()) {
return items; return items;
} }
@@ -1597,8 +1597,8 @@ public class MapleItemInformationProvider {
boolean highfivestamp = false; boolean highfivestamp = false;
/* Removed because players shouldn't even get this, and gm's should just be gm job. /* Removed because players shouldn't even get this, and gm's should just be gm job.
try { try {
for (Pair<Item, MapleInventoryType> ii : ItemFactory.INVENTORY.loadItems(chr.getId(), false)) { for (Pair<Item, InventoryType> ii : ItemFactory.INVENTORY.loadItems(chr.getId(), false)) {
if (ii.getRight() == MapleInventoryType.CASH) { if (ii.getRight() == InventoryType.CASH) {
if (ii.getLeft().getItemId() == 5590000) { if (ii.getLeft().getItemId() == 5590000) {
highfivestamp = true; highfivestamp = true;
} }
@@ -1683,8 +1683,8 @@ public class MapleItemInformationProvider {
boolean highfivestamp = false; boolean highfivestamp = false;
/* Removed check above for message >< /* Removed check above for message ><
try { try {
for (Pair<Item, MapleInventoryType> ii : ItemFactory.INVENTORY.loadItems(chr.getId(), false)) { for (Pair<Item, InventoryType> ii : ItemFactory.INVENTORY.loadItems(chr.getId(), false)) {
if (ii.getRight() == MapleInventoryType.CASH) { if (ii.getRight() == InventoryType.CASH) {
if (ii.getLeft().getItemId() == 5590000) { if (ii.getLeft().getItemId() == 5590000) {
highfivestamp = true; highfivestamp = true;
} }
+3 -3
View File
@@ -22,9 +22,9 @@ package server;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.ItemFactory; import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import scripting.event.EventInstanceManager; import scripting.event.EventInstanceManager;
import scripting.event.EventManager; import scripting.event.EventManager;
@@ -139,7 +139,7 @@ public class MapleMarriage extends EventInstanceManager {
List<Item> items = new LinkedList<>(); List<Item> items = new LinkedList<>();
try { try {
for (Pair<Item, MapleInventoryType> it : ItemFactory.MARRIAGE_GIFTS.loadItems(cid, false)) { for (Pair<Item, InventoryType> it : ItemFactory.MARRIAGE_GIFTS.loadItems(cid, false)) {
items.add(it.getLeft()); items.add(it.getLeft());
} }
} catch (SQLException sqle) { } catch (SQLException sqle) {
@@ -154,7 +154,7 @@ public class MapleMarriage extends EventInstanceManager {
} }
public static void saveGiftItemsToDb(MapleClient c, List<Item> giftItems, int cid) { public static void saveGiftItemsToDb(MapleClient c, List<Item> giftItems, int cid) {
List<Pair<Item, MapleInventoryType>> items = new LinkedList<>(); List<Pair<Item, InventoryType>> items = new LinkedList<>();
for (Item it : giftItems) { for (Item it : giftItems) {
items.add(new Pair<>(it, it.getInventoryType())); items.add(new Pair<>(it, it.getInventoryType()));
} }
+8 -8
View File
@@ -22,8 +22,8 @@
package server; package server;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet; import client.inventory.MaplePet;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
@@ -113,24 +113,24 @@ public class MapleShop {
} else if (item.getPitch() > 0) { } else if (item.getPitch() > 0) {
int amount = (int)Math.min((float) item.getPitch() * quantity, Integer.MAX_VALUE); int amount = (int)Math.min((float) item.getPitch() * quantity, Integer.MAX_VALUE);
if (c.getPlayer().getInventory(MapleInventoryType.ETC).countById(4310000) >= amount) { if (c.getPlayer().getInventory(InventoryType.ETC).countById(4310000) >= amount) {
if (MapleInventoryManipulator.checkSpace(c, itemId, quantity, "")) { if (MapleInventoryManipulator.checkSpace(c, itemId, quantity, "")) {
if (!ItemConstants.isRechargeable(itemId)) { if (!ItemConstants.isRechargeable(itemId)) {
MapleInventoryManipulator.addById(c, itemId, quantity, "", -1); MapleInventoryManipulator.addById(c, itemId, quantity, "", -1);
MapleInventoryManipulator.removeById(c, MapleInventoryType.ETC, 4310000, amount, false, false); MapleInventoryManipulator.removeById(c, InventoryType.ETC, 4310000, amount, false, false);
} else { } else {
short slotMax = ii.getSlotMax(c, item.getItemId()); short slotMax = ii.getSlotMax(c, item.getItemId());
quantity = slotMax; quantity = slotMax;
MapleInventoryManipulator.addById(c, itemId, quantity, "", -1); MapleInventoryManipulator.addById(c, itemId, quantity, "", -1);
MapleInventoryManipulator.removeById(c, MapleInventoryType.ETC, 4310000, amount, false, false); MapleInventoryManipulator.removeById(c, InventoryType.ETC, 4310000, amount, false, false);
} }
c.sendPacket(PacketCreator.shopTransaction((byte) 0)); c.sendPacket(PacketCreator.shopTransaction((byte) 0));
} else } else
c.sendPacket(PacketCreator.shopTransaction((byte) 3)); c.sendPacket(PacketCreator.shopTransaction((byte) 3));
} }
} else if (c.getPlayer().getInventory(MapleInventoryType.CASH).countById(token) != 0) { } else if (c.getPlayer().getInventory(InventoryType.CASH).countById(token) != 0) {
int amount = c.getPlayer().getInventory(MapleInventoryType.CASH).countById(token); int amount = c.getPlayer().getInventory(InventoryType.CASH).countById(token);
int value = amount * tokenvalue; int value = amount * tokenvalue;
int cost = item.getPrice() * quantity; int cost = item.getPrice() * quantity;
if (c.getPlayer().getMeso() + value >= cost) { if (c.getPlayer().getMeso() + value >= cost) {
@@ -186,7 +186,7 @@ public class MapleShop {
return quantity; return quantity;
} }
public void sell(MapleClient c, MapleInventoryType type, short slot, short quantity) { public void sell(MapleClient c, InventoryType type, short slot, short quantity) {
if (quantity == 0xFFFF || quantity == 0) { if (quantity == 0xFFFF || quantity == 0) {
quantity = 1; quantity = 1;
} else if (quantity < 0) { } else if (quantity < 0) {
@@ -211,7 +211,7 @@ public class MapleShop {
public void recharge(MapleClient c, short slot) { public void recharge(MapleClient c, short slot) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
Item item = c.getPlayer().getInventory(MapleInventoryType.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;
} }
+4 -4
View File
@@ -23,8 +23,8 @@ package server;
import client.*; import client.*;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.status.MonsterStatus; import client.status.MonsterStatus;
import client.status.MonsterStatusEffect; import client.status.MonsterStatusEffect;
@@ -940,7 +940,7 @@ public class MapleStatEffect {
if (isShadowClaw()) { if (isShadowClaw()) {
short projectileConsume = this.getBulletConsume(); // noticed by shavit short projectileConsume = this.getBulletConsume(); // noticed by shavit
Inventory use = applyto.getInventory(MapleInventoryType.USE); Inventory use = applyto.getInventory(InventoryType.USE);
use.lockInventory(); use.lockInventory();
try { try {
Item projectile = null; Item projectile = null;
@@ -956,7 +956,7 @@ public class MapleStatEffect {
if (projectile == null) { if (projectile == null) {
return false; return false;
} else { } else {
MapleInventoryManipulator.removeFromSlot(applyto.getClient(), MapleInventoryType.USE, projectile.getPosition(), projectileConsume, false, true); MapleInventoryManipulator.removeFromSlot(applyto.getClient(), InventoryType.USE, projectile.getPosition(), projectileConsume, false, true);
} }
} finally { } finally {
use.unlockInventory(); use.unlockInventory();
@@ -1225,7 +1225,7 @@ public class MapleStatEffect {
MapleMount givemount = null; MapleMount givemount = null;
if (isMonsterRiding()) { if (isMonsterRiding()) {
int ridingMountId = 0; int ridingMountId = 0;
Item mount = applyfrom.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -18); Item mount = applyfrom.getInventory(InventoryType.EQUIPPED).getItem((short) -18);
if (mount != null) { if (mount != null) {
ridingMountId = mount.getItemId(); ridingMountId = mount.getItemId();
} }
+12 -12
View File
@@ -19,9 +19,9 @@
package server; package server;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.ItemFactory; import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import constants.game.GameConstants; import constants.game.GameConstants;
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;
@@ -54,7 +54,7 @@ public class MapleStorage {
private int currentNpcid; private int currentNpcid;
private int meso; private int meso;
private byte slots; private byte slots;
private Map<MapleInventoryType, List<Item>> typeItems = new HashMap<>(); private Map<InventoryType, List<Item>> typeItems = new HashMap<>();
private List<Item> items = new LinkedList<>(); private List<Item> items = new LinkedList<>();
private Lock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.STORAGE, true); private Lock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.STORAGE, true);
@@ -85,7 +85,7 @@ public class MapleStorage {
try (ResultSet rs = ps.executeQuery()) { try (ResultSet rs = ps.executeQuery()) {
if (rs.next()) { if (rs.next()) {
ret = new MapleStorage(rs.getInt("storageid"), (byte) rs.getInt("slots"), rs.getInt("meso")); ret = new MapleStorage(rs.getInt("storageid"), (byte) rs.getInt("slots"), rs.getInt("meso"));
for (Pair<Item, MapleInventoryType> item : ItemFactory.STORAGE.loadItems(ret.id, false)) { for (Pair<Item, InventoryType> item : ItemFactory.STORAGE.loadItems(ret.id, false)) {
ret.items.add(item.getLeft()); ret.items.add(item.getLeft());
} }
} else { } else {
@@ -132,7 +132,7 @@ public class MapleStorage {
ps.setInt(3, id); ps.setInt(3, id);
ps.executeUpdate(); ps.executeUpdate();
} }
List<Pair<Item, MapleInventoryType>> itemsWithType = new ArrayList<>(); List<Pair<Item, InventoryType>> itemsWithType = new ArrayList<>();
List<Item> list = getItems(); List<Item> list = getItems();
for (Item item : list) { for (Item item : list) {
@@ -159,7 +159,7 @@ public class MapleStorage {
try { try {
boolean ret = items.remove(item); boolean ret = items.remove(item);
MapleInventoryType type = item.getInventoryType(); InventoryType type = item.getInventoryType();
typeItems.put(type, new ArrayList<>(filterItems(type))); typeItems.put(type, new ArrayList<>(filterItems(type)));
return ret; return ret;
@@ -177,7 +177,7 @@ public class MapleStorage {
items.add(item); items.add(item);
MapleInventoryType type = item.getInventoryType(); InventoryType type = item.getInventoryType();
typeItems.put(type, new ArrayList<>(filterItems(type))); typeItems.put(type, new ArrayList<>(filterItems(type)));
return true; return true;
@@ -195,7 +195,7 @@ public class MapleStorage {
} }
} }
private List<Item> filterItems(MapleInventoryType type) { private List<Item> filterItems(InventoryType type) {
List<Item> storageItems = getItems(); List<Item> storageItems = getItems();
List<Item> ret = new LinkedList<>(); List<Item> ret = new LinkedList<>();
@@ -207,7 +207,7 @@ public class MapleStorage {
return ret; return ret;
} }
public byte getSlot(MapleInventoryType type, byte slot) { public byte getSlot(InventoryType type, byte slot) {
lock.lock(); lock.lock();
try { try {
byte ret = 0; byte ret = 0;
@@ -243,7 +243,7 @@ public class MapleStorage {
}); });
List<Item> storageItems = getItems(); List<Item> storageItems = getItems();
for (MapleInventoryType type : MapleInventoryType.values()) { for (InventoryType type : InventoryType.values()) {
typeItems.put(type, new ArrayList<>(storageItems)); typeItems.put(type, new ArrayList<>(storageItems));
} }
@@ -254,7 +254,7 @@ public class MapleStorage {
} }
} }
public void sendStored(MapleClient c, MapleInventoryType type) { public void sendStored(MapleClient c, InventoryType type) {
lock.lock(); lock.lock();
try { try {
c.sendPacket(PacketCreator.storeStorage(slots, type, typeItems.get(type))); c.sendPacket(PacketCreator.storeStorage(slots, type, typeItems.get(type)));
@@ -263,7 +263,7 @@ public class MapleStorage {
} }
} }
public void sendTakenOut(MapleClient c, MapleInventoryType type) { public void sendTakenOut(MapleClient c, InventoryType type) {
lock.lock(); lock.lock();
try { try {
c.sendPacket(PacketCreator.takeOutStorage(slots, type, typeItems.get(type))); c.sendPacket(PacketCreator.takeOutStorage(slots, type, typeItems.get(type)));
@@ -279,7 +279,7 @@ public class MapleStorage {
msi.mergeItems(); msi.mergeItems();
items = msi.sortItems(); items = msi.sortItems();
for (MapleInventoryType type : MapleInventoryType.values()) { for (InventoryType type : InventoryType.values()) {
typeItems.put(type, new ArrayList<>(items)); typeItems.put(type, new ArrayList<>(items));
} }
+2 -2
View File
@@ -23,8 +23,8 @@ package server;
import client.MapleCharacter; import client.MapleCharacter;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig; import config.YamlConfig;
@@ -246,7 +246,7 @@ public class MapleTrade {
} }
private boolean fitsInInventory() { private boolean fitsInInventory() {
List<Pair<Item, MapleInventoryType>> tradeItems = new LinkedList<>(); List<Pair<Item, InventoryType>> tradeItems = new LinkedList<>();
for (Item item : exchangeItems) { for (Item item : exchangeItems) {
tradeItems.add(new Pair<>(item, item.getInventoryType())); tradeItems.add(new Pair<>(item, item.getInventoryType()));
} }
@@ -23,8 +23,8 @@ package server.life;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig; import config.YamlConfig;
import constants.game.GameConstants; import constants.game.GameConstants;
import net.server.Server; import net.server.Server;
@@ -451,7 +451,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
try (PreparedStatement ps = con.prepareStatement("INSERT INTO playernpcs_equip (npcid, equipid, equippos) VALUES (?, ?, ?)")) { try (PreparedStatement ps = con.prepareStatement("INSERT INTO playernpcs_equip (npcid, equipid, equippos) VALUES (?, ?, ?)")) {
ps.setInt(1, npcId); ps.setInt(1, npcId);
for (Item equip : chr.getInventory(MapleInventoryType.EQUIPPED)) { for (Item equip : chr.getInventory(InventoryType.EQUIPPED)) {
int position = Math.abs(equip.getPosition()); int position = Math.abs(equip.getPosition());
if ((position < 12 && position > 0) || (position > 100 && position < 112)) { if ((position < 12 && position > 0) || (position > 100 && position < 112)) {
ps.setInt(2, equip.getItemId()); ps.setInt(2, equip.getItemId());
@@ -20,10 +20,11 @@
package server.loot; package server.loot;
import client.MapleCharacter; import client.MapleCharacter;
import client.inventory.InventoryType;
import client.inventory.Item;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
/** /**
@@ -34,7 +35,7 @@ public class MapleLootInventory {
Map<Integer, Integer> items = new HashMap<>(50); Map<Integer, Integer> items = new HashMap<>(50);
public MapleLootInventory(MapleCharacter from) { public MapleLootInventory(MapleCharacter from) {
for (MapleInventoryType values : MapleInventoryType.values()) { for (InventoryType values : InventoryType.values()) {
for(Item it : from.getInventory(values).list()) { for(Item it : from.getInventory(values).list()) {
Integer itemQty = items.get(it.getItemId()); Integer itemQty = items.get(it.getItemId());
@@ -24,9 +24,9 @@ package server.maps;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.ItemFactory; import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import client.processor.npc.FredrickProcessor; import client.processor.npc.FredrickProcessor;
@@ -266,7 +266,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) { if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
} else if (newItem.getInventoryType().equals(MapleInventoryType.EQUIP) && newItem.getQuantity() > 1) { } else if (newItem.getInventoryType().equals(InventoryType.EQUIP) && newItem.getQuantity() > 1) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return; return;
} }
@@ -410,7 +410,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
if (check(c.getPlayer(), copyItems) && !timeout) { if (check(c.getPlayer(), copyItems) && !timeout) {
for (MaplePlayerShopItem mpsi : copyItems) { for (MaplePlayerShopItem mpsi : copyItems) {
if (mpsi.isExist()) { if (mpsi.isExist()) {
if (mpsi.getItem().getInventoryType().equals(MapleInventoryType.EQUIP)) { if (mpsi.getItem().getInventoryType().equals(InventoryType.EQUIP)) {
MapleInventoryManipulator.addFromDrop(c, mpsi.getItem(), false); MapleInventoryManipulator.addFromDrop(c, mpsi.getItem(), false);
} else { } else {
MapleInventoryManipulator.addById(c, mpsi.getItem().getItemId(), (short) (mpsi.getBundles() * mpsi.getItem().getQuantity()), mpsi.getItem().getOwner(), -1, mpsi.getItem().getFlag(), mpsi.getItem().getExpiration()); MapleInventoryManipulator.addById(c, mpsi.getItem().getItemId(), (short) (mpsi.getBundles() * mpsi.getItem().getQuantity()), mpsi.getItem().getOwner(), -1, mpsi.getItem().getFlag(), mpsi.getItem().getExpiration());
@@ -622,7 +622,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
} }
public void saveItems(boolean shutdown) throws SQLException { public void saveItems(boolean shutdown) throws SQLException {
List<Pair<Item, MapleInventoryType>> itemsWithType = new ArrayList<>(); List<Pair<Item, InventoryType>> itemsWithType = new ArrayList<>();
List<Short> bundles = new ArrayList<>(); List<Short> bundles = new ArrayList<>();
for (MaplePlayerShopItem pItems : getItems()) { for (MaplePlayerShopItem pItems : getItems()) {
@@ -648,7 +648,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
} }
private static boolean check(MapleCharacter chr, List<MaplePlayerShopItem> items) { private static boolean check(MapleCharacter chr, List<MaplePlayerShopItem> items) {
List<Pair<Item, MapleInventoryType>> li = new ArrayList<>(); List<Pair<Item, InventoryType>> li = new ArrayList<>();
for (MaplePlayerShopItem item : items) { for (MaplePlayerShopItem item : items) {
Item it = item.getItem().copy(); Item it = item.getItem().copy();
it.setQuantity((short)(it.getQuantity() * item.getBundles())); it.setQuantity((short)(it.getQuantity() * item.getBundles()));
+4 -4
View File
@@ -26,8 +26,8 @@ import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.autoban.AutobanFactory; import client.autoban.AutobanFactory;
import client.inventory.Equip; import client.inventory.Equip;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet; import client.inventory.MaplePet;
import client.status.MonsterStatus; import client.status.MonsterStatus;
import client.status.MonsterStatusEffect; import client.status.MonsterStatusEffect;
@@ -659,7 +659,7 @@ public class MapleMap {
spawnMesoDrop(mesos, calcDropPos(pos, mob.getPosition()), mob, chr, false, droptype); spawnMesoDrop(mesos, calcDropPos(pos, mob.getPosition()), mob, chr, false, droptype);
} }
} else { } else {
if (ItemConstants.getInventoryType(de.itemId) == MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(de.itemId) == InventoryType.EQUIP) {
idrop = ii.randomizeStats((Equip) ii.getEquipById(de.itemId)); idrop = ii.randomizeStats((Equip) ii.getEquipById(de.itemId));
} else { } else {
idrop = new Item(de.itemId, (short) 0, (short) (de.Maximum != 1 ? Randomizer.nextInt(de.Maximum - de.Minimum) + de.Minimum : 1)); idrop = new Item(de.itemId, (short) 0, (short) (de.Maximum != 1 ? Randomizer.nextInt(de.Maximum - de.Minimum) + de.Minimum : 1));
@@ -687,7 +687,7 @@ public class MapleMap {
pos.x = mobpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2))); pos.x = mobpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2)));
} }
if (de.itemId != 0) { if (de.itemId != 0) {
if (ItemConstants.getInventoryType(de.itemId) == MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(de.itemId) == InventoryType.EQUIP) {
idrop = ii.randomizeStats((Equip) ii.getEquipById(de.itemId)); idrop = ii.randomizeStats((Equip) ii.getEquipById(de.itemId));
} else { } else {
idrop = new Item(de.itemId, (short) 0, (short) (de.Maximum != 1 ? Randomizer.nextInt(de.Maximum - de.Minimum) + de.Minimum : 1)); idrop = new Item(de.itemId, (short) 0, (short) (de.Maximum != 1 ? Randomizer.nextInt(de.Maximum - de.Minimum) + de.Minimum : 1));
@@ -2189,7 +2189,7 @@ public class MapleMap {
final Item drop; final Item drop;
int randomedId = integer; int randomedId = integer;
if (ItemConstants.getInventoryType(randomedId) != MapleInventoryType.EQUIP) { if (ItemConstants.getInventoryType(randomedId) != InventoryType.EQUIP) {
drop = new Item(randomedId, (short) 0, (short) (rnd.nextInt(copies) + minCopies)); drop = new Item(randomedId, (short) 0, (short) (rnd.nextInt(copies) + minCopies));
} else { } else {
drop = ii.randomizeStats((Equip) ii.getEquipById(randomedId)); drop = ii.randomizeStats((Equip) ii.getEquipById(randomedId));
@@ -24,8 +24,8 @@ package server.maps;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.Inventory; import client.inventory.Inventory;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator; import client.inventory.manipulator.MapleKarmaManipulator;
import net.packet.Packet; import net.packet.Packet;
@@ -255,7 +255,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) { if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return false; return false;
} else if (newItem.getInventoryType().equals(MapleInventoryType.EQUIP) && newItem.getQuantity() > 1) { } else if (newItem.getInventoryType().equals(InventoryType.EQUIP) && newItem.getQuantity() > 1) {
c.sendPacket(PacketCreator.enableActions()); c.sendPacket(PacketCreator.enableActions());
return false; return false;
} }
@@ -23,8 +23,8 @@ package server.quest.actions;
import client.MapleCharacter; import client.MapleCharacter;
import client.MapleClient; import client.MapleClient;
import client.inventory.InventoryType;
import client.inventory.Item; import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleInventoryManipulator;
import constants.inventory.ItemConstants; import constants.inventory.ItemConstants;
import provider.MapleData; import provider.MapleData;
@@ -130,14 +130,14 @@ public class ItemAction extends MapleQuestAction {
for(ItemData iEntry: takeItem) { for(ItemData iEntry: takeItem) {
int itemid = iEntry.getId(), count = iEntry.getCount(); int itemid = iEntry.getId(), count = iEntry.getCount();
MapleInventoryType type = ItemConstants.getInventoryType(itemid); InventoryType type = ItemConstants.getInventoryType(itemid);
int quantity = count * -1; // Invert int quantity = count * -1; // Invert
if(type.equals(MapleInventoryType.EQUIP)) { if(type.equals(InventoryType.EQUIP)) {
if(chr.getInventory(type).countById(itemid) < quantity) { if(chr.getInventory(type).countById(itemid) < quantity) {
// Not enough in the equip inventoty, so check Equipped... // Not enough in the equip inventoty, so check Equipped...
if(chr.getInventory(MapleInventoryType.EQUIPPED).countById(itemid) > quantity) { if(chr.getInventory(InventoryType.EQUIPPED).countById(itemid) > quantity) {
// Found it equipped, so change the type to equipped. // Found it equipped, so change the type to equipped.
type = MapleInventoryType.EQUIPPED; type = InventoryType.EQUIPPED;
} }
} }
} }
@@ -156,9 +156,9 @@ public class ItemAction extends MapleQuestAction {
@Override @Override
public boolean check(MapleCharacter chr, Integer extSelection) { public boolean check(MapleCharacter chr, Integer extSelection) {
List<Pair<Item, MapleInventoryType>> gainList = new LinkedList<>(); List<Pair<Item, InventoryType>> gainList = new LinkedList<>();
List<Pair<Item, MapleInventoryType>> selectList = new LinkedList<>(); List<Pair<Item, InventoryType>> selectList = new LinkedList<>();
List<Pair<Item, MapleInventoryType>> randomList = new LinkedList<>(); List<Pair<Item, InventoryType>> randomList = new LinkedList<>();
List<Integer> allSlotUsed = new ArrayList(5); List<Integer> allSlotUsed = new ArrayList(5);
for(byte i = 0; i < 5; i++) allSlotUsed.add(0); for(byte i = 0; i < 5; i++) allSlotUsed.add(0);
@@ -168,7 +168,7 @@ public class ItemAction extends MapleQuestAction {
continue; continue;
} }
MapleInventoryType type = ItemConstants.getInventoryType(item.getId()); InventoryType type = ItemConstants.getInventoryType(item.getId());
if(item.getProp() != null) { if(item.getProp() != null) {
Item toItem = new Item(item.getId(), (short) 0, (short) item.getCount()); Item toItem = new Item(item.getId(), (short) 0, (short) item.getCount());
@@ -189,7 +189,7 @@ public class ItemAction extends MapleQuestAction {
int freeSlotCount = chr.getInventory(type).freeSlotCountById(item.getId(), quantity); int freeSlotCount = chr.getInventory(type).freeSlotCountById(item.getId(), quantity);
if(freeSlotCount == -1) { if(freeSlotCount == -1) {
if(type.equals(MapleInventoryType.EQUIP) && chr.getInventory(MapleInventoryType.EQUIPPED).countById(item.getId()) > quantity) if(type.equals(InventoryType.EQUIP) && chr.getInventory(InventoryType.EQUIPPED).countById(item.getId()) > quantity)
continue; continue;
announceInventoryLimit(Collections.singletonList(item.getId()), chr); announceInventoryLimit(Collections.singletonList(item.getId()), chr);
@@ -209,7 +209,7 @@ public class ItemAction extends MapleQuestAction {
List<Integer> rndUsed = new ArrayList(5); List<Integer> rndUsed = new ArrayList(5);
for(byte i = 0; i < 5; i++) rndUsed.add(allSlotUsed.get(i)); for(byte i = 0; i < 5; i++) rndUsed.add(allSlotUsed.get(i));
for(Pair<Item, MapleInventoryType> it: randomList) { for(Pair<Item, InventoryType> it: randomList) {
int idx = it.getRight().getType() - 1; int idx = it.getRight().getType() - 1;
result = MapleInventoryManipulator.checkSpaceProgressively(c, it.getLeft().getItemId(), it.getLeft().getQuantity(), "", rndUsed.get(idx), false); result = MapleInventoryManipulator.checkSpaceProgressively(c, it.getLeft().getItemId(), it.getLeft().getQuantity(), "", rndUsed.get(idx), false);
@@ -223,13 +223,13 @@ public class ItemAction extends MapleQuestAction {
} }
if(!selectList.isEmpty()) { if(!selectList.isEmpty()) {
Pair<Item, MapleInventoryType> selected = selectList.get(extSelection); Pair<Item, InventoryType> selected = selectList.get(extSelection);
gainList.add(selected); gainList.add(selected);
} }
if (!canHold(chr, gainList)) { if (!canHold(chr, gainList)) {
List<Integer> gainItemids = new LinkedList<>(); List<Integer> gainItemids = new LinkedList<>();
for (Pair<Item, MapleInventoryType> it : gainList) { for (Pair<Item, InventoryType> it : gainList) {
gainItemids.add(it.getLeft().getItemId()); gainItemids.add(it.getLeft().getItemId());
} }
@@ -250,13 +250,13 @@ public class ItemAction extends MapleQuestAction {
chr.dropMessage(1, "Please check if you have enough space in your inventory."); chr.dropMessage(1, "Please check if you have enough space in your inventory.");
} }
private boolean canHold(MapleCharacter chr, List<Pair<Item, MapleInventoryType>> gainList) { private boolean canHold(MapleCharacter chr, List<Pair<Item, InventoryType>> gainList) {
List<Integer> toAddItemids = new LinkedList<>(); List<Integer> toAddItemids = new LinkedList<>();
List<Integer> toAddQuantity = new LinkedList<>(); List<Integer> toAddQuantity = new LinkedList<>();
List<Integer> toRemoveItemids = new LinkedList<>(); List<Integer> toRemoveItemids = new LinkedList<>();
List<Integer> toRemoveQuantity = new LinkedList<>(); List<Integer> toRemoveQuantity = new LinkedList<>();
for (Pair<Item, MapleInventoryType> item : gainList) { for (Pair<Item, InventoryType> item : gainList) {
Item it = item.getLeft(); Item it = item.getLeft();
if (it.getQuantity() > 0) { if (it.getQuantity() > 0) {
@@ -21,18 +21,18 @@
*/ */
package server.quest.requirements; package server.quest.requirements;
import java.util.HashMap; import client.MapleCharacter;
import java.util.Map; import client.inventory.InventoryType;
import client.inventory.Item;
import constants.inventory.ItemConstants;
import provider.MapleData; import provider.MapleData;
import provider.MapleDataTool; import provider.MapleDataTool;
import server.MapleItemInformationProvider; import server.MapleItemInformationProvider;
import server.quest.MapleQuest; import server.quest.MapleQuest;
import server.quest.MapleQuestRequirementType; import server.quest.MapleQuestRequirementType;
import client.MapleCharacter;
import client.inventory.Item; import java.util.HashMap;
import client.inventory.MapleInventoryType; import java.util.Map;
import constants.inventory.ItemConstants;
/** /**
* *
@@ -65,23 +65,23 @@ public class ItemRequirement extends MapleQuestRequirement {
int countNeeded = items.get(itemId); int countNeeded = items.get(itemId);
int count = 0; int count = 0;
MapleInventoryType iType = ItemConstants.getInventoryType(itemId); InventoryType iType = ItemConstants.getInventoryType(itemId);
if (iType.equals(MapleInventoryType.UNDEFINED)) { if (iType.equals(InventoryType.UNDEFINED)) {
return false; return false;
} }
for (Item item : chr.getInventory(iType).listById(itemId)) { for (Item item : chr.getInventory(iType).listById(itemId)) {
count += item.getQuantity(); count += item.getQuantity();
} }
//Weird stuff, nexon made some quests only available when wearing gm clothes. This enables us to accept it >< //Weird stuff, nexon made some quests only available when wearing gm clothes. This enables us to accept it ><
if (iType.equals(MapleInventoryType.EQUIP) && !ItemConstants.isMedal(itemId)) { if (iType.equals(InventoryType.EQUIP) && !ItemConstants.isMedal(itemId)) {
if(chr.isGM()) { if(chr.isGM()) {
for (Item item : chr.getInventory(MapleInventoryType.EQUIPPED).listById(itemId)) { for (Item item : chr.getInventory(InventoryType.EQUIPPED).listById(itemId)) {
count += item.getQuantity(); count += item.getQuantity();
} }
} else { } else {
if(count < countNeeded) { if(count < countNeeded) {
if(chr.getInventory(MapleInventoryType.EQUIPPED).countById(itemId) + count >= countNeeded) { if(chr.getInventory(InventoryType.EQUIPPED).countById(itemId) + count >= countNeeded) {
chr.dropMessage(5, "Unequip the required " + ii.getName(itemId) + " before trying this quest operation."); chr.dropMessage(5, "Unequip the required " + ii.getName(itemId) + " before trying this quest operation.");
return false; return false;
} }
+19 -19
View File
@@ -246,7 +246,7 @@ public class PacketCreator {
} }
private static void addCharEquips(final OutPacket p, MapleCharacter chr) { private static void addCharEquips(final OutPacket p, MapleCharacter chr) {
Inventory equip = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory equip = chr.getInventory(InventoryType.EQUIPPED);
Collection<Item> ii = MapleItemInformationProvider.getInstance().canWearEquipment(chr, equip.list()); Collection<Item> ii = MapleItemInformationProvider.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<>();
@@ -441,10 +441,10 @@ public class PacketCreator {
private static void addInventoryInfo(OutPacket p, MapleCharacter chr) { private static void addInventoryInfo(OutPacket p, MapleCharacter chr) {
for (byte i = 1; i <= 5; i++) { for (byte i = 1; i <= 5; i++) {
p.writeByte(chr.getInventory(MapleInventoryType.getByType(i)).getSlotLimit()); p.writeByte(chr.getInventory(InventoryType.getByType(i)).getSlotLimit());
} }
p.writeLong(getTime(-2)); p.writeLong(getTime(-2));
Inventory iv = chr.getInventory(MapleInventoryType.EQUIPPED); Inventory iv = chr.getInventory(InventoryType.EQUIPPED);
Collection<Item> equippedC = iv.list(); Collection<Item> equippedC = iv.list();
List<Item> equipped = new ArrayList<>(equippedC.size()); List<Item> equipped = new ArrayList<>(equippedC.size());
List<Item> equippedCash = new ArrayList<>(equippedC.size()); List<Item> equippedCash = new ArrayList<>(equippedC.size());
@@ -463,23 +463,23 @@ public class PacketCreator {
addItemInfo(p, item); addItemInfo(p, item);
} }
p.writeShort(0); // start of equip inventory p.writeShort(0); // start of equip inventory
for (Item item : chr.getInventory(MapleInventoryType.EQUIP).list()) { for (Item item : chr.getInventory(InventoryType.EQUIP).list()) {
addItemInfo(p, item); addItemInfo(p, item);
} }
p.writeInt(0); p.writeInt(0);
for (Item item : chr.getInventory(MapleInventoryType.USE).list()) { for (Item item : chr.getInventory(InventoryType.USE).list()) {
addItemInfo(p, item); addItemInfo(p, item);
} }
p.writeByte(0); p.writeByte(0);
for (Item item : chr.getInventory(MapleInventoryType.SETUP).list()) { for (Item item : chr.getInventory(InventoryType.SETUP).list()) {
addItemInfo(p, item); addItemInfo(p, item);
} }
p.writeByte(0); p.writeByte(0);
for (Item item : chr.getInventory(MapleInventoryType.ETC).list()) { for (Item item : chr.getInventory(InventoryType.ETC).list()) {
addItemInfo(p, item); addItemInfo(p, item);
} }
p.writeByte(0); p.writeByte(0);
for (Item item : chr.getInventory(MapleInventoryType.CASH).list()) { for (Item item : chr.getInventory(InventoryType.CASH).list()) {
addItemInfo(p, item); addItemInfo(p, item);
} }
} }
@@ -1921,9 +1921,9 @@ public class PacketCreator {
}*/ }*/
addCharLook(p, chr, false); addCharLook(p, chr, false);
p.writeInt(chr.getInventory(MapleInventoryType.CASH).countById(5110000)); p.writeInt(chr.getInventory(InventoryType.CASH).countById(5110000));
p.writeInt(chr.getItemEffect()); p.writeInt(chr.getItemEffect());
p.writeInt(ItemConstants.getInventoryType(chr.getChair()) == MapleInventoryType.SETUP ? chr.getChair() : 0); p.writeInt(ItemConstants.getInventoryType(chr.getChair()) == InventoryType.SETUP ? chr.getChair() : 0);
if (enteringField) { if (enteringField) {
Point spawnPos = new Point(chr.getPosition()); Point spawnPos = new Point(chr.getPosition());
@@ -2694,7 +2694,7 @@ public class PacketCreator {
p.writeByte(0); // pMedalInfo, thanks to Arnah (Vertisy) p.writeByte(0); // pMedalInfo, thanks to Arnah (Vertisy)
MaplePet[] pets = chr.getPets(); MaplePet[] pets = chr.getPets();
Item inv = chr.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -114); Item inv = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -114);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (pets[i] != null) { if (pets[i] != null) {
p.writeByte(pets[i].getUniqueId()); p.writeByte(pets[i].getUniqueId());
@@ -2710,7 +2710,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(MapleInventoryType.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 && MapleItemInformationProvider.getInstance().getEquipLevelReq(mount.getItemId()) <= chr.getLevel()) {
MapleMount mmount = chr.getMount(); MapleMount 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.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 ? MapleItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0);
Item medal = chr.getInventory(MapleInventoryType.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());
} else { } else {
@@ -3552,7 +3552,7 @@ public class PacketCreator {
return p; return p;
} }
public static Packet storeStorage(byte slots, MapleInventoryType type, Collection<Item> items) { public static Packet storeStorage(byte slots, InventoryType type, Collection<Item> items) {
final OutPacket p = OutPacket.create(SendOpcode.STORAGE); final OutPacket p = OutPacket.create(SendOpcode.STORAGE);
p.writeByte(0xD); p.writeByte(0xD);
p.writeByte(slots); p.writeByte(slots);
@@ -3566,7 +3566,7 @@ public class PacketCreator {
return p; return p;
} }
public static Packet takeOutStorage(byte slots, MapleInventoryType type, Collection<Item> items) { public static Packet takeOutStorage(byte slots, InventoryType type, Collection<Item> items) {
final OutPacket p = OutPacket.create(SendOpcode.STORAGE); final OutPacket p = OutPacket.create(SendOpcode.STORAGE);
p.writeByte(0x9); p.writeByte(0x9);
p.writeByte(slots); p.writeByte(slots);
@@ -4929,10 +4929,10 @@ public class PacketCreator {
p.writeInt(chr.getMerchantNetMeso()); p.writeInt(chr.getMerchantNetMeso());
p.writeByte(0); p.writeByte(0);
try { try {
List<Pair<Item, MapleInventoryType>> items = ItemFactory.MERCHANT.loadItems(chr.getId(), false); List<Pair<Item, InventoryType>> items = ItemFactory.MERCHANT.loadItems(chr.getId(), false);
p.writeByte(items.size()); p.writeByte(items.size());
for (Pair<Item, MapleInventoryType> item : items) { for (Pair<Item, InventoryType> item : items) {
addItemInfo(p, item.getLeft(), true); addItemInfo(p, item.getLeft(), true);
} }
} catch (SQLException e) { } catch (SQLException e) {
@@ -5040,7 +5040,7 @@ public class PacketCreator {
} }
p.writeByte(itemType); p.writeByte(itemType);
if (itemType == MapleInventoryType.EQUIP.getType()) { if (itemType == InventoryType.EQUIP.getType()) {
addItemInfo(p, item.getItem(), true); addItemInfo(p, item.getItem(), true);
} }
} }
@@ -6895,7 +6895,7 @@ public class PacketCreator {
boolean isGift = giftMessage != null; boolean isGift = giftMessage != null;
boolean isRing = false; boolean isRing = false;
Equip equip = null; Equip equip = null;
if (item.getInventoryType().equals(MapleInventoryType.EQUIP)) { if (item.getInventoryType().equals(InventoryType.EQUIP)) {
equip = (Equip) item; equip = (Equip) item;
isRing = equip.getRingId() > -1; isRing = equip.getRingId() > -1;
} }