mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 17:01:56 +01:00
b06cb423cb
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
40 lines
No EOL
1.9 KiB
Diff
40 lines
No EOL
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 14a0e3d41c..6e9dd4d371 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
@@ -0,0 +0,0 @@ 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)) {
|
|
@@ -0,0 +0,0 @@ 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;
|
|
}
|
|
}
|
|
--
|