Locki
A library for controlling access to the player's inventory
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Locki
Locki

A Quilt library handling player inventory locking. Can also be used as a standalone mod, through the `/locki` command.
This mod must be installed on both server and client to work properly.
Overview
Locki represents slots using *inventory nodes*. Inventory nodes are structured as a tree, allowing commands or mods to quickly lock or unlock entire sections while retaining controls over finer units. Inventory nodes are represented as a dot-separated path, from least specific ancestor to most specific child node. For example `inventory` describes the entirety of the player's inventory, while `inventory.armor.chest` describes the chestplate slot of the inventory.
When an inventory node gets locked, descendant nodes can still be unlocked, allowing you to exclude specific slots from a broad access ban. For example, locking `inventory` then unlocking `inventory.armor.chest` will prevent the player from touching any item in their inventory except their chestplate.
Commands
Locki adds the `/locki` command, allowing server operators and mapmakers to interact with the API through commands. - `/locki lock <node> [<targets>] [<lock>]` : locks the inventories of one or more players - `<node>` : a full path describing a known *inventory node*. - `[<targets>]` (optional) : If specified, must be either a player's username or a target selector. If unspecified, defaults to the player using the command. When used in a command block, player is not optional. - `[<lock>]` (optional) : If specified, must be a valid identifier referencing a registered lock. If unspecified, defaults to the generic "command" lock. - `/locki unlock <node> [<targets>] [<lock>]` : unlocks the inventories of one or more players - `[<targets>]` (optional) : If specified, must be either a player's username or a target selector. If unspecified, defaults to the player using the command. When used in a command block, player is not optional. - `[<lock>]` (optional) : If specified, must be a valid identifier that was previously used as a lock to affect the players' inventories. If left unspecified, defaults to the generic "command" lock.
Permissions
If you have LuckPerms installed, the above commands can be used by players with the `locki.command.lock` permission. If you only grant `locki.command.lock.self`, players will only be able to use the commands on themselves.
Developer information
For more information on how to add it to your development environment and how to use it, see the project's readme.