mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-27 15:09:34 +02:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 9153f77e PR-841: Remove incorrect ClickType.CONTROL_DROP from ClickType#isShiftClick bceda6ab PR-840: Adjust annotations in Display entity interface a6b85ac3 PR-835: Add Jukebox#hasRecord() and #startPlaying(), clarify #setRecord() CraftBukkit Changes: e142fb9fd SPIGOT-7188: ChunkSnapshot biome y coordinate doesn't match chunk biome y coord eff1743b9 SPIGOT-7313: More accurately edit data on Jukeboxes
31 lines
1.8 KiB
Diff
31 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
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 d3644b268c10fd839338a5b1bfc42b4ae5286555..d445a75736d4ab9f790387c6a8f077cc45f7023f 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 = new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
|
- this.getHandle().openMenu(((EnchantmentTableBlock) Blocks.ENCHANTING_TABLE).getMenuProvider(null, this.getHandle().level, pos));
|
|
+ // Paper start
|
|
+ MenuProvider menuProvider = ((EnchantmentTableBlock) Blocks.ENCHANTING_TABLE).getMenuProvider(null, 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;
|