Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1266 commits
Select commit Hold shift + click to select a range
f30cb91
Remove addressed TODO
ZeroMemes Jun 29, 2023
974b86a
Bump `nether-pathfinder` to 0.20
ZeroMemes Jun 29, 2023
5a48f41
Reduce number of raytraces when validating simulation
ZeroMemes Jun 30, 2023
3eb7610
Block lookup optimization
ZeroMemes Jun 30, 2023
b8ede0a
Remove unnecessary `IPlayerContext` argument
ZeroMemes Jun 30, 2023
b457893
Reduce passing around of `ignoreLava`
ZeroMemes Jun 30, 2023
4590ba3
Use separate executor for solver
ZeroMemes Jun 30, 2023
8211ae4
memory leaks are joever
leijurv Jun 30, 2023
d32f1b2
Add hit pos raytrace method to context
ZeroMemes Jul 1, 2023
83066fc
Find jump off spot using INSANE custom CalculationContext
ZeroMemes Jul 1, 2023
3498082
Better state switch and start path halfway down fall
ZeroMemes Jul 1, 2023
2f7dc23
Better start position selection and validation
ZeroMemes Jul 1, 2023
14b5a0c
Fix Forge support
ZeroMemes Jul 1, 2023
ccd737d
Actually fix Forge by reverting Mixin change completely
ZeroMemes Jul 1, 2023
dee7df1
I HATE OLD MIXIN!!!!
ZeroMemes Jul 2, 2023
fc20959
Update `nether-pathfinder` to 0.21
ZeroMemes Jul 2, 2023
6654476
Make `blockFreeLook` depend on `freeLook`
ZeroMemes Jul 3, 2023
d892ef5
Merge branch 'master' into elytra
ZeroMemes Jul 3, 2023
c8259d3
ZOOM
ZeroMemes Jul 3, 2023
4c0c263
trolling
ZeroMemes Jul 3, 2023
be54b8e
Merge branch 'master' into 1.13.2
ZacSharp Jul 4, 2023
1d983d5
Merge branch '1.13.2' into 1.14.4
ZacSharp Jul 4, 2023
45abbb7
Merge branch '1.14.4' into 1.15.2
ZacSharp Jul 4, 2023
8e58dd9
Merge branch '1.15.2' into 1.16.5
ZacSharp Jul 4, 2023
8ceb89d
Merge pull request #4028 from ZacSharp/1.16.5-update
leijurv Jul 5, 2023
cbf0d79
Merge branch '1.16.5' into 1.17.1
ZacSharp Jul 6, 2023
2552eb8
Add setting documentation
ZeroMemes Jul 7, 2023
aeeb001
Fix some codacy issues
ZeroMemes Jul 7, 2023
c4ac238
Set `safeToCancel` to `false` while flying
ZeroMemes Jul 7, 2023
ecfd664
Fix `isSafeToCancel()` return value
ZeroMemes Jul 7, 2023
8de239f
Use soft references for chunks queued for packing
ZeroMemes Jul 7, 2023
b6bf442
Use soft references for nether chunk packing queue
ZeroMemes Jul 7, 2023
537100a
Nether seed setting and automatic context reset
ZeroMemes Jul 7, 2023
bfb4ffc
Reset context on world load/unload
ZeroMemes Jul 7, 2023
308b9bb
Apply minimum fall height to regular falls too
ZeroMemes Jul 7, 2023
fe67489
Combine `VALIDATE_PATH` and `LOCATE_JUMP` states
ZeroMemes Jul 7, 2023
487b3a7
`mostRecentGoal`, fixes immediate goal clear
ZeroMemes Jul 8, 2023
c0cdfb7
Add commands for pathfinder reset and chunk repack
ZeroMemes Jul 8, 2023
7a935fb
Fix simulation not respecting `ignoreLava`
ZeroMemes Jul 9, 2023
96a64b4
optimize uploading chunk data
babbaj Jul 10, 2023
70249e5
Merge pull request #4047 from babbaj/elytra
ZeroMemes Jul 10, 2023
eec4ede
Remove old pack method
ZeroMemes Jul 10, 2023
dc53a95
don't send the whole chunk for small changes
babbaj Jul 10, 2023
a8e1b16
Merge pull request #4048 from babbaj/elytra
ZeroMemes Jul 10, 2023
5dc403e
crucial performance optimization
leijurv Jul 10, 2023
349c951
Better handling of unsupported systems
ZeroMemes Jul 12, 2023
7c696b7
trolled
ZeroMemes Jul 12, 2023
8f5105c
trolled pt2
ZeroMemes Jul 12, 2023
448e454
Merge branch '1.17.1' into 1.18.2
ZacSharp Jul 10, 2023
4277168
auto swap elytra
babbaj Jul 12, 2023
0b5d5b8
use ticksBetweenInventoryMoves
babbaj Jul 13, 2023
461f56c
countdown instead of count up
babbaj Jul 13, 2023
d355719
appease brady
babbaj Jul 13, 2023
4399b7c
Merge pull request #4053 from babbaj/elytra
ZeroMemes Jul 13, 2023
29bf046
BlockStateOctreeInterface
ZeroMemes Jul 13, 2023
1d109d4
crucial performance optimization
ZeroMemes Jul 13, 2023
b647c0f
Merge pull request #4050 from ZacSharp/1.18.2-update
leijurv Jul 14, 2023
b468b8e
landing procedure
babbaj Jul 16, 2023
716b3ae
Update ElytraBehavior.java
ZeroMemes Jul 16, 2023
e579bf9
Update NetherPath.java
ZeroMemes Jul 16, 2023
6f99f89
Merge pull request #4054 from babbaj/elytra
ZeroMemes Jul 16, 2023
76d3a13
cull far away chunks from the cache
babbaj Jul 16, 2023
f3bb5a0
make sure BlockStateOctreeInterface doesn't use freed chunk pointers
babbaj Jul 16, 2023
a83d190
Merge pull request #4055 from babbaj/elytra
ZeroMemes Jul 16, 2023
41e8c69
consistent elytra setting naming
babbaj Jul 16, 2023
0e567f2
shrimple
leijurv Jul 17, 2023
edc9275
Revert "shrimple"
leijurv Jul 17, 2023
32a4c46
Move cull code
ZeroMemes Jul 17, 2023
108dbda
partially appease codacy
ZeroMemes Jul 17, 2023
90cfd82
Merge pull request #4056 from babbaj/elytra
ZeroMemes Jul 17, 2023
bf9cb76
VulkanMod compatibility + use `LINES` instead of `DEBUG_LINES`
ZeroMemes Jul 17, 2023
1b82bd1
pitch smooth look and setting for ticks
ZeroMemes Jul 17, 2023
9a6241a
refactor elytra into being just a process
babbaj Jul 17, 2023
dbc0a46
call elytra event handlers from ElytraProcess
babbaj Jul 17, 2023
4b5d629
fix off by one error (causing the last point to be stuck in terrain)
babbaj Jul 17, 2023
afe9359
don't call onTick if we are pawsed
babbaj Jul 17, 2023
2f04977
simplify icky code
babbaj Jul 17, 2023
ff1b3e7
simplify management of elytra state
babbaj Jul 18, 2023
ccd80df
that isn't necessary
babbaj Jul 18, 2023
f499613
minor code improvements
babbaj Jul 18, 2023
ba78c48
shutdown solverExecutor
babbaj Jul 18, 2023
38553b3
behavior can't be null in onTick
babbaj Jul 18, 2023
0239a2c
notificationOnPathComplete and disconnectOnArrival
babbaj Jul 18, 2023
6a9694b
Manually specify some normals, fix GoalXZ rendering
ZeroMemes Jul 18, 2023
218de1c
Requested changes
ZeroMemes Jul 18, 2023
dfa838a
Replace `Mth.fastInvSqrt` with `1.0 / Math.sqrt`
ZeroMemes Jul 19, 2023
29301e8
Merge pull request #4059 from cabaletta/pr/render/vulkanCompatibility
ZeroMemes Jul 19, 2023
15e9726
Fake merge branch '1.19.2' into 1.19.4
ZacSharp Jul 19, 2023
217dca5
Merge branch '1.18.2' into 1.19.2
ZacSharp Jul 19, 2023
37f1c30
Merge branch '1.19.2' into 1.19.4
ZacSharp Jul 19, 2023
a63cbab
Merge pull request #4060 from babbaj/elytra
ZeroMemes Jul 19, 2023
097e308
Move `WalkOffCalculationContext` into `ElytraProcess`
ZeroMemes Jul 19, 2023
664375a
make elytra play nice with CustomGoalProcess
babbaj Jul 22, 2023
7f9e50b
initial safe landing impl
babbaj Jul 22, 2023
c9aa165
improvements/fixes
babbaj Jul 23, 2023
58723a3
hate cherry pick now
babbaj Jul 23, 2023
9e78443
resolve comment
babbaj Jul 23, 2023
985148b
check for specific blocks to land on and anything non air is lava
babbaj Jul 23, 2023
bf63ffb
cringe fence hater :sob:
babbaj Jul 23, 2023
9bfa202
memoize isSafeLandingSPot
babbaj Jul 23, 2023
bafd418
Merge pull request #4062 from ZacSharp/1.19.4-update
leijurv Jul 23, 2023
c0ead01
use priority queue to bias upwards
babbaj Jul 23, 2023
eec85b2
fix bias in comparator
babbaj Jul 23, 2023
3ffacbf
Merge pull request #4064 from babbaj/safe-landing
leijurv Jul 23, 2023
b81d712
higher priority is good enough lol
babbaj Jul 23, 2023
9707dd7
redo checkedpositions given y descending iteration order
leijurv Jul 23, 2023
886091d
Merge branch 'elytra' into elytra
leijurv Jul 23, 2023
684fda2
Merge pull request #4063 from babbaj/elytra
leijurv Jul 23, 2023
f7f0521
not legacy
leijurv Jul 23, 2023
75e8035
safe landing improvements
babbaj Jul 23, 2023
31e082b
Merge pull request #4066 from babbaj/elytra
leijurv Jul 23, 2023
212ef4d
waste fireworks smiling_imp
leijurv Jul 23, 2023
e63aad7
elytra command improvements
babbaj Jul 23, 2023
dbf38ef
Merge pull request #4067 from babbaj/elytra
leijurv Jul 23, 2023
293b556
add dimension checks
babbaj Jul 24, 2023
6ffe31b
Merge pull request #4068 from babbaj/elytra
leijurv Jul 24, 2023
45400a9
fix concurrency concerns
babbaj Jul 24, 2023
1e0dce8
127 instead of 128
babbaj Jul 24, 2023
f14bb28
add null check to resetState
babbaj Jul 24, 2023
601a781
improve control flow (fixes behavior.onTick() being called twice)
babbaj Jul 24, 2023
e0308de
Merge branch '1.19.4' into 1.20.1
ZacSharp Jul 24, 2023
2164857
Merge pull request #4070 from babbaj/elytra
leijurv Jul 26, 2023
90f2b39
Remove glPushAttrib/glPopAttrib usage
ZeroMemes Jul 27, 2023
6b611cf
Move more state into `SolverContext`
ZeroMemes Jul 28, 2023
4b5a094
Render fields can be private now
ZeroMemes Jul 28, 2023
31d1656
safer landing
babbaj Jul 29, 2023
2e2c0ec
use MutableBlockPos
babbaj Jul 29, 2023
2821a2a
Merge pull request #4078 from ZacSharp/1.20.1-update
leijurv Jul 30, 2023
976f343
Merge pull request #4077 from babbaj/elytra
leijurv Jul 30, 2023
d6adb52
tweaks
leijurv Jul 30, 2023
a83d275
forgot
leijurv Jul 30, 2023
3a6e554
Don't deploy elytra while PathingBehavior is active
ZeroMemes Jul 30, 2023
27e45b8
increase air bubble radius, append destination to path when landing
babbaj Jul 30, 2023
54511f1
Merge pull request #4081 from babbaj/elytra
leijurv Jul 31, 2023
7e9cf2e
ok its based now
leijurv Jul 31, 2023
36df7b1
destroy async
leijurv Jul 31, 2023
134bfb2
fix two cases where it could get stuck indefinitely
leijurv Jul 31, 2023
9630224
whatever
leijurv Jul 31, 2023
d921d2e
live a little
leijurv Jul 31, 2023
7662810
add back unsegmenting
leijurv Jul 31, 2023
83feddf
recalc if all points out of view
leijurv Jul 31, 2023
cc8afe9
setting for nether fortress
leijurv Jul 31, 2023
541b710
too aggressive
leijurv Jul 31, 2023
64a881f
elytra warning
leijurv Jul 31, 2023
46f38f2
orderly shutdown
leijurv Jul 31, 2023
c0a1e65
simplify smoothLook into one setting and separate smoothLook from fre…
babbaj Jul 31, 2023
0ca173f
separate smooth look setting for elytra
babbaj Jul 31, 2023
7aa3eda
fix nudgeToLevel with smoothLook
babbaj Jul 31, 2023
3791569
refactor so that Target.Mode is not a lie
babbaj Aug 1, 2023
231d3a3
Merge pull request #4084 from babbaj/elytra
ZeroMemes Aug 1, 2023
7813a9c
looks better
leijurv Aug 1, 2023
8c1ccd6
reduce dumb behavior
leijurv Aug 1, 2023
7064024
fix infinite memory usage / crash
leijurv Aug 1, 2023
f5bd737
add badge count badge
deniz-blue Aug 2, 2023
3215824
Merge pull request #4085 from TheAlan404/patch-1
leijurv Aug 2, 2023
139fd03
Update lines of code badge to match style
ZeroMemes Aug 2, 2023
0edcf65
fix badges
wagyourtail Aug 7, 2023
0705235
Merge pull request #4092 from wagyourtail/master-1
leijurv Aug 7, 2023
0d461f7
Updated to 1.20.1 for bug fixes and improvements
MarvionKirito Aug 9, 2023
9d122cc
Updated to 1.20.1 for bug fixes and improvements
MarvionKirito Aug 9, 2023
15a38c4
add setting that makes unknown chunks air
babbaj Aug 14, 2023
f331124
Merge pull request #4096 from babbaj/elytra
leijurv Aug 14, 2023
4e3a7ab
recompute on change
leijurv Aug 14, 2023
36534ee
vastly more helpful
leijurv Aug 14, 2023
d67a3d8
much better safety
leijurv Aug 14, 2023
81e0043
thanks lamp! i love lamp!
leijurv Aug 14, 2023
535eccf
no longer applies
leijurv Aug 14, 2023
bd263e1
message for 2b players just in case the update actually happens
leijurv Aug 14, 2023
b092999
typo
leijurv Aug 14, 2023
f35e55e
unused
leijurv Aug 14, 2023
9ecb416
Merge branch 'elytra'
ZeroMemes Aug 14, 2023
7b911aa
clean up elytra given 2b2t status
leijurv Aug 15, 2023
050e3a5
bedrock is much lower now, although worth considering if deepslate ne…
leijurv Aug 15, 2023
b1be4f2
make raytracer collide with unknown chunks
babbaj Aug 15, 2023
f36072c
Merge pull request #4099 from babbaj/elytra
leijurv Aug 15, 2023
661b16a
v1.2.18
leijurv Aug 15, 2023
ca4385d
update readme
leijurv Aug 15, 2023
60d6791
proguard: get java from gradle runtime before JAVA_HOME
babbaj Aug 16, 2023
7daf102
Merge pull request #4100 from babbaj/fix-proguard-lol
leijurv Aug 16, 2023
8a2a20a
1.16 and 1.18 deprecated
leijurv Aug 17, 2023
d4b9511
fml
leijurv Aug 17, 2023
d9cb2d9
v1.2.19
leijurv Aug 17, 2023
75b8554
bump readme
leijurv Aug 18, 2023
fd8ca85
Merge branch 'master' into 1.19.4
leijurv Aug 18, 2023
bfc813a
mostly works
leijurv Aug 18, 2023
fc474cf
bradyfix
ZeroMemes Aug 18, 2023
7969988
yay fixing the build was actually easy
leijurv Aug 18, 2023
51843f7
Merge branch '1.19.4' into 1.20.1
leijurv Aug 18, 2023
b16590d
Merge branch '1.20.1' of github.com:cabaletta/baritone into 1.20.1
leijurv Aug 18, 2023
c2308c6
mapping
leijurv Aug 18, 2023
4efa2b1
fix backtracking bad behavior when render distance is tiny
leijurv Aug 18, 2023
b351cee
Merge branch 'master' into 1.19.4
leijurv Aug 18, 2023
7668952
Merge branch '1.19.4' into 1.20.1
leijurv Aug 18, 2023
3bdd0a8
rm debug
leijurv Aug 19, 2023
c18fa51
1.19 defaults
leijurv Aug 19, 2023
fa28a56
Merge branch '1.19.4' into 1.20.1
leijurv Aug 19, 2023
58d6b80
baritone elytra selling
leijurv Aug 19, 2023
e063475
list 1.20
leijurv Aug 19, 2023
aee36e4
deprecate 1.12.2
leijurv Aug 19, 2023
301ad40
link to latest
leijurv Aug 19, 2023
5f5567f
recover from flying into lava (and fix ignoreLava)
babbaj Aug 19, 2023
c4f33b7
check chunk load in sepples
leijurv Aug 20, 2023
5a45001
Merge branch '1.19.4' into 1.20.1
leijurv Aug 20, 2023
e492e5f
bump nether pathfinder
leijurv Aug 20, 2023
3b30b06
Merge branch '1.19.4' into 1.20.1
leijurv Aug 20, 2023
e8bcd05
Merge pull request #4108 from babbaj/1.19.4
leijurv Aug 22, 2023
f2679be
hopefully actually fix backtracking
leijurv Aug 22, 2023
920c3aa
Merge branch 'master' into 1.19.4
leijurv Aug 22, 2023
2cd5c6b
delete master stuff
leijurv Aug 22, 2023
97067b9
Merge branch '1.19.4' into 1.20.1
leijurv Aug 22, 2023
a1ac87f
bump unimined
wagyourtail Aug 24, 2023
8193206
remove footgun
leijurv Sep 14, 2023
9ad273a
silence elytra chat spam
babbaj Sep 23, 2023
4db988d
fix forge mixin crash
rfresh2 Sep 24, 2023
7902517
fix forge mixin crash
rfresh2 Sep 24, 2023
f5d1592
1.20.2
rfresh2 Sep 23, 2023
e1e620a
Merge pull request #4138 from rfresh2/fix-forge-1-20-1-crash
leijurv Sep 28, 2023
9bf890a
Merge pull request #4136 from rfresh2/1.20.2
leijurv Sep 28, 2023
91588ca
oh my GOD
leijurv Sep 29, 2023
74457db
actually fix mine under 0 height
wagyourtail Oct 5, 2023
30f27d4
Merge pull request #4145 from wagyourtail/1.19.4
leijurv Oct 6, 2023
3332ec9
Adds git to the Dockerfile apt install
xiaodown Oct 12, 2023
1dd2a33
Handle duplicate palette entries
ZacSharp Oct 18, 2023
0ca81b1
Restore `buildIgnoreExisting`
ZacSharp Oct 18, 2023
20d62c6
Slightly better version strings
ZacSharp Oct 15, 2023
9accb2b
Don't crash the build if git is not available
ZacSharp Oct 15, 2023
3a3b012
Merge branch '1.19.4' into 1.20.2
ZacSharp Oct 29, 2023
e19fd11
Merge pull request #4157 from ZacSharp/pr/1.19.4/worldscanner/handleD…
leijurv Oct 31, 2023
a091419
Merge pull request #4158 from ZacSharp/pr/1.19.4/builder/restoreBuild…
leijurv Oct 31, 2023
1409c92
Merge pull request #4153 from xiaodown/xiaodown/add_git_to_dockerfile…
leijurv Oct 31, 2023
ea964a9
Merge pull request #4168 from ZacSharp/pr/build/1.19.4/improvedVersio…
leijurv Oct 31, 2023
a945cfa
Merge pull request #4172 from ZacSharp/1.20.2-update
leijurv Oct 31, 2023
e183dcb
Merge pull request #4137 from babbaj/1.19.4
leijurv Oct 31, 2023
5795baa
Merge branch '1.19.4' into just-unimined-update
wagyourtail Nov 14, 2023
44bcd42
Merge pull request #4114 from wagyourtail/just-unimined-update
leijurv Nov 14, 2023
19accb0
Fix scanning in chunks using a SingleValuePalette
ZacSharp Nov 16, 2023
f147519
Merge pull request #4195 from ZacSharp/pr/1.19.4/worldscanner/fixSing…
leijurv Nov 18, 2023
dce35e3
Merge remote-tracking branch 'origin/1.19.4' into 1.20.2
wagyourtail Nov 24, 2023
c1b555c
bump parchment
wagyourtail Nov 24, 2023
3dbcf01
fix forge version
wagyourtail Nov 24, 2023
21feeb6
fix missing function
wagyourtail Nov 24, 2023
4b6652b
1.20.4
wagyourtail Dec 7, 2023
c146440
mark 1.20.3 as supported
wagyourtail Dec 17, 2023
defcfca
Updated to 1.20.2
MarvionKirito Dec 21, 2023
8dd4439
Merge remote-tracking branch 'MarvionAltoclefBaritonePrivate/master'
MarvionKirito Dec 21, 2023
3e7eb87
Merge pull request #4214 from wagyourtail/1.20/1.20.4
leijurv Jan 6, 2024
8a0f301
v1.10.2
leijurv Jan 6, 2024
30921ca
Meteor changes
MineGame159 Jan 26, 2024
afff9d9
Merge remote-tracking branch 'MarvionBaritonePrivate/master'
MarvionKirito Feb 25, 2024
0cb11d5
Altoclef changes
MarvionKirito Feb 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Operating system:
Java version:
Minecraft version:
Baritone version:
Other mods (if used):
Other mods (if used):

