Remember the sign-based lock plugin Lockette that is popular for years? LockettePro is a deep remade & rewrite of the original Lockette. It has massive performance enhancement, fixed bugs and completely customizable. This is the updated version for spigot 1.14 and up of the original LockettePro.
- Native Minecraft Version:
- Tested Minecraft Versions:
- Source Code:
- No database. All information required for a lock is recorded on the sign.
- Switch to LockettePro and switch back to Lockette worry-free anytime.
- Absolutely better performance. Performance test comparison below.
- Language files are editable, with UTF-8 support.
- Able to disable "bloat" features easily with no affect to performance.
- Customizable. For instance, you can set lockable for every single block.
*ProtocolLib is required for UUID support.
- (Recommended) ProtocolLib - Download
- Place the plugin in the spigot server plugins folder, Also install ProtocolLib dependency.
- Start the server to generate the config.
- Do config changes if you need to and run command /lock reload to apply the changes.
DO NOT TURN ON FEATURES THAT YOU ARE NOT FAMILIAR WITH BEFORE READING THE PROPER SECTION ON WIKI!
Head to GitHub wiki page for configuration. [config.yml] [lang.yml]
It is currently NOT recommended to use lock expiry feature since it will be changed. Please avoid using it in order to prevent conflicts.
How to Use LockettePro?
For players, just hold a sign in your hand, then right click a chest or any lockable block. If you want to lock a door, you may put a sign on the block above or below the door too. You may also SHIFT+RIGHT CLICK the block to prevent it get automatically locked, or you can write [Private] text manually on signs as well.
Even more information, please see Wiki.Share the chest with another user:
After claiming the chest, you can add another user on the sign. First, right click the sign, then enter /lock 3 <user name>
Share the chest with everyone:
Same as above, you just use [Everyone] (with brackets) in the username.
Add another sign:
If one sign is not enough, you may hold a sign and right click on another surface. It will snap on the surface and become a [More User] sign automatically. Placing the sign while holding SHIFT will bypass the sign creation.
Timer with doors:
I have no idea why Lockette is doing this, but I am adding this feature anyways. If you add a line [timer:X] (with brackets, and X means an integer) to a door lock, the door will automatically close after X seconds.
Commands and Permissions
Main command is /lock. Aliases contains /lockit, /lockette and /lockettepro.
* More info please see the wiki page.
- All players have the permission to lock a chest and edit a chest by default.
- In order to stay consistent with original Lockette, Towny server players need lockettepro.towny.wilderness in order to lock chests in the wilds.
- Edit a sign: /lock <line number> <player>
- Reload configuration: /lock reload, requires permission lockettepro.reload
- Admin break lock permission: lockettepro.admin.break
- Admin use block (snoop chests) permission: lockettepro.admin.use
- Admin override placing interference blocks permission: lockettepro.admin.interfere
- Admin edit any sign permission: lockettepro.admin.edit
Supported Plugins & Special Lock Line Features
WorldGuard & Residence:
If a player does not have the "break" permission to a block due to WorldGuard or Residence, then he cannot lock it.
If a sign has a user line formatted "[SomeName]", this means any player in town or nation "SomeName" will have access to this chest.
Players are not allowed to lock a chest in the wilderness unless he has permission lockettepro.towny.wilds
Factions (from MassiveCraft):
If a sign has a user line formatted "[FactionName]", this means any player in faction "FactionName" will have access to this chest.
If a sign has a user line formatted "[clantag]", this means any player in that clan will have access to this chest.
If a sign has a [GroupName] in user line, anyone in that group could access it. The group is taken according to Vault.
If a sign has a [TeamName] in user line, anyone in that team could access it. The team is Bukkit's scoreboard.
Some plugins are born to compatible with Lockette/LockettePro thanks to Bukkit's event priority mechanics. Players are not able to lock a chest/block that has already protected by another plugin. Known compatible plugin includes ChestShop.
Please do not leave reviews with issues reports, use the Discussion page or github to report issues.
If you like this resource and want to say thank you with a donation please use this PayPal button. Thanks!
This plugin is updated by CraftersLand Minecraft Community.
Feel free to check us out at: www.craftersland.net
LockettePro - For 1.14/1.15/1.16 2.10.8
[1.14 - 1.16.4] High performance sign-based lock plugin, highly customizable
Hey, nice plugin but no idea why I got this error:
Could not pass event PlayerInteractEvent to LockettePro v2.10.5
at me.crafter.mc.lockettepro.LocketteProAPI.isChest(LocketteProAPI.java:315) ~[?:?]
at me.crafter.mc.lockettepro.BlockPlayerListener.onAttemptInteractLockedBlocks(BlockPlayerListener.java:246) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor550.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.2.jar:git-Paper-174]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.2.jar:git-Paper-174]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.2.jar:git-Paper-174]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.2.jar:git-Paper-174]
at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:502) ~[patched_1.16.2.jar:git-Paper-174]
at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:469) ~[patched_1.16.2.jar:git-Paper-174]
at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:465) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1941) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.PacketPlayInArmAnimation.a(SourceFile:31) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.PacketPlayInArmAnimation.a(SourceFile:9) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1135) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:1089) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:1003) ~[patched_1.16.2.jar:git-Paper-174]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-174]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]