@@ -67,9 +67,7 @@ private FishingBobberEntity.PositionType getPositionType(BlockPos pos) {
6767 }
6868
6969 private FishingBobberEntity .PositionType getPositionType (BlockPos start , BlockPos end ) {
70- return BlockPos .stream (start , end ).map (this ::getPositionType ).reduce ((positionType , positionType2 ) -> {
71- return positionType == positionType2 ? positionType : FishingBobberEntity .PositionType .INVALID ;
72- }).orElse (FishingBobberEntity .PositionType .INVALID );
70+ return BlockPos .stream (start , end ).map (this ::getPositionType ).reduce ((positionType , positionType2 ) -> positionType == positionType2 ? positionType : PositionType .INVALID ).orElse (FishingBobberEntity .PositionType .INVALID );
7371 }
7472
7573 @ Override
@@ -122,6 +120,15 @@ private boolean removeIfInvalid(PlayerEntity playerEntity) {
122120
123121 @ Override
124122 public void tick () {
123+ BlockPos blockPos = getBlockPos ();
124+ FluidState fluidState = world .getFluidState (blockPos );
125+ if (fluidState .isIn (FluidTags .WATER )) {
126+ System .out .println ("super tick" );
127+ super .tick ();
128+ return ;
129+ }
130+
131+
125132 velocityRandom .setSeed (getUuid ().getLeastSignificantBits () ^ world .getTime ());
126133
127134 if (!leftOwner ) {
@@ -149,8 +156,6 @@ public void tick() {
149156 }
150157
151158 float fluidHeight = 0.0F ;
152- BlockPos blockPos = getBlockPos ();
153- FluidState fluidState = world .getFluidState (blockPos );
154159 if (fluidState .isIn (FluidTags .LAVA )) {
155160 fluidHeight = fluidState .getHeight (world , blockPos );
156161 }
@@ -316,6 +321,12 @@ private void tickFishingLogic() {
316321
317322 @ Override
318323 public int use (ItemStack usedItem ) {
324+ BlockPos blockPos = getBlockPos ();
325+ FluidState fluidState = world .getFluidState (blockPos );
326+ if (fluidState .isIn (FluidTags .WATER )) {
327+ return super .use (usedItem );
328+ }
329+
319330 PlayerEntity playerEntity = getPlayerOwner ();
320331 if (!world .isClient && playerEntity != null ) {
321332 int i = 0 ;
@@ -328,10 +339,8 @@ public int use(ItemStack usedItem) {
328339 LootTable lootTable = world .getServer ().getLootManager ().getTable (LAVA_FISHING_LOOT_TABLE );
329340 List <ItemStack > list = lootTable .generateLoot (builder .build (LootContextTypes .FISHING ));
330341 Criteria .FISHING_ROD_HOOKED .trigger ((ServerPlayerEntity ) playerEntity , usedItem , this , list );
331- Iterator <ItemStack > var7 = list .iterator ();
332342
333- while (var7 .hasNext ()) {
334- ItemStack itemStack = var7 .next ();
343+ for (ItemStack itemStack : list ) {
335344 ItemEntity itemEntity = new ItemEntity (world , getX (), getY (), getZ (), itemStack );
336345 double d = playerEntity .getX () - getX ();
337346 double e = playerEntity .getY () - getY ();
@@ -356,5 +365,4 @@ public int use(ItemStack usedItem) {
356365 return 0 ;
357366 }
358367 }
359-
360368}
0 commit comments