No description
  • Kotlin 95.4%
  • Python 1.7%
  • Shell 1.1%
  • Svelte 0.8%
  • JavaScript 0.5%
  • Other 0.5%
Find a file
DiamantTh 1e98f951fd test: verify destructive database outage recovery
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.
2026-10-24 03:45:10 +02:00
docs test: verify destructive database outage recovery 2026-10-24 03:45:10 +02:00
gradle architecture: consolidate HomeClaim runtime foundations 2026-10-10 20:41:06 +02:00
homeclaim-api security: add paired WebUX sessions and harden remote access 2026-10-19 23:53:42 +02:00
homeclaim-api-client runtime: stabilize merge and clarify extension descriptors 2026-10-11 22:09:09 +02:00
homeclaim-core test: verify full Paper DB outages and Purpur worlds 2026-10-23 01:28:24 +02:00
homeclaim-liftlink cleanup: remove obsolete mutation compatibility paths 2026-10-11 19:22:12 +02:00
homeclaim-platform-paper test: verify destructive database outage recovery 2026-10-24 03:45:10 +02:00
homeclaim-ux cleanup: remove obsolete mutation compatibility paths 2026-10-11 19:22:12 +02:00
homeclaim-webux test: add networked player command e2e 2026-10-24 02:24:17 +02:00
scripts test: verify destructive database outage recovery 2026-10-24 03:45:10 +02:00
.gitignore Cancel plot jobs on world unload 2026-04-11 22:30:54 +02:00
AGENTS.md runtime: close merge preflight reservation leaks 2026-10-12 00:02:03 +02:00
build.gradle.kts architecture: consolidate HomeClaim runtime foundations 2026-10-10 20:41:06 +02:00
CHANGELOG.md Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00
config.example.yml Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00
generate-world.py architecture: consolidate HomeClaim runtime foundations 2026-10-10 20:41:06 +02:00
gradle.properties Stabilize build and migrate WebUX to SvelteKit 2026-04-10 01:22:44 +02:00
gradlew Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00
gradlew.bat Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00
LICENSE Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00
README.md db: establish PostgreSQL reference runtime 2026-10-10 22:49:51 +02:00
settings.gradle.kts Initial import of HomeClaim project 2026-04-10 00:31:15 +02:00

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.md und docs/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 unter homeclaim-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.
  • 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.