mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-24 08:06:41 +01:00
dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
38 lines
2.3 KiB
Diff
38 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
Date: Wed, 20 Mar 2024 20:41:35 -0400
|
|
Subject: [PATCH] Item Mutation Fixes
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
index c1b9c3ad2cccfa520e9d73b786142624ac5f3380..07223046761cb2186d75de8edc03a91d2e8e8b2f 100644
|
|
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
|
@@ -235,7 +235,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
|
|
return false;
|
|
} else if (this.costs[id] > 0 && !itemstack.isEmpty() && (player.experienceLevel >= j && player.experienceLevel >= this.costs[id] || player.getAbilities().instabuild)) {
|
|
this.access.execute((world, blockposition) -> {
|
|
- ItemStack itemstack2 = itemstack;
|
|
+ ItemStack itemstack2 = itemstack; // Paper - diff on change
|
|
List<EnchantmentInstance> list = this.getEnchantmentList(world.registryAccess(), itemstack, id, this.costs[id]);
|
|
|
|
// CraftBukkit start
|
|
@@ -258,10 +258,16 @@ public class EnchantmentMenu extends AbstractContainerMenu {
|
|
return;
|
|
}
|
|
// CraftBukkit end
|
|
- if (itemstack.is(Items.BOOK)) {
|
|
- itemstack2 = itemstack.transmuteCopy(Items.ENCHANTED_BOOK);
|
|
+ // Paper start
|
|
+ itemstack2 = org.bukkit.craftbukkit.inventory.CraftItemStack.getOrCloneOnMutation(item, event.getItem());
|
|
+ if (itemstack2 != itemstack) {
|
|
this.enchantSlots.setItem(0, itemstack2);
|
|
}
|
|
+ if (itemstack2.is(Items.BOOK)) {
|
|
+ itemstack2 = itemstack2.transmuteCopy(Items.ENCHANTED_BOOK);
|
|
+ this.enchantSlots.setItem(0, itemstack2);
|
|
+ }
|
|
+ // Paper end
|
|
|
|
// CraftBukkit start
|
|
for (Map.Entry<org.bukkit.enchantments.Enchantment, Integer> entry : event.getEnchantsToAdd().entrySet()) {
|