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).
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.’ ```