## Exception, error or logs
Please find your `latest.log` or `debug.log` in this folder and attach it to the issue
Expand All @@ -29,8 +29,7 @@ Add your steps to reproduce the issue/bug experienced here.
To get the modified settings run `#modified` in game

## Final checklist

- [x] I know how to properly use check boxes
- [x] I know how to properly use check boxes
- [ ] I have included the version of Minecraft I'm running, baritone's version and forge mods (if used).
- [ ] I have included logs, exceptions and / or steps to reproduce the issue.
- [ ] I have not used any OwO's or UwU's in this issue.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ assignees: ''
With as much detail as possible, describe your question and what you may need help with.

## Final checklist
- [x] I know how to properly use check boxes
- [x] I know how to properly use check boxes
- [ ] I have not used any OwO's or UwU's in this issue.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/suggestion.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ If applicable, what settings/customizability should be offered to tweak the func
Describe how your suggestion would improve Baritone, or the reason behind it being added.

## Final checklist
- [x] I know how to properly use check boxes
- [x] I know how to properly use check boxes
- [ ] I have not used any OwO's or UwU's in this issue.
56 changes: 28 additions & 28 deletions .github/workflows/gradle_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,31 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
cache: gradle

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew build -Pmod_version="$(git describe --always --tags | cut -c2-)"

