Download Latest Version GriefPrevention3D.jar (933.2 kB)
Email in envelope

Get an email when there's a new version of GriefPrevention3D

Home / v18.2.0
Name Modified Size InfoDownloads / Week
Parent folder
GriefPrevention3D.jar 2026-07-01 929.3 kB
README.md 2026-07-01 2.2 kB
v18.2.0_ database parity -- 3D claims, shaped claims, modified date source code.tar.gz 2026-07-01 642.3 kB
v18.2.0_ database parity -- 3D claims, shaped claims, modified date source code.zip 2026-07-01 826.7 kB
Totals: 4 Items   2.4 MB 0

GriefPrevention3D v18.2.0

Wiki: GriefPrevention3D Wiki

Features

DatabaseDataStore now matches FlatFileDataStore feature-for-feature

DatabaseDataStore was missing three persisted fields that FlatFileDataStore has supported for some time. Database users will now get identical behaviour.

3D claims (is3d)

The is3d boolean is now persisted in the griefprevention_claimdata table. Claims created with 3D enabled (subdivisions that respect Y boundaries) will correctly reload after a restart.

  • Schema migration v7: ALTER TABLE griefprevention_claimdata ADD COLUMN IF NOT EXISTS is3d BOOLEAN DEFAULT 0
  • DatabaseDataStore.java: passes is3d from ResultSet to new Claim(…) instead of hardcoding false

Shaped claims (shapecorners)

Shaped claim geometry (non-rectangular orthogonal polygons) is now serialized to a shapecorners TEXT column as semicolon-delimited x,z pairs. Existing rectangular claims are unaffected.

  • Schema migration v8: ALTER TABLE griefprevention_claimdata ADD COLUMN IF NOT EXISTS shapecorners TEXT DEFAULT ''
  • DatabaseDataStore.java: serializeCornersForDb() / parseCornersFromDb() helpers convert between List<OrthogonalPoint2i> and the DB text format
  • Reads are passed to claim.setShapedCorners() on load

Modified date (modifieddate)

Each claim's last-modified timestamp is stored as a BIGINT (epoch millis). On first save after migration, existing claims without a timestamp will get the current time.

  • Schema migration v9: ALTER TABLE griefprevention_claimdata ADD COLUMN IF NOT EXISTS modifieddate BIGINT DEFAULT 0
  • DatabaseDataStore.java: claim.modifiedDate is set from modifieddate column on load (when > 0) and written on every save

Technical details

Schema version What changed
7 Added griefprevention_claimdata.is3d
8 Added griefprevention_claimdata.shapecorners
9 Added griefprevention_claimdata.modifieddate
10 Current latestSchemaVersion

All migrations use ALTER TABLE … ADD COLUMN IF NOT EXISTS — zero-touch upgrade for existing database users.

Source: README.md, updated 2026-07-01