No description
  • Java 66.2%
  • Svelte 18.1%
  • Kotlin 9.3%
  • CSS 3.9%
  • JavaScript 1.4%
  • Other 1.1%
Find a file
2026-10-24 22:17:11 +02:00
26.x refactor: consolidate 1.2.x on Minecraft 26.x 2026-10-03 18:23:17 +02:00
docs fix: localize vanilla item fallbacks 2026-10-24 22:17:11 +02:00
gradle/wrapper chore: refresh Gradle 9.5.1 wrapper 2026-10-03 20:29:32 +02:00
src fix: localize vanilla item fallbacks 2026-10-24 22:17:11 +02:00
webui fix: respect anonymous auction seller sentinel 2026-10-24 21:48:06 +02:00
.gitignore refactor: consolidate 1.2.x on Minecraft 26.x 2026-10-03 18:23:17 +02:00
AGENTS.md docs: tailor agent guidelines for Visotaris 2026-10-03 19:31:32 +02:00
build.gradle build: harden pre7 web dependencies and history bundle 2026-10-15 01:12:07 +02:00
gradle.properties feat: show auction seller resolution state 2026-10-24 21:21:28 +02:00
gradlew chore: refresh Gradle 9.5.1 wrapper 2026-10-03 20:29:32 +02:00
gradlew.bat chore: refresh Gradle 9.5.1 wrapper 2026-10-03 20:29:32 +02:00
LICENSE fix: LICENSE durch Standard-AGPL-3.0-Text ersetzt (Plattform-Erkennung) 2026-04-06 17:20:40 +02:00
README.md fix: correct client and web currency display 2026-10-15 00:33:51 +02:00
settings.gradle refactor: consolidate 1.2.x on Minecraft 26.x 2026-10-03 18:23:17 +02:00

Visotaris OPMod

Eine freie, quelloffene Fabric-Client-Mod für Minecraft mit Fokus auf den OPSUCHT-Server.

Lizenz: AGPLv3+ · Minecraft: 26.x (aktuell 26.2) · Loader: Fabric

Aktueller Entwicklungsstand: Visotaris OPMod 1.2.0-pre.7 (Vorabversion). Visotaris 1.2.0+ unterstützt Minecraft 26.x. Ältere veröffentlichte 1.1.x-Versionen behalten ihre damalige Minecraft-Kompatibilität. Für 26.2 wird MaLiLib 0.29.3 separat benötigt. Änderungen und bekannte offene Prüfungen: Release-Notizen.


Features

Visotaris OPMod ergänzt den Minecraft-Client um Komfort- und Auswertungsfunktionen, die speziell auf die Spielmechaniken von OPSUCHT ausgelegt sind.

Funktion Beschreibung
Auktionshaus Getrennter lesender AuctionCache, Kategorien, Suche und lokale Sortierung; Live-Änderungen über SSE, Details in AUCTIONS.md
Marktpreis-Tooltips Zeigt aktuelle Kauf- und Verkaufspreise direkt im Item-Tooltip an
Merchant- & Shard-Werte Lädt Händler- und Splitter-Kurse und rechnet sie in Item-Bewertungen ein
Container-Overlay Zeigt den Gesamtwert von Kisten- und Shulker-Inhalten im Screen
Shulker-Rekursion Wertet Shulker-Box-Inhalte im Container-Overlay rekursiv mit aus
Quick-Buttons Schaltflächen in Kisten-Screens und Inventar für /jobs, /shard, /spawn
Job-Tracker Liest OPSUCHT-Job-Nachrichten aus dem Chat und berechnet Stundenwerte
HUD-Overlay Zeigt aktuellen Job, XP und geschätzte Stundenwerte im Spielbildschirm
/rename- & /sign-Schutz Fängt diese Befehle vor dem Absenden ab und fordert eine Bestätigung an
Offhand-Blocker Verhindert versehentliche Offhand-Swaps (F-Taste)
Amboss-Normalisierung Expandiert Kurzformen im Amboss-Rename-Feld: 1k → 1000, 2.5m → 2500000
Command-Kurzformen Dasselbe für Geld-Befehle: /pay spieler 1k, /bank deposit 2.5m u.v.m.
Inventar-voll-Warnung Pulsierender roter HUD-Hinweis wenn kein freier Inventar-Slot mehr vorhanden
Keybinds MaLiLib-Hotkey Alt+V (anpassbar/deaktivierbar) öffnet das native Menü; HUD-Toggle und Markt-Refresh bleiben eigene optionale Tastenbelegungen
Config + ModMenu Alle Funktionen einzeln ein-/ausschaltbar über eine Einstellungsseite (ModMenu-kompatibel)
Discord RPC Optionaler Discord-Rich-Presence-Service (standardmäßig deaktiviert)
Preisalarme Clientseitige Schwellenalarme für Kauf-, Verkaufs- und Spannenpreise aus dem synchronisierten Markt-Cache
Web-UX: Preisalarme Geschützter Bereich zum Verwalten und Beobachten einzelner Alarmregeln
Web-UX: Einstellungen Geschützter Bereich für Tooltip-Gruppen, Frischegrenze und Anzeige veralteter Cache-Daten
Native Ingame-UX Kompaktes Client-Menü, erreichbar über MaLiLib (Standard Alt+V): Übersicht → Auktionshaus → Markt → Preisalarme → Schutz & Komfort → Shard & Händler → System → Tooltips

Warum eine eigene Mod?

