Skip to content

Releases: joelra/private-chests

v1.3.0

Choose a tag to compare

@joelra joelra released this 06 Jul 01:24

What's Changed

  • Updated to version 26.2

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@joelra joelra released this 04 Apr 07:41

This release adds support for [public] protection signs.

What's new

  • Added [public] signs for protected containers
  • Public containers can be opened by anyone
  • Public containers still keep protection against breaking, explosions, and fire
  • Only the sign owner or an admin can edit or remove a public sign
  • Added support for dormant protection signs so alternate signs do not activate automatically
  • Added admin command filters for public/private protected containers
  • Cleanup now removes stale dormant sign records as well as stale active lock records

Notes

  • Hopper and automation behavior is unchanged for protected containers
  • This release targets Minecraft 26.1.1

v1.1.1

Choose a tag to compare

@joelra joelra released this 04 Apr 06:31
4dfe812

Summary

Rewrites SignEditMixin for better mod compatibility, robustness, and correct environment scoping.

Changes

SignEditMixin.java

  • Change mixin target from ServerGamePacketListenerImpl to SignBlockEntity, injecting at HEAD of updateSignText instead of using a fragile INVOKE-before injection that captured local variables
  • Remove @Shadow, LocalCapture.CAPTURE_FAILHARD, and all now-unneeded imports — the player, isFrontText, and filteredLines are all directly available as method parameters at HEAD
  • Add instanceof ServerPlayer guard so the hook silently no-ops if somehow invoked outside a server context (e.g. future API changes)

private-chests.mixins.json

  • Move SignEditMixin from the shared mixins array to the server array so it is never loaded on the client at all — the correct approach for a purely server-side mixin

Why

The original approach relied on LocalCapture.CAPTURE_FAILHARD to capture locals from inside ServerGamePacketListenerImpl.handleSignUpdate. This is brittle: any obfuscation or bytecode change in that method (or a conflicting mixin from another mod) can cause it to fail hard at startup. Targeting SignBlockEntity.updateSignText directly at HEAD requires no local capture and is far more stable across Minecraft versions and mod combinations.

v1.1.0

Choose a tag to compare

@joelra joelra released this 04 Apr 06:04

Private Chests v1.1.0

Adds support for Minecraft 26.1.1 on Fabric.

Highlights

  • Ported the mod to Minecraft 26.1.1
  • Updated the Fabric/Gradle setup for Minecraft 26.1's official-mappings runtime
  • Updated saved-data handling for current Minecraft APIs
  • Fixed owner ban checks for the new server API
  • Confirmed the mod builds successfully for release

Requirements

  • Minecraft 26.1.1
  • Fabric Loader 0.18.5+
  • Fabric API 0.145.2+26.1.1
  • Java 25

Notes

  • If you use Geyser or Floodgate, make sure you install versions compatible with Minecraft 26.1.1

v1.0.0

Choose a tag to compare

@joelra joelra released this 29 Dec 08:56

Private Chests v1.0.0

Initial release of Private Chests - a server-side chest and barrel protection mod using wall signs.

Features

Core Protection

  • Lock chests and barrels with wall signs using [private] markers
  • Multi-user access: add usernames on remaining sign lines (comma-separated or line-by-line)
  • Two-sided sign support: use front and back for up to 7 additional usernames
  • Automatic double chest handling and expansion protection

Comprehensive Security

  • Prevents unauthorized container opening
  • Blocks chest placement next to locked containers (non-owners)
  • Prevents hopper placement and extraction
  • Protects against TNT explosions, fire spread, and piston movement
  • Owner and admin can break locked containers (auto-removes lock)

Server Tools

  • Admin commands: /private_chests (alias: /pchests)
  • List locks, view detailed info, unlock containers, search by area
  • Configurable admin permission levels and display limits
  • Timestamps tracking (creation and last update)

Cross-Platform

  • Full Bedrock player support via Floodgate/Geyser
  • Configurable username prefix handling

Requirements

  • Minecraft 1.21.11
  • Fabric Loader 0.18.4+
  • Fabric API
  • Java 21+

Installation

  1. Download private-chests-1.0.0.jar
  2. Place in your server's mods folder
  3. Start the server
  4. Configure in config/private-chests.json if needed

Known Issues

  • Sign text may briefly disappear when unauthorized players attempt to break protected signs (left/right-click to restore)
  • Items may temporarily appear to disappear when placing blocks near locked containers (interact with hotbar slot to restore)