Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-20 21:40:06 +01:00
Fix some improper item cloning instances that would have dropped enchantments
Dieser Commit ist enthalten in:
Ursprung
77ceb0002c
Commit
f27427ad19
@ -68,8 +68,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setItemOnCursor(ItemStack item) {
|
public void setItemOnCursor(ItemStack item) {
|
||||||
CraftItemStack stack = new CraftItemStack(item.getType(), item.getAmount(), item.getDurability());
|
CraftItemStack stack = new CraftItemStack(item);
|
||||||
getHandle().inventory.setCarried(stack.getType() == Material.AIR ? null : stack.getHandle());
|
getHandle().inventory.setCarried(stack.getHandle());
|
||||||
if (this instanceof CraftPlayer) {
|
if (this instanceof CraftPlayer) {
|
||||||
((EntityPlayer) getHandle()).broadcastCarriedItem(); // Send set slot for cursor
|
((EntityPlayer) getHandle()).broadcastCarriedItem(); // Send set slot for cursor
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,7 @@ public class CraftInventory implements Inventory {
|
|||||||
} else {
|
} else {
|
||||||
// More than a single stack!
|
// More than a single stack!
|
||||||
if (item.getAmount() > getMaxItemStack()) {
|
if (item.getAmount() > getMaxItemStack()) {
|
||||||
CraftItemStack stack = new CraftItemStack(item.getTypeId(), getMaxItemStack(), item.getDurability());
|
CraftItemStack stack = new CraftItemStack(item);
|
||||||
stack.addUnsafeEnchantments(item.getEnchantments());
|
stack.addUnsafeEnchantments(item.getEnchantments());
|
||||||
setItem(firstFree, stack);
|
setItem(firstFree, stack);
|
||||||
item.setAmount(item.getAmount() - getMaxItemStack());
|
item.setAmount(item.getAmount() - getMaxItemStack());
|
||||||
|
@ -114,7 +114,7 @@ public class CraftInventoryCrafting extends CraftInventory implements CraftingIn
|
|||||||
if (item == null || item.getTypeId() <= 0) {
|
if (item == null || item.getTypeId() <= 0) {
|
||||||
mcItems[i] = null;
|
mcItems[i] = null;
|
||||||
} else {
|
} else {
|
||||||
mcItems[i] = new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), item.getDurability());
|
mcItems[i] = CraftItemStack.createNMSItemStack(item);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mcItems[i] = null;
|
mcItems[i] = null;
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren