mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-25 10:27:55 +01:00
Fix some improper item cloning instances that would have dropped enchantments
This commit is contained in:
parent
77ceb0002c
commit
f27427ad19
@ -68,8 +68,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
}
|
||||
|
||||
public void setItemOnCursor(ItemStack item) {
|
||||
CraftItemStack stack = new CraftItemStack(item.getType(), item.getAmount(), item.getDurability());
|
||||
getHandle().inventory.setCarried(stack.getType() == Material.AIR ? null : stack.getHandle());
|
||||
CraftItemStack stack = new CraftItemStack(item);
|
||||
getHandle().inventory.setCarried(stack.getHandle());
|
||||
if (this instanceof CraftPlayer) {
|
||||
((EntityPlayer) getHandle()).broadcastCarriedItem(); // Send set slot for cursor
|
||||
}
|
||||
|
@ -266,7 +266,7 @@ public class CraftInventory implements Inventory {
|
||||
} else {
|
||||
// More than a single stack!
|
||||
if (item.getAmount() > getMaxItemStack()) {
|
||||
CraftItemStack stack = new CraftItemStack(item.getTypeId(), getMaxItemStack(), item.getDurability());
|
||||
CraftItemStack stack = new CraftItemStack(item);
|
||||
stack.addUnsafeEnchantments(item.getEnchantments());
|
||||
setItem(firstFree, stack);
|
||||
item.setAmount(item.getAmount() - getMaxItemStack());
|
||||
|
@ -114,7 +114,7 @@ public class CraftInventoryCrafting extends CraftInventory implements CraftingIn
|
||||
if (item == null || item.getTypeId() <= 0) {
|
||||
mcItems[i] = null;
|
||||
} else {
|
||||
mcItems[i] = new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), item.getDurability());
|
||||
mcItems[i] = CraftItemStack.createNMSItemStack(item);
|
||||
}
|
||||
} else {
|
||||
mcItems[i] = null;
|
||||
|
Loading…
Reference in New Issue
Block a user