- name: Archive Artifacts
uses: actions/upload-artifact@v2
with:
name: Artifacts
path: dist/

- name: Archive mapping.txt
uses: actions/upload-artifact@v2
with:
name: Mappings
path: mapping/
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build -Pmod_version="$(git describe --always --tags --first-parent | cut -c2-)"

- name: Archive Artifacts
uses: actions/upload-artifact@v3
with:
name: Artifacts
path: dist/
- name: Archive mapping.txt
uses: actions/upload-artifact@v3
with:
name: Mappings
path: mapping/
24 changes: 12 additions & 12 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Executing tests
run: ./gradlew test
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Executing tests
run: ./gradlew test

8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,10 @@ baritone_Client.launch
.vscode/launch.json
.architectury-transformer

mapping

mapping

libs/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar
libs/java-objc-bridge-1.1.jar

mapping
6 changes: 3 additions & 3 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ Examples of unacceptable behavior by participants include:

* Anime
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
advances
* ~~Trolling, insulting/derogatory comments, and personal or political attacks~~
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission or consent
address, without explicit permission or consent
* Other conduct which could reasonably be considered inappropriate in a
professional setting
professional setting

## Our Responsibilities

Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ RUN apt update -y

RUN apt install \
openjdk-17-jdk \
git \
--assume-yes

