mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
36f34f01c0
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: da9ef3c5 #496: Add methods to get/set ItemStacks in EquipmentSlots 3abebc9f #492: Let Tameable extend Animals rather than Entity 941111a0 #495: Expose ItemStack and hand used in PlayerShearEntityEvent 4fe19cae #494: InventoryView - Add missing Brewing FUEL_TIME CraftBukkit Changes:933e9094
#664: Add methods to get/set ItemStacks in EquipmentSlots18722312
#662: Expose ItemStack and hand used in PlayerShearEntityEvent
40 lines
1.9 KiB
Diff
40 lines
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 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 14a0e3d41ccd896da3b1126a403b0b684cada907..6e9dd4d3717567f54ac706715d75bf53d48c5f7d 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;
|
|
}
|
|
}
|