Skip to content

Releases

antigrief v1.5.24

Choose a tag to compare

@TheNINJALLO TheNINJALLO released this 03 Nov 03:04

AntiGrief 1.5.24

  • Declare the Windows tzdata dependency required by the dashboard's America/New_York timezone. The 137-test suite passes in a fresh Windows Python 3.11 / Endstone 0.11.15 environment after installing that dependency. This does not qualify a Windows BlockData provider.

Target: Endstone 0.11.15 / API 0.11, BDS 1.26.60.6 (protocol 2225).

Release assets include SHA256SUMS.txt and release-provenance.json. This is a GitHub release; no production server was deployed or restarted.

AntiGrief 1.5.23: Storage-safe startup hotfix

Choose a tag to compare

@github-actions github-actions released this 28 Oct 18:24

AntiGrief 1.5.23

Fix the 1.5.22 startup failure at idx_interactions_coordinates_time when SQLite reports database or disk is full. Building this additional index over a large audit history requires database and temporary storage and must not be required just to load AntiGrief.

The new index is disabled by default. Existing indexes and audit records are retained. Administrators can opt in with "build_legacy_history_index": true after confirming sufficient database, container-quota, and temporary-disk space. Required schema and recovery-safety migrations commit before optional maintenance; an optional index OperationalError rolls back only that maintenance, emits one startup diagnostic, and allows startup to continue. Required database failures remain visible.

While stopped, replace the 1.5.22 wheel with endstone_antigrief-1.5.23-py3-none-any.whl. Keep the existing plugins/antigrief_data folder and database. No manual SQL or index rebuild is needed. If storage is actually full, free space or increase the server's storage quota before expecting audit writes to resume. This hotfix avoids the forced index build; it cannot create storage capacity.

The optional setting can be omitted; this upgrade does not force an existing configuration file to be rewritten just to add it.

Retain BlockData 0.6.9, Endstone 0.11.15, BDS 1.26.60.6, and CPython 3.14 on Linux x86-64. The quiet container logging, ownership cache, snapshot-copy optimizations, and distributed player inventory scans from 1.5.22 remain included.

Validation includes real SQLite page-limit exhaustion during an optional index build, default startup without the index, preservation of committed recovery-safety updates and audit history, successful writes after restoring capacity, and opt-in index creation. See installation and troubleshooting.

Local validation: 137 tests, CI Ruff checks, build, and package verification pass on CPython 3.11.9. The affected live server filesystem has not been inspected or modified.

Release checks and CI passed all 137 tests, lint, build, and package verification on CPython 3.14.

AntiGrief 1.5.22: Quiet container auditing and performance

Choose a tag to compare

@github-actions github-actions released this 28 Oct 18:11

Startup hotfix: Upgrade to AntiGrief 1.5.23 if this version fails while building idx_interactions_coordinates_time with database or disk is full. Version 1.5.23 disables that additional index by default and preserves existing audit data. Normal audit writes still require free storage.

AntiGrief 1.5.22

Remove routine container-access console spam and reduce repeated work when many players use containers. Opening containers, registering owners, capturing item changes, and caching legacy backups no longer emit routine console messages. Unauthorized activity remains in database/WebUI evidence; failures and rollback status remain visible.

Ownership and trust lookups use a 30-second cache capped at 2,048 containers. Placement and ownership/trust commands invalidate the affected entry immediately. Historical placement queries use a new coordinate/time index. Startup creates this index automatically; a large audit database can make the first startup longer.

Unchanged native revisions skip inventory diffing and duplicate closing snapshots. Slot comparisons copy only changed items, snapshot storage avoids redundant JSON conversions, and unchanged player inventories skip nested summaries. Periodic player inventory captures are spread across the configured scan period and resolve current player objects before capture. Known ordinary block placements no longer schedule native container checks.

Update AntiGrief for BlockData API 0.6.9 on Endstone 0.11.15, BDS 1.26.60.6 (Minecraft 1.26.60), and CPython 3.14 on Linux x86-64. The capture, patch, and player inventory interfaces remain compatible; AntiGrief retains its existing native version handshake and service reconnect behavior.

Read the native bridge's canonical and snbt block-entity fields so snapshot metadata and container audit rows correctly identify canonical NBT, and SNBT appears in the WebUI for stored and inline snapshots. Older records using canonical_nbt and raw_snbt remain readable. Disabling store_raw_snbt now excludes both SNBT field names from queued container snapshots.

While the server is stopped, replace the older AntiGrief wheel with endstone_antigrief-1.5.22-py3-none-any.whl. Install the complete endstone_blockdata_inspector-0.6.9-cp314-cp314-linux_x86_64.whl from the BlockData deployment ZIP. It bundles and loads its matching native provider; remove older inspector wheels and standalone BlockData libraries. Preserve the existing database, configuration, and plugin data folders. Keep the qualified default enable-script=true setting. See installation.

Validation: all 131 automated tests and CI Ruff checks pass locally on Python 3.11, including cache freshness/bounds, scan scheduling, quiet container logging, snapshot isolation, BlockData 0.6.9 compatibility, and the existing rollback, recovery, persistence, and browser regressions. A local 54-slot nested-bundle benchmark reduces the Python diff step from about 16 ms to 0.2–0.5 ms per call. This excludes native capture and does not measure live server tick time. See validation. AntiGrief 1.5.22 has not been validated on a running BDS 1.26.60.6 server or with live player transfers.

CI validation also passed all 131 tests, lint, build, and package verification on CPython 3.14.9 with Endstone 0.11.15.

