XantamLock Advanced ChestLocking icon

XantamLock Advanced ChestLocking -----

Advanced chest locking plugin



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Note: I am new to the coding scene and the plugin isn't fully finished. Please reach out for any bugs or issues you may have before downvoting.

While I have tested this plugin quite extensively (and also use it live on a community server), that doesn't mean it may not have issues. I just don't know of any, thank you. :)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Context (skip if you want)
I spent hours and days trying to find a sufficient Minecraft Chest-Locking plugin that met all of my needs, to no avail. Most plugins offered only either a bare minimum locking functionality with bits and pieces of what I wanted split among various different plugins. So I decided to make my own. It took a while...

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

What is this? Why is it different?
This plugin has a few features that in my opinion sets it apart from others;

  • Allows you to create lock names
  • Allows you to use a punch or tool command, to;
  • Lock entities under the lock name
  • Manage the lock mode (Private | Public | Donation)
  • Visualise the parts of the lock you have selected
  • Whitelist blocks that can be locked (via config.yml)
  • Admin bypasses
  • Interactive interface/GUI (such as /lock list, clickable buttons)
  • Links with Factions, PlaceholderAPI, ChatControl and Vault
  • Links through Vault to economy, with configurable options to charge for new locks and locking entities and also refunds for removing/deleting
This is different from other plugins as most other plugins rely on a password/code or just 1 block/entity at a time and don't really have the freedom to add to a whitelist, giving server owners complete freedom and control over what they want their players to lock down.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Integrations and Dependencies
Integrations:

  • Softhook: ChatControl
    • SHOULD work with all chat plugins, but has special integration for ChatControl
  • Softhook: Vault
  • Softhook: Factions3
    • SHOULD work with most factions as they use the same/ish integrations, but has special integration for the most superior, Factions3
  • Softhook: PlaceHolderAPI
Dependencies:
  • None, should work on its own
