mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 04:55:47 +01:00
57dd397155
Upstream has released updates that appears 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: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
43 lines
1.9 KiB
Diff
43 lines
1.9 KiB
Diff
From 29e918f7337fc371af5b3d953eb016d2be8698c6 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 18 Jun 2018 01:12:53 -0400
|
|
Subject: [PATCH] PlayerReadyArrowEvent
|
|
|
|
Called when a player is firing a bow and the server is choosing an arrow to use.
|
|
Plugins can skip selection of certain arrows and control which is used.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
index 14a0e3d41c..6e9dd4d371 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
@@ -2157,6 +2157,17 @@ public abstract class EntityHuman extends EntityLiving {
|
|
return (EntitySize) EntityHuman.b.getOrDefault(entitypose, EntityHuman.bp);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ protected boolean tryReadyArrow(ItemStack bow, ItemStack itemstack) {
|
|
+ return !(this instanceof EntityPlayer) ||
|
|
+ new com.destroystokyo.paper.event.player.PlayerReadyArrowEvent(
|
|
+ ((EntityPlayer) this).getBukkitEntity(),
|
|
+ org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(bow),
|
|
+ org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)
|
|
+ ).callEvent();
|
|
+ // Paper end
|
|
+ }
|
|
+
|
|
@Override
|
|
public ItemStack f(ItemStack itemstack) {
|
|
if (!(itemstack.getItem() instanceof ItemProjectileWeapon)) {
|
|
@@ -2173,7 +2184,7 @@ public abstract class EntityHuman extends EntityLiving {
|
|
for (int i = 0; i < this.inventory.getSize(); ++i) {
|
|
ItemStack itemstack2 = this.inventory.getItem(i);
|
|
|
|
- if (predicate.test(itemstack2)) {
|
|
+ if (predicate.test(itemstack2) && tryReadyArrow(itemstack, itemstack2)) { // Paper
|
|
return itemstack2;
|
|
}
|
|
}
|
|
--
|
|
2.26.2
|
|
|