COPY . /code
Expand Down
80 changes: 17 additions & 63 deletions FEATURES.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,33 @@
# Pathing features
- **Long distance pathing and splicing** Baritone calculates paths in segments, and precalculates the next segment when
the current one is about to end, so that it's moving towards the goal at all times.
- **Chunk caching** Baritone simplifies chunks to a compacted internal 2-bit representation (AIR, SOLID, WATER, AVOID)
and stores them in RAM for better very-long-distance pathing. There is also an option to save these cached chunks to
disk. <a href="https://www.youtube.com/watch?v=dyfYKSubhdc">Example</a>
- **Block breaking** Baritone considers breaking blocks as part of its path. It also takes into account your current
tool set and hot bar. For example, if you have a Eff V diamond pick, it may choose to mine through a stone barrier,
while if you only had a wood pick it might be faster to climb over it.
- **Block placing** Baritone considers placing blocks as part of its path. This includes sneak-back-placing, pillaring,
etc. It has a configurable penalty of placing a block (set to 1 second by default), to conserve its resources. The
list of acceptable throwaway blocks is also configurable, and is cobble, dirt, or netherrack by
default. <a href="https://www.youtube.com/watch?v=F6FbI1L9UmU">Example</a>
- **Falling** Baritone will fall up to 3 blocks onto solid ground (configurable, if you have Feather Falling and/or
don't mind taking a little damage). If you have a water bucket on your hotbar, it will fall up to 23 blocks and place
the bucket beneath it. It will fall an unlimited distance into existing still water.
- **Vines and ladders** Baritone understands how to climb and descend vines and ladders. There is experimental support
for more advanced maneuvers, like strafing to a different ladder / vine column in midair (off by default, setting
named `allowVines`). Baritone can break its fall by grabbing ladders / vines midair, and understands when that is and
isn't possible.
- **Long distance pathing and splicing** Baritone calculates paths in segments, and precalculates the next segment when the current one is about to end, so that it's moving towards the goal at all times.
- **Chunk caching** Baritone simplifies chunks to a compacted internal 2-bit representation (AIR, SOLID, WATER, AVOID) and stores them in RAM for better very-long-distance pathing. There is also an option to save these cached chunks to disk. <a href="https://www.youtube.com/watch?v=dyfYKSubhdc">Example</a>
- **Block breaking** Baritone considers breaking blocks as part of its path. It also takes into account your current tool set and hot bar. For example, if you have a Eff V diamond pick, it may choose to mine through a stone barrier, while if you only had a wood pick it might be faster to climb over it.
- **Block placing** Baritone considers placing blocks as part of its path. This includes sneak-back-placing, pillaring, etc. It has a configurable penalty of placing a block (set to 1 second by default), to conserve its resources. The list of acceptable throwaway blocks is also configurable, and is cobble, dirt, or netherrack by default. <a href="https://www.youtube.com/watch?v=F6FbI1L9UmU">Example</a>
- **Falling** Baritone will fall up to 3 blocks onto solid ground (configurable, if you have Feather Falling and/or don't mind taking a little damage). If you have a water bucket on your hotbar, it will fall up to 23 blocks and place the bucket beneath it. It will fall an unlimited distance into existing still water.
- **Vines and ladders** Baritone understands how to climb and descend vines and ladders. There is experimental support for more advanced maneuvers, like strafing to a different ladder / vine column in midair (off by default, setting named `allowVines`). Baritone can break its fall by grabbing ladders / vines midair, and understands when that is and isn't possible.
- **Opening fence gates and doors**
- **Slabs and stairs**
- **Falling blocks** Baritone understands the costs of breaking blocks with falling blocks on top, and includes all of
their break costs. Additionally, since it avoids breaking any blocks touching a liquid, it won't break the bottom of a
gravel stack below a lava lake (anymore).
- **Avoiding dangerous blocks** Obviously, it knows not to walk through fire or on magma, not to corner over lava (that
deals some damage), not to break any blocks touching a liquid (it might drown), etc.
- **Falling blocks** Baritone understands the costs of breaking blocks with falling blocks on top, and includes all of their break costs. Additionally, since it avoids breaking any blocks touching a liquid, it won't break the bottom of a gravel stack below a lava lake (anymore).
- **Avoiding dangerous blocks** Obviously, it knows not to walk through fire or on magma, not to corner over lava (that deals some damage), not to break any blocks touching a liquid (it might drown), etc.
- **Parkour** Sprint jumping over 1, 2, or 3 block gaps
- **Parkour place** Sprint jumping over a 3 block gap and placing the block to land on while executing the jump. It's
really cool.
- **Parkour place** Sprint jumping over a 3 block gap and placing the block to land on while executing the jump. It's really cool.
- **Pigs** It can sort of control pigs. I wouldn't rely on it though.

# Pathing method
Baritone uses A*, with some modifications:

Baritone uses A*, with some modifications:

- **Segmented calculation** Traditional A* calculates until the most promising node is in the goal, however in the
environment of Minecraft with a limited render distance, we don't know the environment all the way to our goal.
Baritone has three possible ways for path calculation to end: finding a path all the way to the goal, running out of
time, or getting to the render distance. In the latter two scenarios, the selection of which segment to actually
execute falls to the next item (incremental cost backoff). Whenever the path calculation thread finds that the best /
most promising node is at the edge of loaded chunks, it increments a counter. If this happens more than 50 times (
configurable), path calculation exits early. This happens with very low render distances. Otherwise, calculation
continues until the timeout is hit (also configurable) or we find a path all the way to the goal.
- **Incremental cost backoff** When path calculation exits early without getting all the way to the goal, Baritone it
needs to select a segment to execute first (assuming it will calculate the next segment at the end of this one). It
uses incremental cost backoff to select the best node by varying metrics, then paths to that node. This is unchanged
from MineBot and I made
a <a href="https://docs.google.com/document/d/1WVHHXKXFdCR1Oz__KtK8sFqyvSwJN_H4lftkHFgmzlc/edit">write-up</a> that
still applies. In essence, it keeps track of the best node by various increasing coefficients, then picks the node
with the least coefficient that goes at least 5 blocks from the starting position.
- **Minimum improvement repropagation** The pathfinder ignores alternate routes that provide minimal improvements (less
than 0.01 ticks of improvement), because the calculation cost of repropagating this to all connected nodes is much
higher than the half-millisecond path time improvement it would get.
- **Backtrack cost favoring** While calculating the next segment, Baritone favors backtracking its current segment. The
cost is decreased heavily, but is still positive (this won't cause it to backtrack if it doesn't need to). This allows
it to splice and jump onto the next segment as early as possible, if the next segment begins with a backtrack of the
current one. <a href="https://www.youtube.com/watch?v=CGiMcb8-99Y">Example</a>
- **Backtrack detection and pausing** While path calculation happens on a separate thread, the main game thread has
access to the latest node considered, and the best path so far (those are rendered light blue and dark blue
respectively). When the current best path (rendered dark blue) passes through the player's current position on the
current path segment, path execution is paused (if it's safe to do so), because there's no point continuing forward if
we're about to turn around and go back that same way. Note that the current best path as reported by the path
calculation thread takes into account the incremental cost backoff system, so it's accurate to what the path
calculation thread will actually pick once it finishes.
- **Segmented calculation** Traditional A* calculates until the most promising node is in the goal, however in the environment of Minecraft with a limited render distance, we don't know the environment all the way to our goal. Baritone has three possible ways for path calculation to end: finding a path all the way to the goal, running out of time, or getting to the render distance. In the latter two scenarios, the selection of which segment to actually execute falls to the next item (incremental cost backoff). Whenever the path calculation thread finds that the best / most promising node is at the edge of loaded chunks, it increments a counter. If this happens more than 50 times (configurable), path calculation exits early. This happens with very low render distances. Otherwise, calculation continues until the timeout is hit (also configurable) or we find a path all the way to the goal.
- **Incremental cost backoff** When path calculation exits early without getting all the way to the goal, Baritone it needs to select a segment to execute first (assuming it will calculate the next segment at the end of this one). It uses incremental cost backoff to select the best node by varying metrics, then paths to that node. This is unchanged from MineBot and I made a <a href="https://docs.google.com/document/d/1WVHHXKXFdCR1Oz__KtK8sFqyvSwJN_H4lftkHFgmzlc/edit">write-up</a> that still applies. In essence, it keeps track of the best node by various increasing coefficients, then picks the node with the least coefficient that goes at least 5 blocks from the starting position.
- **Minimum improvement repropagation** The pathfinder ignores alternate routes that provide minimal improvements (less than 0.01 ticks of improvement), because the calculation cost of repropagating this to all connected nodes is much higher than the half-millisecond path time improvement it would get.
- **Backtrack cost favoring** While calculating the next segment, Baritone favors backtracking its current segment. The cost is decreased heavily, but is still positive (this won't cause it to backtrack if it doesn't need to). This allows it to splice and jump onto the next segment as early as possible, if the next segment begins with a backtrack of the current one. <a href="https://www.youtube.com/watch?v=CGiMcb8-99Y">Example</a>
- **Backtrack detection and pausing** While path calculation happens on a separate thread, the main game thread has access to the latest node considered, and the best path so far (those are rendered light blue and dark blue respectively). When the current best path (rendered dark blue) passes through the player's current position on the current path segment, path execution is paused (if it's safe to do so), because there's no point continuing forward if we're about to turn around and go back that same way. Note that the current best path as reported by the path calculation thread takes into account the incremental cost backoff system, so it's accurate to what the path calculation thread will actually pick once it finishes.

# Chat control

- [Baritone chat control usage](USAGE.md)

# Goals

The pathing goal can be set to any of these options:

- **GoalBlock** one specific block that the player should stand inside at foot level
- **GoalXZ** an X and a Z coordinate, used for long distance pathing
- **GoalYLevel** a Y coordinate
Expand All @@ -80,13 +36,11 @@ The pathing goal can be set to any of these options:
- **GoalNear** a block position that the player should get within a certain radius of, used for following entities
- **GoalAxis** a block position on an axis or diagonal axis (so x=0, z=0, or x=z), and y=120 (configurable)

And finally `GoalComposite`. `GoalComposite` is a list of other goals, any one of which satisfies the goal. For
example, `mine diamond_ore` creates a `GoalComposite` of `GoalTwoBlocks`s for every diamond ore location it knows of.
And finally `GoalComposite`. `GoalComposite` is a list of other goals, any one of which satisfies the goal. For example, `mine diamond_ore` creates a `GoalComposite` of `GoalTwoBlocks`s for every diamond ore location it knows of.

# Future features

# Future features
Things it doesn't have yet

- Trapdoors
- Sprint jumping in a 1x2 corridor

Expand Down
Loading