Game Version:
  • Built for: Paper
  • Tested on: 1.21.4
  • Spigot compatible
  • Purpose built for and ONLY tested on: Paper 1.21.4
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Commands and scenarios
  • /lock create <name>
    • /lock create Xantam1
    • Explanation: Creates the Lock Name, which entities can be bound to
    • An illustration of the difference between the Lock Name and Locked Entities is to think of an umbrella. The umbrella is the "overarching", the people under the umbrella are the entities it is being held by.
    • [​IMG]
  • /lock punch OR /lock tool
    • Lock Punch = a single use command; no tool; input once, hit an entity to lock/unlock, command auto-disables
    • Lock Tool = spawns you a special stick tool to use freely and infinitely to lock and unlock entities, use the command again to disable
  • /lock list
    • Will display as per the below;
    • Lock Name | Mode | Use/Focused | Show | Edit | UnlockAll | Delete
    • Lock Name = the name of the lock. This is what you bind entities to
    • Mode = the mode of the lock. Private/Public/Donation
    • Use/Focused = this plugin has a focused mode operation. Once you create a lock, you auto-focus it, so when you lock entities, it remembers which lock you have focused. You can switch the focused lock by clicking the interactive GUI on /lock list, or by typing /lock use <name>
    • Show = this option will show you the mode of the lock, how many parts are bound to the lock (I.E. 1, 5, 10, 1000 etc), which trusted players can access this lock and which trusted factions can access the lock
    • Edit = unused right this moment, future feature
    • UnlockAll = clicking this will unlock every entity bound by this lock name
    • Delete = deletes the lock name, unlocking all locked entities at the same time
  • /lock show
    • {see above /lock list, 6th bullet down}
  • /lock edit mode
    • Modes: Private / Public / Donation
    • Private = just you, only you
    • Public = only you can delete or unlock, but anyone can open the entity and manage the contents, including depositing and withdrawing
    • Donation = acts as a "post box", allows people to drop items in but only the owner can withdraw
    • (ensure the correct lock is selected, then /lock edit mode donation
  • /lock edit name
    • /lock edit name Lock1 Lock2
    • Switches the name from Lock1, into Lock2, all locked entities under Lock1 will follow into Lock2
  • /lock visualise
    • /lock visualise on/off
    • You can have an infinite number of locked entities under a single name, therefore it is important that you can see those in and among a crowd. Using visualise will point them out
  • /lock whitelist
    • Allows you to see what can be locked; configurable in the config.yml
  • /lock admin
    • Bypass mode for staff
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Permissions
Note: No permissions are given by default. You must assign them.

  • xantamlock.use
    • Allows access to the main /lock command (help command) and using /lock open and accessing locks
  • xantamlock.list
    • Allows using /lock list to view owned locks
  • xantamlock.show
    • Allows using /lock show to view lock details
  • xantamlock.create
    • Allows creating new locks with /lock create
  • xantamlock.delete
    • Allows deletion of owned locks with /lock delete
  • xantamlock.edit
    • Allows editing owned locks (mode, name, trust, unlockall, etc.) with /lock edit
  • xantamlock.tool
    • Allows using /lock tool to get the Locking Tool
  • xantamlock.punch
    • Allows using /lock punch to toggle punch-lock mode
  • xantamlock.visualise
    • Allows toggling lock visualization mode with /lock visualise
  • xantamlock.addpart
    • Allows adding entities/blocks to a lock
  • xantamlock.removepart
    • Allows removing entities/blocks from a lock
  • xantamlock.whitelist
    • Allows viewing the whitelist of blocks that can be locked
  • xantamlock.admin
    • Allows enabling/disabling admin bypass mode
  • xantamlock.bypass.access
    • Allows bypassing locked access checks (without enabling admin bypass mode)
  • xantamlock.bypass.edit
    • Allows editing or removing others' locks (without enabling admin bypass mode)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Placeholders
  • %xantamlock_active_name%
    • Name of the focused lock
  • %xantamlock_active_mode%
    • Lock mode (PRIVATE, PUBLIC, etc.)
  • %xantamlock_active_owner%
    • Owner of the focused lock
  • %xantamlock_active_parts%
    • Number of blocks/entities in the lock
  • %xantamlock_active_trusted_players%
    • Comma-separated list of trusted players
  • %xantamlock_active_trusted_factions%
    • List of trusted factions (if using Factions3)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Configuration Breakdown
Section 1:
Code (Text):
chat:

  prefix: "&6[XantamLock]"
Change the colour and the name/branding that will prefix all "Lock" chat displays


Section 2:
Code (Text):
database:

  type: mysql # Options: h2 or mysql

  mysql:

    host: #

    port: # (usually 3306)

    database: #

    username: #

    password: #

# Note: Switching from H2 to MYSQL requires a database migration. This is not supported, as I am a bit rubbish. Good luck!
Use either H2 or MYSQL. Using H2 automatically generates a H2 file, but MYSQL is preferable.


Section 3:
Code (Text):
economy:

  lock-create-cost: 5.0

  add-entity-cost: 1.0

  convert-to-shop-cost: 0.0  # Only used if shop module is installed

  refund:

    lock-delete-refund: 2.0     # Refunded when a lock is deleted (base amount)

    entity-remove-refund: 1.0   # Refunded when removing one entity from a lock (punch or tool)
Speaks for itself. You must have an economy plugin installed, such as EssentialsX or something else.


Section 4:
Code (Text):
visualiser:

  particle: HEART

  interval-ticks: 20

  amount: 4
Allows you to specify the particle you want when visualising locks, the interval ticks and the amount to display.


Section 5:
Code (Text):
lock-protection:

  explosions: true  # Prevent explosions from destroying locked entities

  pistons: true     # Prevent pistons from pushing/pulling locked entities
Speaks for itself.


Section 6:
Code (Text):
# Block types that can be locked

lockables-whitelist:

  # Chests and related containers

  - BARREL

  - BLAST_FURNACE

  - CHEST

  - DISPENSER

etc
You are free to keep adding to this list if you want. Blocks NOT on this list, cannot be locked, it will error on trying.


Section 7:
Note: Factions3 must be installed for this or it won't matter.

Code (Text):
factions:

  allow-lock:

    in-others: false      # true = can lock in OTHER faction land (factions of other players)

    in-wilderness: true   # true = can lock in wilderness

    in-safezone: true     # true = can lock in safezone

    in-warzone: true      # true = can lock in warzone

  allow-donation:

    in-others: true       # true = can use donation locks in OTHER faction land (factions of other players)

    in-wilderness: true   # true = can use donation locks in wilderness

    in-safezone: true     # true = can use donation locks in safezone

    in-warzone: true      # true = can use donation locks in warzone

  allow-public:

    in-others: true       # true = can use public locks in OTHER faction land (factions of other players)

    in-wilderness: true   # true = can use public locks in wilderness

    in-safezone: true     # true = can use public locks in safezone

    in-warzone: true      # true = can use public locks in warzone
Speaks for itself.


Section 8:
Code (Text):
lock-expiry-days: 30  # Number of days before a player's lock parts are expired/unlocked (set to 0 to disable)

auto-save-frequency: 5  # Auto-save frequency in minutes (default is 5 minutes)
Speaks for itself.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Future Plans:
This plugin is just the core of a family, the first of its name (alright, Daenerys!...). I have plans to expand this with additional modular addons.

  • This release is the core module with basic (but advanced) locking functionality
  • There are more planned modules;
    • Shop module
      • Using the /lock edit mode option, convert the lock to a shop
      • Allowing you to add items to the shop to buy/sell
    • Access module
      • Using /lock access (not implemented in core) to add levels of access for other players and/or factions to use your locks
    • Mechanical module
      • Implement features and protections around redstone, droppers, hoppers and so on
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Screenshots (Spoilered)



NOTE: Shop not implemented, yet.
[​IMG]
If the image fails to load: https://builtbybit.com/attachments/1754167748800-png.1012209/?variant=display


Testing and switching between 3 different locks and using them:
[​IMG]

Just one lock:
[​IMG]
If the image fails to load:
1) https://builtbybit.com/attachments/1754167908559-png.1012212/?variant=display
2) https://builtbybit.com/attachments/1754167937736-png.1012213/?variant=display

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Resource Information
Author:
----------
Total Downloads: 15
First Release: Aug 6, 2025
Last Update: Aug 6, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings