Merge pull request #147 from nevercast/fix-smpbug

Fix for SMP bug
This commit is contained in:
pahimar 2012-12-30 23:23:13 -08:00
commit 50b822c15c
2 changed files with 23 additions and 1 deletions

View file

@ -233,6 +233,28 @@ public class EquivalencyHandler {
return false;
}
}
/* Ignores stack size for world transmutation */
public boolean areWorldEquivalent(Object obj1, Object obj2) {
ItemStack first = GeneralHelper.convertObjectToItemStack(obj1);
if(first == null) return false;
ItemStack second = GeneralHelper.convertObjectToItemStack(obj1);
if(second == null) return false;
if ((getEquivalencyList(first.itemID, first.getItemDamage()) != null) && (getEquivalencyList(second.itemID, second.getItemDamage()) != null)) {
if ((first.itemID == second.itemID) && (first.getItemDamage() == second.getItemDamage())) {
return true;
}
else {
return (getEquivalencyList(first.itemID, first.getItemDamage()).equals(getEquivalencyList(second.itemID, second.getItemDamage())));
}
}
else {
return false;
}
}
public void debug() {

View file

@ -128,7 +128,7 @@ public class WorldTransmutationHandler {
ItemStack targetStack = new ItemStack(event.targetID, 1, event.targetMeta);
if (!worldStack.isItemEqual(targetStack)) {
if (EquivalencyHandler.instance().areEquivalent(worldStack, targetStack)) {
if (EquivalencyHandler.instance().areWorldEquivalent(worldStack, targetStack)) {
if (event.itemStack.getItemDamage() < event.itemStack.getMaxDamage()) {
result = TransmutationHelper.transmuteInWorld(event.world, event.player, event.player.getCurrentEquippedItem(), event.x, event.y, event.z, event.targetID, event.targetMeta);
}