AntiGrief 1.5.20: dashboard search and container audit fixes

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:58
0ec7026

AntiGrief 1.5.20

Fix blank or stale dashboard searches. Enter now applies filters; player names are trimmed; area filters accept spaces or commas and support radius zero. Invalid filters and API failures produce visible messages, and a slow previous search cannot replace newer results. Statistics failures no longer block event searches.

Dashboard API requests now send the access key in a header and preserve the dashboard's URL prefix. This fixes requests with special characters in the access key and supports dashboards served under a proxy path. The status badge now shows connection/search state instead of always claiming monitoring.

Fix missing container tracking for copper chests, including all oxidation/waxing variants, lit furnace/smoker block types, and wood shelves. Copper-chest opens previously appeared only as ordinary interactions because they were absent from the container list. Direct shelf/bookshelf/pot interactions now schedule a committed inventory comparison as well.

Record committed item additions and removals while a container is open, using inventory transactions and authoritative item-stack responses to trigger native snapshot comparisons on the following server tick. Each change retains exact before/after item NBT and snapshot IDs for the dashboard and rollback. Changes committed in the same server tick are combined into one slot comparison.

Prevent delayed close callbacks from consuming a newly opened container's tracking session. Preserve the existing baseline across duplicate interactions, and capture final changes on client/server closes, disconnects, and plugin shutdown. Unchanged or rejected transaction notifications do not create duplicate snapshot rows.

Replace the older AntiGrief wheel with endstone_antigrief-1.5.20-py3-none-any.whl and restart the server, keeping the existing database and configuration. Confirm capture_container_open_close is enabled and BlockData connects. After moving items, allow the database writer up to 20 seconds and refresh the dashboard with the Container filter.

Validation: 107 automated tests pass, including nine headless Chrome tests against a local SQLite-backed API, 30 new simulated container-event tests, and a transaction-to-SQLite-to-dashboard API regression. Ruff checks pass. The updated plugin has not been installed on The Kingdom or validated with live player transfers. It retains the 1.5.19 recovery duplication fixes and /agstop command.

v1.5.19

Choose a tag to compare

@github-actions github-actions released this 01 Oct 20:17

Full Changelog: v1.5.18...v1.5.19

Full Changelog: v1.5.18...v1.5.19

v1.5.18

Choose a tag to compare

@github-actions github-actions released this 27 Sep 23:31

AntiGrief now loads the current BlockData bridge first, reconnects after service failures, and rejects mismatched native and Python bridge versions using Endstone's native plugin metadata. This includes the SQLite/Unicode inventory persistence fixes from 1.5.16.

Install this wheel with the complete BlockData API 0.6.6 bundle. The native bundle supports Linux x86-64, Endstone 0.11.12, BDS 1.26.51.1, and CPython 3.14. Stop the server before replacing old wheels and loose BlockData libraries; preserve all plugin data folders.

Validation: 48 Python tests and release packaging checks passed. The published AntiGrief wheel was also loaded in a disposable BDS server with BlockData 0.6.6: both native services connected, container and custom-item NBT round-tripped, nested bundle contents survived, invalid writes were rejected, and shutdown completed cleanly. The final validation report is attached to the release.

README, installation docs, and wiki source pages are updated. The documentation site is published; GitHub Wiki publishing requires the repository's first wiki page to be initialized.

AntiGrief 1.5.17

Choose a tag to compare

@TheNINJALLO TheNINJALLO released this 27 Sep 23:00

AntiGrief 1.5.17

Repair current bridge discovery, reject mixed provider versions, and reconnect after stale BlockData service failures. Use the BlockData 0.6.6 bundle wheel on Linux x86-64 with Endstone 0.11.12 / BDS 1.26.51.1 / Python 3.14. No Windows native provider is included.

48 regression tests pass. Installation and troubleshooting pages have been updated.

AntiGrief v1.5.16: Unicode snapshot storage fix

Choose a tag to compare

@github-actions github-actions released this 09 Sep 13:36
2a37c88

Fixes repeated periodic database flush failures such as UnicodeEncodeError: 'utf-8' codec can't encode character '\udc8a' ... surrogates not allowed when BlockData captures non-UTF-8 item NBT.

  • Escape canonical snapshot, interaction, recovery, and report JSON for storage while retaining the original NBT bytes for exact restoration.
  • Make raw diagnostic SNBT safe for SQLite TEXT and handle already-buffered unescaped container, player-inventory, and interaction records without dropping the batch.
  • Keep the existing database schema; no migration is needed.
  • Add regressions covering mixed-batch flushing, empty retries, the reported byte at position 6125, all byte values, malformed UTF-8, valid Unicode, embedded NULs, and literal escape sequences.

All 44 tests, Ruff checks, package builds, and release metadata validation pass. A live BDS server test has not been performed.

For BDS 1.26.45 / Endstone 0.11.10 / CPython 3.14, use the matching native plugin and inspector wheel from BlockData v0.6.3. Stop the server, replace the older Antigrief wheel with endstone_antigrief-1.5.16-py3-none-any.whl, remove duplicate older versions, and restart. This Antigrief storage fix also accepts the surrogate-preserving payloads from BlockData v0.6.2.

Full changelog: v1.5.15...v1.5.16

v1.5.15

Choose a tag to compare

@github-actions github-actions released this 17 Aug 21:39

Full Changelog: v1.5.14...v1.5.15

v1.5.14

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:36

Full Changelog: v1.5.13...v1.5.14