-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prevent NPE if hooked entity was cleared (#10712)
- Loading branch information
1 parent
841ab41
commit b0e3ca4
Showing
1 changed file
with
24 additions
and
0 deletions.
There are no files selected for viewing
24 changes: 24 additions & 0 deletions
24
patches/server/1049-Prevent-NPE-if-hooked-entity-was-cleared.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Jake Potrebic <jake.m.potrebic@gmail.com> | ||
Date: Sun, 12 May 2024 21:57:23 -0700 | ||
Subject: [PATCH] Prevent NPE if hooked entity was cleared | ||
|
||
|
||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java | ||
index 35299affb699d745804a3b60cb78b9323f3e068e..882de08963c72614a3d26cd917916e42b7136042 100644 | ||
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java | ||
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java | ||
@@ -498,11 +498,13 @@ public class FishingHook extends Projectile { | ||
if (playerFishEvent.isCancelled()) { | ||
return 0; | ||
} | ||
+ if (this.hookedIn != null) { // Paper - re-check to see if there is a hooked entity | ||
// CraftBukkit end | ||
this.pullEntity(this.hookedIn); | ||
CriteriaTriggers.FISHING_ROD_HOOKED.trigger((ServerPlayer) entityhuman, usedItem, this, Collections.emptyList()); | ||
this.level().broadcastEntityEvent(this, (byte) 31); | ||
i = this.hookedIn instanceof ItemEntity ? 3 : 5; | ||
+ } // Paper - re-check to see if there is a hooked entity | ||
} else if (this.nibble > 0) { | ||
LootParams lootparams = (new LootParams.Builder((ServerLevel) this.level())).withParameter(LootContextParams.ORIGIN, this.position()).withParameter(LootContextParams.TOOL, usedItem).withParameter(LootContextParams.THIS_ENTITY, this).withLuck((float) this.luck + entityhuman.getLuck()).create(LootContextParamSets.FISHING); | ||
LootTable loottable = this.level().getServer().reloadableRegistries().getLootTable(BuiltInLootTables.FISHING); |