Es gibt bereits eine OPSUCHT-eigene Client-Mod (im Folgenden „OPMOD"), die viele dieser Funktionen enthält. Visotaris OPMod ist kein direkter Ersatz oder Klon, sondern entstand aus zwei konkreten Gründen:

1. Lizenz und Quelloffenheit
OPMOD wird unter einer All Rights Reserved-Lizenz vertrieben. Quellcode ist nicht öffentlich zugänglich. Für mich ist Open Source keine bloße Präferenz, sondern eine Grundüberzeugung: FOSS ist in vielen Ökosystemen wichtig – von Betriebssystemen über Frameworks bis zu Spielmods. Ich schaue mir auch nicht-FOSS-Projekte an und schätze sie, aber wenn ich selbst etwas baue, dann offen und nachvollziehbar.

2. Eigene Kontrolle über die Implementierung
Eine eigene Codebasis erlaubt es, Designentscheidungen selbst zu treffen, auf Probleme schnell zu reagieren und die Mod ohne Abhängigkeit von der Entwicklung Dritter weiterzupflegen.

Diese Mod ist keine Kritik an den Entwicklern von OPMOD. Die Entscheidung für eine proprietäre Lizenz ist legitim – jedes Team trifft diese Entscheidung aus eigenen Gründen, und das ist ihr gutes Recht. Visotaris OPMod ist die freie Alternative für alle, denen Quelloffenheit bei Software wichtig ist.


Wie die Analyse erfolgte

Um zu verstehen, welche Funktionen sinnvoll sind und wie OPSUCHT-spezifische Mechaniken funktionieren, wurde OPMOD technisch analysiert. Das Vorgehen war:

  • Werkzeuge: Gängige Java-Dekompilier-Werkzeuge (z. B. Vineflower/Fernflower über IntelliJ, Bytecode-Viewer)
  • Gegenstand: Ausschließlich Clientlogik – OPMOD liest keine geheimen Serverdaten, sondern wertet sichtbare Chat-, Screen- und Item-Informationen aus sowie öffentliche OPSUCHT-APIs
  • Ergebnis: Kein Code wurde übernommen. Die Analyse diente ausschließlich dem Verständnis der Spielmechaniken und der OPSUCHT-Chat-/Screen-Formate

Das vollständige technische Analysedokument liegt unter docs/OPMOD-Architektur-und-Bauplan.md. Die Übersicht der direkten Abhängigkeiten und ihrer Lizenzen steht in docs/DEPENDENCIES.md.


Build

Preisalarme und Tooltip-Einstellungen

Die lokale Web-UX enthält unter /system/price-alerts die Preisalarmverwaltung und unter /system/settings die Minecraft-Tooltip-Einstellungen. Beide Bereiche verwenden dieselbe lokale Systemanmeldung wie /system. Alarmregeln werden ausschließlich nach einem erfolgreichen Update des bereits vorhandenen Markt-Caches ausgewertet. Kaufpreis, Verkaufspreis und Spanne (buy - sell) können jeweils über oder unter einem Schwellenwert beobachtet werden. Regeln unterstützen einmalige oder wiederholte Meldungen, Cooldown, erneutes Auslösen nach Verlassen des Schwellenbereichs sowie Minecraft-HUD, Web-UI (solange geöffnet) oder beide Kanäle. HUD-Meldungen erscheinen kurzzeitig und nacheinander, ohne den Minecraft-Chat zu belegen. Alte CHAT-/BOTH-Regeln werden beim Laden unter Erhalt ihres Zustands auf HUD/HUD_WEB migriert. Sie führen keine Käufe, Verkäufe, Befehle oder zusätzlichen Markt-/Minecraft-Abfragen aus. In den Minecraft-Einstellungen lässt sich die Alarmfunktion global an- und ausschalten; von dort führt ein Button zur Regelverwaltung im lokalen Webinterface. Falls das Webinterface noch nicht läuft, öffnet der Button zunächst dessen Einrichtung.

Die Zusatzinformationen erscheinen im normalen Minecraft-Item-Tooltip beim Zeigen auf einen Item-Slot, zusammen mit den regulären Eigenschaften und Verzauberungen. Off-Hand, dauerhaftes HUD und Container-Gesamtwert sind davon getrennt. Tooltips lesen weiterhin nur die lokalen Markt- und Händler-Caches. In der Web-UX sind Kauf-/Verkaufspreis, Händlerwerte, Datenalter und der Umgang mit veralteten Daten separat konfigurierbar; Shard- und sonstige Händlerkurse lassen sich getrennt schalten. Die TOML-Datei verwendet englische Abschnittsnamen wie [display], [network], [tooltips] und [priceAlerts]; ältere deutsche Abschnitte wie [anzeige] und [netzwerk] werden beim Laden übernommen und atomar in die englischen Namen migriert. Unter POSIX-Systemen wird die Config-Datei mit Modus 0600 geschrieben; unter Windows gelten die ACLs des Konfigurationsordners.

Voraussetzungen: Java 25, Gradle (Wrapper inklusive), Fabric für Minecraft 26.2.

# Auslieferbaren Minecraft-26.x-JAR bauen
./gradlew buildAll
# Erhaltene Service-/API-/Config-Tests auf der 26.x-Plattform
./gradlew :26.x:test
# Nativen Entwicklungsclient mit Mod Menu starten
./gradlew runClient

Der finale JAR liegt in 26.x/build/libs/; buildAll kopiert ihn nach out/visotaris_opmod-1.2.0-pre.7+mc26.2.jar. Alle Quellen und Tests liegen zentral unter src/main/ und src/test/. Es gibt keinen aktiven 1.21.11-Buildpfad.


Kotlin + Java

Die Codebasis nutzt beide Sprachen:

  • Mixins (hooks/) → Java (sicherer mit Annotation-Prozessoren)
  • Services und Datenmodelle → Kotlin bevorzugt

Lizenz

Copyright (C) 2026 DiamantTh
Lizenziert unter der GNU Affero General Public License v3.0 oder später.
Siehe LICENSE.