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

Quick challenge

How far can you run before the mobs catch you?

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