Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
More accurate isInOpenWater impl (#9194)
- Loading branch information
1 parent
5b66d33
commit 4ba5aac
Showing
1 changed file
with
27 additions
and
0 deletions.
There are no files selected for viewing
27 changes: 27 additions & 0 deletions
27
patches/server/0980-More-accurate-isInOpenWater-impl.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,27 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Warrior <50800980+Warriorrrr@users.noreply.github.com> | ||
Date: Sun, 7 May 2023 22:33:50 +0200 | ||
Subject: [PATCH] More accurate isInOpenWater impl | ||
|
||
For fishing hooks, the openWater field is true by default, and only calculated when a "fish" is approaching the bobber. | ||
This patch changes the API impl to calculate the open water state itself instead of returning this field. | ||
|
||
Relevant link: https://github.com/PaperMC/Paper/issues/9131 | ||
|
||
== AT == | ||
public net.minecraft.world.entity.projectile.FishingHook calculateOpenWater(Lnet/minecraft/core/BlockPos;)Z | ||
public net.minecraft.world.entity.projectile.FishingHook outOfWaterTime | ||
|
||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java | ||
index 7e34d6a986a98f0b9d5c2a66000ea94e2d1f46b0..f4591dfe799538ba8aea104793ceb9995dad0bb6 100644 | ||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java | ||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java | ||
@@ -171,7 +171,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook { | ||
|
||
@Override | ||
public boolean isInOpenWater() { | ||
- return this.getHandle().isOpenWaterFishing(); | ||
+ return this.getHandle().outOfWaterTime < 10 && this.getHandle().calculateOpenWater(this.getHandle().blockPosition()); // Paper - isOpenWaterFishing is only calculated when a "fish" is approaching the hook | ||
} | ||
|
||
@Override |