StarHUD Baritone addon (Fabric Minecraft mod)
  • Java 96.3%
  • PowerShell 3.3%
  • Batchfile 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Mika Zirklewski b258a5745d Release 1.3.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:08:25 +01:00
gradle/wrapper Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
src Show the time spent mining instead of the ETA 2026-10-25 15:59:38 +01:00
tools Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
.gitattributes Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
.gitignore Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
build-release.cmd Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
build-release.ps1 Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
build.gradle Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
gradle.properties Release 1.3.1 2026-10-25 16:08:25 +01:00
gradlew Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
gradlew.bat Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
LICENSE Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00
README.md Show the time spent mining instead of the ETA 2026-10-25 15:59:38 +01:00
settings.gradle Initial commit: StarHUD Baritone addon 1.3.0 2026-10-25 04:48:32 +01:00

StarHUD Baritone Addon

Ein Fabric-Addon für StarHUD mit zwei zusätzlichen HUD-Elementen im Stil der übrigen StarHUD-Elemente: Das Baritone HUD zeigt, was Baritone gerade tut, das Baritone Progress HUD, wie weit es damit ist.

Baritone HUD (Status)

Tätigkeit Beispiel
Unterwegs Unterwegs → 120 64 -30 · 0:42
Pfad wird berechnet Berechne → 120 64 -30
Ziel gesetzt (ohne zu laufen) Ziel → 120 -30
Abbauen Baue Diamanterz +1 ab · 4:37 (bisherige Abbauzeit)
Suchen (#get/#goto <Block>) Suche Werkbank · 0:08
Bauen Baue house.schem
Farmen / Erkunden Farmen, Erkunden
Folgen Folge Steve +2
Elytra Elytra: Fliege → 1000 -2000
Pausiert Pausiert

Jede Tätigkeit hat ein eigenes 13×13-Pixel-Icon und eine eigene (einstellbare) Farbe. Im Leerlauf blendet sich das Element standardmäßig aus.

Warnungen

Kommt Baritone nicht weiter, zeigt das Element statt der Tätigkeit eine Warnung mit Warnsymbol in Rot, blinkend und mit einem Glockenton beim Erscheinen. Eine Warnung erscheint erst, wenn der Zustand eine Sekunde anhält, damit ein einzelner fehlgeschlagener Versuch weder flackert noch piept.

Warnung Beispiel Wann
Material fehlt Material fehlt: 64× Stein +2 Baritone hat das Bauen pausiert, und Blöcke des Schematics fehlen im Inventar. Zuerst steht der Block, der ganz aufgebraucht ist
Bauen steckt fest Bauen steckt fest Baritone hat das Bauen pausiert, aber es fehlt kein Material (z. B. unerreichbare Stelle, Flüssigkeit)
Kein Pfad gefunden Kein Pfad zu 120 64 -30 Die Pfadberechnung ist fehlgeschlagen. Bleibt stehen, auch wenn Baritone danach aufgibt, bis ein Pfad gelingt, das Ziel erreicht ist, eine andere Tätigkeit startet oder Baritone mit #stop/#cancel gestoppt wird
Inventar voll Inventar voll Beim Abbauen oder Farmen ist kein Platz mehr für das, was eingesammelt wird

Die Warnung erscheint auch dann, wenn „Im Leerlauf ausblenden“ das Element sonst verstecken würde.

Baritone Progress HUD (Fortschritt)

Tätigkeit Beispiel Woher die Zahl kommt
Abbauen Diamant 12 passende Items im Inventar, gezählt wie Baritones eigene Mengenprüfung
Abbauen mit Menge (#mine 64 diamond_ore) Diamant 12/64 · 18 % Menge aus dem Chat-Befehl
Bauen (#build, #litematica, #sel, #cleararea) 1.234/5.000 · 24 % · Schicht 4/20 Schematic gegen die Welt verglichen, Schicht nur mit buildInLayers
Unterwegs / Ziel gesetzt noch 342 m · 63 % Entfernung zum Ziel, Prozent ab dem Setzen des Ziels
Suchen (#goto <Block>) noch 18 m Entfernung zum nächsten bekannten Fundort
Elytra noch 8.400 m · 12 % waagerechte Entfernung zum Flugziel
Farmen 48 geerntet abgeerntete Pflanzen seit Beginn des Farmens
Erkunden Radius 12 Chunks fertig erkundeter Radius um den Startpunkt
Folgen 4,2 m entfernt Abstand zum nächsten verfolgten Ziel

Wo es ein Ende gibt (Menge, Schematic, Ziel), zeigt das Element zusätzlich StarHUDs Haltbarkeitsbalken in der Farbe der Tätigkeit. Während einer Pause bleibt der letzte Fortschritt stehen. Ohne Fortschritt blendet sich das Element standardmäßig aus.

Grenzen:

  • Die Menge bei #mine kennt das Addon nur, wenn der Befehl über den Chat kam. Ruft ein anderer Mod Baritone direkt auf, steht dort nur die gesammelte Anzahl.
  • Beim Bauen wird nur der Blocktyp verglichen, nicht Drehung oder andere Eigenschaften. Positionen in nicht geladenen Chunks behalten den zuletzt gesehenen Zustand. Schematics über 32 Millionen Positionen werden nicht gezählt.
  • Beim Farmen zählen Weizen, Karotten, Kartoffeln, Rote Bete, Netherwarzen, Kürbisse, Melonen, Kakao, Zuckerrohr, Bambus und Kakteen. Süße Beeren erntet Baritone durch Benutzen statt Abbauen, die zählen nicht mit.

Standardposition beider Elemente ist rechts unten, über StarHUDs TPS/Ping/Uhr-Gruppe, das Fortschritts-HUD direkt über dem Status-HUD. Die linke obere Spalte ist bei StarHUD schon mit Koordinaten, Richtung, Tag und Nether-Koordinaten belegt.

Voraussetzungen

  • Minecraft 26.3, Fabric Loader ≥ 0.19.5, Fabric API
  • StarHUD 2.5.2 (für 26.3) und Cloth Config
  • Baritone v1.20.0 für 26.3, und zwar das JAR baritone-api-fabric-1.20.0.jar. Das standalone-JAR verschleiert auch Baritones API, damit kann kein anderer Mod den Zustand auslesen. Das Addon startet dann trotzdem, das Element bleibt aber leer (bzw. zeigt „Baritone-API nicht gefunden“, wenn „Im Leerlauf ausblenden“ aus ist). Nicht beide JARs gleichzeitig in den mods-Ordner legen: Beide haben die Mod-ID baritone, Fabric lädt dann ohne Meldung nur eines davon, unter Umständen das Standalone-JAR. Das API-JAR ist der komplette Baritone, das Standalone-JAR wird nicht gebraucht. Beim Start schreibt das Addon in diesem Fall eine Warnung ins Log, die den Dateinamen des tatsächlich geladenen JARs nennt.
  • Optional: Mod Menu, für den Einstellungsbildschirm des Addons

Baritone ist eine optionale Abhängigkeit: Ohne Baritone lädt das Addon problemlos und zeigt einfach nichts an.

Bedienung

  • Die Elemente erscheinen im StarHUD-Edit-Screen als „Baritone HUD“ und „Baritone Progress HUD“ und lassen sich dort wie jedes andere Element verschieben, skalieren, umschalten (Icon/Text/beides, Hintergrund, Schatten) und mit anderen Elementen gruppieren. Im Edit-Screen sind sie immer sichtbar, auch wenn Baritone gerade nichts tut.
  • Weitere Einstellungen gibt es in StarHUDs eigenem Einstellungsbildschirm im Tab „Addons“, mit je einem Abschnitt pro Element. Der Tab erscheint, egal ob die StarHUD-Einstellungen über Mod Menu oder über den Edit-Screen geöffnet werden. Mod Menu → StarHUD Baritone Addon öffnet direkt diesen Tab.

Baritone HUD, gespeichert in config/starhud_baritone.json:

Option Standard Bedeutung
HUD anzeigen an Element ein-/ausschalten
Bedingungen – StarHUDs bedingte Verschiebung/Ausblendung, wie bei allen anderen Elementen
Im Leerlauf ausblenden an Element verschwindet, wenn Baritone nichts tut
Details anzeigen an Ziel-Koordinaten, Blocknamen, gefolgte Spieler
Geschätzte Restzeit anzeigen an ETA aus Baritones Pfadschätzung (beim Laufen, Suchen)
Abbauzeit anzeigen an Wie lange schon abgebaut wird. Pausen zählen nicht mit, andere Blöcke oder ein neuer Abbau beginnen bei 0:00
Maximale Textbreite 160 Längerer Text wird mit „…“ gekürzt, 0 = unbegrenzt
Farben je Tätigkeit Pastelltöne Text- und Icon-Farbe pro Tätigkeit, gilt für beide Elemente
Warnungen → Material fehlt / Bauen steckt fest an Warnung, wenn Baritone das Bauen pausiert
Warnungen → Kein Pfad gefunden an Warnung nach fehlgeschlagener Pfadberechnung
Warnungen → Inventar voll an Warnung beim Abbauen und Farmen mit vollem Inventar
Warnungen → Blinken an Warnfarbe und Weiß wechseln sich zweimal pro Sekunde ab
Warnungen → Ton abspielen an Glockenton, wenn eine Warnung erscheint
Warnungen → Warnfarbe Rot (FF5555) Text- und Icon-Farbe der Warnung

Baritone Progress HUD, gespeichert in config/starhud_baritone_progress.json:

Option Standard Bedeutung
HUD anzeigen an Element ein-/ausschalten. Aus spart auch die Rechenarbeit, z. B. das Zählen beim Bauen
Bedingungen – StarHUDs bedingte Verschiebung/Ausblendung
Ohne Fortschritt ausblenden an Element verschwindet, wenn es nichts zu zählen gibt
Darstellung Text und Balken Text, Balken oder beides. Ohne bekanntes Ende wird immer Text gezeigt
Prozent anzeigen an Prozentwert hinter Menge, Blockzahl und Entfernung
Schicht anzeigen an aktuelle Schicht beim Bauen, nur wenn Baritones buildInLayers an ist

Wie es in StarHUD eingehängt ist

StarHUD 2.5.2 hat keine Addon-Schnittstelle: Die HUD-IDs sind ein festes Enum (HUDId), und beim Speichern der Konfiguration werden alle unbekannten IDs verworfen. Das Addon nutzt deshalb vier kleine Mixins in StarHUD-Interna, drei in Cloth Config und einen in Minecraft:

Mixin Zweck
AutoConfigClientMixin hängt den Tab „Addons“ an StarHUDs Einstellungsbildschirm an (über Cloth Configs ConfigScreenProvider.setBuildFunction)
AutoConfigClientAccessor liest AutoConfigs Standard-GUI-Registry, damit die Einträge im Addons-Tab genauso aussehen wie in den übrigen Tabs
ClothConfigScreenAccessor scrollt die Tab-Leiste zum Addons-Tab, wenn der Bildschirm über Mod Menu geöffnet wird
HUDComponentMixin registriert beide Elemente direkt nach StarHUDs eingebauten HUDs
HUDListMixin lässt die IDs BARITONE und BARITONE_PROGRESS als gültig durchgehen und nimmt die Elemente in die HUD-Liste auf
ConfigInitMixin speichert die Addon-Konfiguration immer dann mit, wenn StarHUD speichert (z. B. im Edit-Screen)
EditHUDScreenMixin sorgt dafür, dass „Änderungen verwerfen“ im Edit-Screen auch die Baritone-Elemente zurücksetzt (optional, require = 0)
MultiPlayerGameModeMixin zählt abgebaute Pflanzen, während Baritone farmt

Weil das an StarHUD-Interna hängt, kann ein künftiges StarHUD-Update das Addon brechen. Fehlschlagende Pflicht-Mixins fallen dann beim Spielstart mit einer eindeutigen Mixin-Fehlermeldung auf.

Baritone wird fast ausschließlich über seine öffentliche API gelesen (BaritoneAPI, IPathingControlManager, die Prozess-Interfaces, IPathingBehavior, IGameEventListener). Ausnahmen, weil die API die Daten nicht hergibt:

  • Baritones interne Pause-Prozesse werden über ihren Anzeigenamen erkannt, der Erkundungsradius kommt aus dem Anzeigenamen des Erkundungs-Prozesses.
  • Beim Bauen liest das Addon Schematic und Ursprung aus den Feldern von Baritones Builder. Die Klassen sind verschleiert, deshalb werden die Felder über ihren Typ gefunden (ISchematic, MaskSchematic, Vec3i). Ändert ein Baritone-Update diese Felder, fehlt nur die Blockzahl (mit einer Warnung im Log), der Rest läuft weiter.

Bauen

Benötigt ein JDK 25.

Release bauen: build-release.cmd

Direkt auf einer Netzwerkfreigabe (z. B. S: auf dem NAS) lässt sich nicht bauen: Fabric Loom bearbeitet sein Minecraft-JAR im Projektordner unter .gradle/loom-cache, und auf Samba-Freigaben öffnet Java solche ZIP-Dateien nur lesend (ReadOnlyFileSystemException).

build-release.cmd (Doppelklick genügt) erledigt das:

  1. spiegelt das Projekt nach %LOCALAPPDATA%\starhud-baritone-build. Der Ordner bleibt zwischen den Läufen erhalten, damit Gradles Caches spätere Builds schnell machen,
  2. baut dort mit gradlew build,
  3. legt starhud_baritone-26.3-<version>.jar und das -sources.jar nach release\ und prüft die Kopie per SHA-256. JARs älterer Versionen wandern nach release\old.

Das JDK nimmt das Skript aus JAVA_HOME oder sonst das neueste jdk-25* unter %USERPROFILE%\.jdks. Optionen:

build-release.cmd -BuildDir D:\builds\starhud-baritone -JavaHome "C:\Program Files\Java\jdk-25"

Die .cmd-Datei startet build-release.ps1 mit -ExecutionPolicy Bypass, weil Windows unsignierte Skripte auf Netzwerkfreigaben sonst blockiert. Per Doppelklick gestartet, bleibt das Fenster am Ende offen.

Die Version steht in gradle.properties (mod_version). Der Ordner release\ ist nicht in Git, die JARs lassen sich aus jedem Stand neu bauen.

Von Hand bauen

Auf einem lokalen Laufwerk geht es auch direkt:

./gradlew build

Das fertige Mod-JAR liegt danach in build/libs/starhud_baritone-26.3-<version>.jar.

Zum Testen startet ./gradlew runClient einen Entwicklungs-Client mit StarHUD, Cloth Config, Mod Menu und Baritone.

./gradlew runClientGameTest führt einen automatischen Ingame-Test aus (src/gametest): Er erstellt eine flache Testwelt, startet nacheinander echte Baritone-Prozesse (Ziel setzen, Laufen, Pausieren, Abbauen mit #mine 64 über den Chat, Bauen, Farmen eines Weizenfelds, Erkunden, Folgen), prüft jeweils den Text beider Elemente und legt Screenshots unter build/run/clientGameTest/screenshots ab. Danach provoziert er die Warnungen (Glas bauen ohne Glas, Abbauen mit vollem Inventar, Ziel aus einer Grundgesteinbox heraus) und prüft zum Schluss den Addons-Tab in StarHUDs Einstellungen. Elytra lässt sich in der flachen Testwelt nicht sinnvoll starten und ist deshalb nicht abgedeckt.

Hinweise zum Gametest:

  • Nach dem Test halten Baritones eigene Hintergrund-Threads die JVM am Leben. Minecrafts Shutdown-Watchdog beendet den Prozess dann hart, sodass Gradle BUILD FAILED meldet, obwohl alle Prüfungen bestanden sind. Maßgeblich ist das Log: Ein Fehlschlag erscheint dort als AssertionError, ein Erfolg endet mit Player0 left the game.
  • Ohne echten GPU-Treiber (z. B. in einer RDP-Sitzung mit „Microsoft Basic Display Adapter“) startet Minecraft 26.3 nicht. Dann hilft Mesa als Software-OpenGL (mesa-dist-win), eingebunden über PATH, SDL_OPENGL_LIBRARY=<mesa>\x64\opengl32.dll und JAVA_TOOL_OPTIONS=-Dorg.lwjgl.opengl.libname=<mesa>\x64\opengl32.dll.
  • In einer RDP-Sitzung kann OpenAL beim Start auf dem Gerät „Remoteaudio“ nativ abstürzen (Exit-Code 0xC0000005, ohne Java-Fehler). ALSOFT_DRIVERS=null schaltet die Tonausgabe für den Test stumm.

Die Icons werden aus Pixel-Rastern in tools/GenerateIcons.java erzeugt. Nach einer Änderung dort:

java tools/GenerateIcons.java

Lizenz

MIT, siehe LICENSE. StarHUD steht unter MIT, Baritone unter LGPL-3.0. Das Addon bündelt keinen der beiden Mods.