diff options
author | Nassim Jahnke <[email protected]> | 2024-06-16 12:56:00 +0200 |
---|---|---|
committer | Nassim Jahnke <[email protected]> | 2024-06-16 12:56:00 +0200 |
commit | dc684c60d16f66ea84467ec8e253f2a36a17a7c8 (patch) | |
tree | e516f1bd4bfbdb37a5aeee42384aade111eca3e1 /patches/server/0800-Fix-force-opening-enchantment-tables.patch | |
parent | 752f957e12e4ceb8b7d2043a4a7dbce786b7b98f (diff) | |
download | Paper-dc684c60d16f66ea84467ec8e253f2a36a17a7c8.tar.gz Paper-dc684c60d16f66ea84467ec8e253f2a36a17a7c8.zip |
Remove bad server.scheduleOnMain disconnect calls from old patches
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
Diffstat (limited to 'patches/server/0800-Fix-force-opening-enchantment-tables.patch')
-rw-r--r-- | patches/server/0800-Fix-force-opening-enchantment-tables.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/patches/server/0800-Fix-force-opening-enchantment-tables.patch b/patches/server/0800-Fix-force-opening-enchantment-tables.patch new file mode 100644 index 0000000000..eac3ab63ee --- /dev/null +++ b/patches/server/0800-Fix-force-opening-enchantment-tables.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Thu, 26 Jan 2023 16:19:26 -0800 +Subject: [PATCH] Fix force-opening enchantment tables + + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +index 79faf3c64891899bf5d6d119154aba02d4665b3b..e1150d36de56466ad9fdd5f2cdb4c30855d4af70 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +@@ -403,7 +403,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { + + // If there isn't an enchant table we can force create one, won't be very useful though. + BlockPos pos = CraftLocation.toBlockPosition(location); +- this.getHandle().openMenu(Blocks.ENCHANTING_TABLE.defaultBlockState().getMenuProvider(this.getHandle().level(), pos)); ++ // Paper start ++ MenuProvider menuProvider = Blocks.ENCHANTING_TABLE.defaultBlockState().getMenuProvider(this.getHandle().level(), pos); ++ if (menuProvider == null) { ++ if (!force) { ++ return null; ++ } ++ menuProvider = new net.minecraft.world.SimpleMenuProvider((syncId, inventory, player) -> { ++ return new net.minecraft.world.inventory.EnchantmentMenu(syncId, inventory, net.minecraft.world.inventory.ContainerLevelAccess.create(this.getHandle().level(), pos)); ++ }, Component.translatable("container.enchant")); ++ } ++ this.getHandle().openMenu(menuProvider); ++ // Paper end + + if (force) { + this.getHandle().containerMenu.checkReachable = false; |