cabaletta / cabaletta/baritone

Avoid flowing lava killing players

Open
#1,560 4 comments 10 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
9.2k
Forks
2.1k
Avg merge
4d 3h
Merged PRs (30d)
3

Description

## Explanation
There are 3 ways in which this happens under normal Nether exploration conditions. First, when the bot bridges across a one-deep lava stream right as the lava falls down a block such that the lava flows onto the block just placed, killing the bot. Secondly, when (as I understand it) lava that has incompletely flowed is unloaded and then reloaded by a bot, it does not continue to flow unless it receives a block update. If this happens as a result of the bot placing it for a path, it often flows onto the path, killing the bot. Lastly when new chunks have ceiling sources that flow down onto a previously calculated path, sometimes while the bot is in that block.

This could be avoided by identifying contiguous bodies of liquid and classifying them as potentially flowing or not. In the third case, performing Minecraft's calculation of liquid flow to its completion and then running pathfinding on the terrain with the liquids fully flowed should suffice. In the first and second, performing the liquid flow calculation to its completion on all paths that contain block placings adjacent to liquids (doing the calculation on the environment as it would be after the placement of these hypothetical blocks, of course) and reevaluating the safety of the path afterward would work.

## Context
In its current state, Baritone isn't AFKable. Setting a #goto to some far-out coords in the Nether and leaving it overnight gets the bot killed approximately every 50k blocks. It is certainly better than walking it by hand, but constant human monitoring and waypoint-setting is pretty tedious. I think a fire-and-forget pathfinder is what both Baritone's users and creators had in mind, and this issue is a substantial obstacle to that end.

Contributor guide

No contributing guide indexed for this repository

Research direction

No file or test is named. Start by locating the pathfinding, block-placement safety, and liquid-flow handling in the repository, then reproduce the three Nether lava scenarios described in the issue. Done means paths account for completed liquid flow and the bot no longer dies in these cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.