mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
Fix shift click result in anvil/grindstone take result event
This commit is contained in:
@@ -5,17 +5,29 @@ Subject: [PATCH] Grindstone API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
|
||||
index 36a6db1752fbde0e071af0da8c212c5c834b5b2e..f22dadd89a5f0e4171e3c6b9d9b87d1ca958b0df 100644
|
||||
index 36a6db1752fbde0e071af0da8c212c5c834b5b2e..43d7ca6ceb89d65149314e56a846081d6c3a048a 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
|
||||
@@ -96,8 +96,9 @@ public class GrindstoneMenu extends AbstractContainerMenu {
|
||||
@@ -95,9 +95,11 @@ public class GrindstoneMenu extends AbstractContainerMenu {
|
||||
|
||||
@Override
|
||||
public void onTake(net.minecraft.world.entity.player.Player player, ItemStack stack) {
|
||||
+ ItemStack itemstack = activeQuickItem == null ? stack : activeQuickItem; // Purpur
|
||||
context.execute((world, blockposition) -> {
|
||||
+ org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent grindstoneTakeResultEvent = new org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent(player.getBukkitEntity(), getBukkitView(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), this.getExperienceAmount(world)); grindstoneTakeResultEvent.callEvent(); // Purpur
|
||||
+ org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent grindstoneTakeResultEvent = new org.purpurmc.purpur.event.inventory.GrindstoneTakeResultEvent(player.getBukkitEntity(), getBukkitView(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), this.getExperienceAmount(world)); grindstoneTakeResultEvent.callEvent(); // Purpur
|
||||
if (world instanceof ServerLevel) {
|
||||
- ExperienceOrb.award((ServerLevel) world, Vec3.atCenterOf(blockposition), this.getExperienceAmount(world), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player); // Paper
|
||||
+ ExperienceOrb.award((ServerLevel) world, Vec3.atCenterOf(blockposition), grindstoneTakeResultEvent.getExperienceAmount(), org.bukkit.entity.ExperienceOrb.SpawnReason.GRINDSTONE, player); // Paper // Purpur
|
||||
}
|
||||
|
||||
world.levelEvent(1042, blockposition, 0);
|
||||
@@ -342,7 +344,9 @@ public class GrindstoneMenu extends AbstractContainerMenu {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
+ this.activeQuickItem = itemstack; // Purpur
|
||||
slot.onTake(player, itemstack1);
|
||||
+ this.activeQuickItem = null; // Purpur
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
|
||||
Reference in New Issue
Block a user