mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 12:48:53 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
48 lines
2.9 KiB
Diff
48 lines
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jedediah Smith <jedediah@silencegreys.com>
|
|
Date: Sun, 21 Jun 2015 15:07:20 -0400
|
|
Subject: [PATCH] Custom replacement for eaten items
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
index c177e3ba30b8807eb41ad7741706d9a017ab9717..21a356b3c7d3dec73e5c8feaa4afda479a7ec1a2 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -3983,10 +3983,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
if (!this.useItem.isEmpty() && this.isUsingItem()) {
|
|
// CraftBukkit start - fire PlayerItemConsumeEvent
|
|
ItemStack itemstack;
|
|
+ PlayerItemConsumeEvent event = null; // Paper
|
|
if (this instanceof ServerPlayer entityPlayer) {
|
|
org.bukkit.inventory.ItemStack craftItem = CraftItemStack.asBukkitCopy(this.useItem);
|
|
org.bukkit.inventory.EquipmentSlot hand = org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(enumhand);
|
|
- PlayerItemConsumeEvent event = new PlayerItemConsumeEvent((Player) this.getBukkitEntity(), craftItem, hand);
|
|
+ event = new PlayerItemConsumeEvent((Player) this.getBukkitEntity(), craftItem, hand); // Paper
|
|
this.level().getCraftServer().getPluginManager().callEvent(event);
|
|
|
|
if (event.isCancelled()) {
|
|
@@ -4004,6 +4005,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
} else {
|
|
itemstack = this.useItem.finishUsingItem(this.level(), this);
|
|
}
|
|
+ // Paper start - save the default replacement item and change it if necessary
|
|
+ final ItemStack defaultReplacement = itemstack;
|
|
+ if (event != null && event.getReplacement() != null) {
|
|
+ itemstack = CraftItemStack.asNMSCopy(event.getReplacement());
|
|
+ }
|
|
+ // Paper end
|
|
// CraftBukkit end
|
|
|
|
if (itemstack != this.useItem) {
|
|
@@ -4011,6 +4018,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
}
|
|
|
|
this.stopUsingItem();
|
|
+ // Paper start - if the replacement is anything but the default, update the client inventory
|
|
+ if (this instanceof ServerPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
|
|
+ ((ServerPlayer) this).getBukkitEntity().updateInventory();
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
}
|