ChestKey

ChestKey is a Paper (1.21.11+) Minecraft plugin that lets you lock and protect chests using unique keys. It uses only the official Adventure API (no NMS or reflection).

57

ChestKey

ChestKey

ChestKey is a Minecraft plugin for Paper (1.21.11) for locking and protecting chests using unique keys. It works on Java-based servers using Paper API 1.21 or higher and uses only the official Adventure API for texts. It does not require NMS or Reflection.

Features

- Break rules: Each key is a `TRIPWIRE_HOOK` with a random UUID in the `PersistentDataContainer`, a visible short ID in the Lore, and a glitter effect. - Break rules: Shift-right-click on a (Trapped)Chest with a key links the chest to the key without consuming it. Double chests are treated as a single unit. - Break rules: Only players with a key in their main or off-hand can open locked chests. Incorrect or missing keys block opening and display particles/indicators. - Break rules: Locked chests can only be broken with the correct key. Admins with `chestlock.admin.break` can break any chest.

- Configurable visual effects: Mixing a key and an iron ingot produces two keys with identical UUIDs (provided by a Shapeless recipe). - Configurable visual effects: Hoppers, pistons, and explosions cannot affect locked chests. - Configurable visual effects: Particles and small hint signs can be turned on/off in `config.yml`.

Installation

1. Build the project with Maven: ```bash mvn package ``` 2. Copy the generated JAR (`target/chestlock-1.0-SNAPSHOT.jar`) to the `plugins` directory of your Paper server. 3. Start the server. When starting for the first time, `messages.yml` and `config.yml` will be created in the plugin data folder. 4. Customise `messages.yml` or `config.yml` as needed.

Configuration

`config.yml` currently contains two options:

```yaml visual: particles: true indicator: true ```

- `particles`: activates particle effects when opening attempts fail and after locking. - `indicator`: displays a temporary ‘closed’ sign above the chest.

A complete sample configuration is included in the plugin archive.

Messages

All texts come from `messages.yml` and use the MiniMessage format. You can customise this file to use translations or your own colours.

Example entries:

```yaml chest: locked: ‘<red>This chest is locked and you do not have the right key.’ ```

ADS