dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
25 Zeilen
1.8 KiB
Diff
25 Zeilen
1.8 KiB
Diff
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 270f4c94912b16c7d4a2d62670847cbb5e011819..6ce65e5b336be9b49db84f1c4755c2e2ce7f8378 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
|
@@ -504,11 +504,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);
|