PaperMC/paper-server/patches/sources/net/minecraft/world/item/BoneMealItem.java.patch
2024-12-14 22:35:35 -08:00

30 lines
1.6 KiB
Diff

--- a/net/minecraft/world/item/BoneMealItem.java
+++ b/net/minecraft/world/item/BoneMealItem.java
@@ -33,12 +_,17 @@
@Override
public InteractionResult useOn(UseOnContext context) {
+ // CraftBukkit start - extract bonemeal application logic to separate, static method
+ return BoneMealItem.applyBonemeal(context);
+ }
+ public static InteractionResult applyBonemeal(UseOnContext context) {
+ // CraftBukkit end
Level level = context.getLevel();
BlockPos clickedPos = context.getClickedPos();
BlockPos blockPos = clickedPos.relative(context.getClickedFace());
if (growCrop(context.getItemInHand(), level, clickedPos)) {
if (!level.isClientSide) {
- context.getPlayer().gameEvent(GameEvent.ITEM_INTERACT_FINISH);
+ if (context.getPlayer() != null) context.getPlayer().gameEvent(GameEvent.ITEM_INTERACT_FINISH); // CraftBukkit - SPIGOT-7518
level.levelEvent(1505, clickedPos, 15);
}
@@ -48,7 +_,7 @@
boolean isFaceSturdy = blockState.isFaceSturdy(level, clickedPos, context.getClickedFace());
if (isFaceSturdy && growWaterPlant(context.getItemInHand(), level, blockPos, context.getClickedFace())) {
if (!level.isClientSide) {
- context.getPlayer().gameEvent(GameEvent.ITEM_INTERACT_FINISH);
+ if (context.getPlayer() != null) context.getPlayer().gameEvent(GameEvent.ITEM_INTERACT_FINISH); // CraftBukkit - SPIGOT-7518
level.levelEvent(1505, blockPos, 15);
}