- Java 96.3%
- PowerShell 3.3%
- Batchfile 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| gradle/wrapper | ||
| src | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| build-release.cmd | ||
| build-release.ps1 | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
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
#minekennt 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. Dasstandalone-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-IDbaritone, 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:
- spiegelt das Projekt nach
%LOCALAPPDATA%\starhud-baritone-build. Der Ordner bleibt zwischen den Läufen erhalten, damit Gradles Caches spätere Builds schnell machen, - baut dort mit
gradlew build, - legt
starhud_baritone-26.3-<version>.jarund das-sources.jarnachrelease\und prüft die Kopie per SHA-256. JARs älterer Versionen wandern nachrelease\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 FAILEDmeldet, obwohl alle Prüfungen bestanden sind. Maßgeblich ist das Log: Ein Fehlschlag erscheint dort alsAssertionError, ein Erfolg endet mitPlayer0 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.dllundJAVA_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=nullschaltet 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.