No description
- Kotlin 95.4%
- Python 1.7%
- Shell 1.1%
- Svelte 0.8%
- JavaScript 0.5%
- Other 0.5%
Extend the real Paper database outage harness with a deterministic partial COPY write barrier, same-volume PostgreSQL restart recovery, MariaDB same-process reconnect recovery, and a SQLite process-crash restart case. Add a Purpur process-restart recovery task and use the Java 25 toolchain for Paper-compatible world tests. Keep transfer failure journaling off the Paper tick while preserving the mutation reservation until persistence attempts finish. Record backup timestamps with millisecond precision so HCBK manifest provenance remains equal to MariaDB index values. Adapt disposable DB scripts to loopback-only random ports when Podman lacks a network backend, and document the verified recovery boundary and remaining inconclusive world-suite reruns. |
||
|---|---|---|
| docs | ||
| gradle | ||
| homeclaim-api | ||
| homeclaim-api-client | ||
| homeclaim-core | ||
| homeclaim-liftlink | ||
| homeclaim-platform-paper | ||
| homeclaim-ux | ||
| homeclaim-webux | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| build.gradle.kts | ||
| CHANGELOG.md | ||
| config.example.yml | ||
| generate-world.py | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
HomeClaim
HomeClaim ist ein modulares Plot-/Regionen-Framework fuer Minecraft-Server. Der Core ist bewusst schlank (Regionen, Rollen, Policy-/Flag-Engine, Zonen, Events) und unterliegt der GNU AGPL v3. Module koennen darauf aufbauen - erste Referenzen sind eine UX-Schicht und LiftLink (Elevator-/Teleport-Pads).
Doku-Aufteilung
- Kurzdoku (diese README): schneller Einstieg, Build, wichtigste Links.
- Erweiterte Doku:
docs/README_ADVANCED.md. - REST API:
docs/api/README.mdunddocs/api/openapi.yaml.
Module
homeclaim-core: Datenmodelle, Service-Schnittstellen, Policy-Grundlagen.homeclaim-ux: Referenz-Wiring fuer In-Game-/Web-UX, nutzt Core-Services.homeclaim-liftlink: Bewegungs-Komponenten (Elevator-/Teleport-Pads) auf Basis des Core-Component-Service.homeclaim-platform-paper: Paper-Adapter fuer Minecraft/Paper 26.3.x+ (Java 25); Purpur ist ein wichtiges Kompatibilitaetsziel. Folia wird nicht unterstuetzt.- Datenbank-Supportmatrix und Laufzeitgrenzen:
docs/db/README.md. PostgreSQL ist die empfohlene Server- und Referenzdatenbank, MariaDB eine unterstuetzte Produktionsalternative, SQLite die einfache lokale/single-server Option. MySQL ist experimentell und nicht offiziell unterstuetzt. docs/db/schema.sql: erweiterte Schema-Referenz; das kanonische Initialschema fuer die Plugin-Runtime liegt unterhomeclaim-platform-paper/src/main/resources/db/migration/common/.
Quickstart
Build
./gradlew :homeclaim-platform-paper:shadowJar
Tests
./gradlew test
Setup im Spiel
/homeclaim setup
- Paper: Welt erstellen; Konvertierung mit FAWE moeglich.
- Folia: nicht unterstuetzt.
- Sichere Setup-Grenzen: Plotgroesse 16 bis 512, Strassenbreite 1 bis 128, Hoehe 1 bis 319.
Recovery bei unvollstaendigem Erststart
/homeclaim plot init <welt>
- initialisiert fehlende Plot-Regionen erneut
- ist retry-sicher und erzeugt keine doppelten Regionen
- beim Plugin-Start wird eine unvollstaendige Plotwelt zusaetzlich automatisch nachgezogen
Entry-Deny und Staff-Override
- Entry-Deny-Regeln sperren Betreten und Teleports auf ein Plot zielgerichtet fuer UUID, Name oder Wildcard und verlangen einen Grund.
- API-Checks liefern Deny-ID und Grund, damit Web-/Abuse-Systeme widerspruechliche Regeln melden koennen.
- Staff kann mit
/homeclaim entryforce <player|uuid> <here|any|regionUuid> <reason...>einen kurzlebigen Override fuer Support-/Admin-Teleports vergeben. - Dauerhafte Bypass-Rolle:
homeclaim.admin.entry.denied; begruendeter Force-Grant:homeclaim.admin.entry.force.
Wichtige Links
- Erweiterte Architektur-, Config- und Betriebsdoku:
docs/README_ADVANCED.md - API Doku:
docs/api/README.md - OpenAPI:
docs/api/openapi.yaml - DB Schema:
docs/db/schema.sql - Lizenz:
LICENSE
Lizenz
HomeClaim Core steht unter der GNU Affero General Public License v3 (siehe LICENSE). Module sollten kompatible Lizenzen nutzen.