Add getPickItemStack (#12552)

This commit is contained in:
Reason 2025-05-18 19:42:14 +01:00 committed by GitHub
parent 7171d29985
commit 6f73e62ecd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View File

@ -20,6 +20,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.Directional;
import org.bukkit.metadata.Metadatable;
import org.bukkit.persistence.PersistentDataHolder;
@ -538,6 +539,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
public boolean eject();
/**
* Gets the {@link ItemStack} that a player would select / create (in creative mode)
* when using the pick block action on this entity.
*
* @return item stack result or an empty item stack
*/
@NotNull
ItemStack getPickItemStack();
/**
* Returns the distance this entity has fallen
*

View File

@ -58,6 +58,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityRemoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.permissions.PermissibleBase;
import org.bukkit.permissions.Permission;
@ -532,6 +533,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return true;
}
@Override
public ItemStack getPickItemStack() {
net.minecraft.world.item.ItemStack stack = this.getHandle().getPickResult();
return stack == null ? ItemStack.empty() : stack.asBukkitCopy();
}
@Override
public float getFallDistance() {
return (float) this.getHandle().fallDistance;