LockSecurity 2.0.0

Locking containers with keys so only you and your friends can have access to them!

  1. 2008Choco
    Tested Minecraft Versions:
    • 1.12
    Source Code:
    https://github.com/2008Choco/LockSecurity
    NOTE: Please see this post on my plans for LockSecurity 1.13

    [​IMG]

    LockSecurity is an RPG-friendly plugin that gives users the ability to lock their doors, chests or any other container using a key. Locked objects are inaccessible, indestructible and effectively off-limits for anyone without the key that the object was locked with. Want someone else to be able to access your locked blocks? These keys can easily be duplicated, much like a book can in a crafting table, and distributed among friends or anyone to which you wish to grant access. Want to get rid of a key you're not using anymore? Put it in the crafting table and get yourself back a new key you can use to lock another block.

    On top of being incredibly easy to use, LockSecurity brings a number of configuration options to make this plugin your own. From what blocks are lockable to maximum locks per world to aesthetics and accessibility, the plugin can be configured to meet your expectations. Even messages are configurable through language files. Additionally, administrative tools such as notifications when blocks are locked, ignoring locks upon command, and forcibly unlocking the blocks of others, all with individual permission nodes.

    [​IMG]

    LockSecurity comes with a large variety of commands that assist administrators and players alike. Each command has its respective permission node (see Permissions section) and command feedback if unsuccessful.

    /locksecurity [alias: "ls"]:
    Description: The central command for LockSecurity with basic information for the plugin

    Sub-commands:
    <reload> - Reload the plugin's configuration file and load everything back into memory
    <version> - Retrieve version information of the LockSecurity currently installed on your server

    /givekey [alias: "givekeys"]:

    Description: Give a variable amount of unsmithed key(s) to either yourself or another player

    Arguments:

    [player] - The player to give the keys to
    [count] - The amount of keys to give to the player
    Examples:
    - /givekey
    - /givekey 2008Choco 3
    - /givekey SomeOtherPlayer
    /ignorelocks [aliases: "ignorelock", "il"]:
    Description: Ignore all locks on the server and access them as though a key is in hand
    /locklist: [aliases: "lockslist", "locks"]:
    Description: Get a list of all blocks that you or another player owns

    Arguments:

    [player] - The player who's locked blocks you want to view

    /forgekey:
    Description: Create a new forged key with the specified ID

    Arguments:

    <id> - The ID of the key to create. Can be a list of IDs
    Examples:
    - /forgekey 10
    - /forgekey 10,13,4
    /lockinspect [aliases: "inspectlock", "inspectlocks"]:
    Description: Toggles a mode to inspect and gather information about a locked block (right click to use), or gather information about a specific block

    Arguments:

    [id] - The ID of the locked block to inspect

    /unlock:
    Description: Toggle a mode to unlock a block (right click to unlock), or unlock a specific block

    Arguments:

    [id] - The ID of the locked block to unlock

    /transferlock:
    Description: Toggle a mode to transfer a locked block to another player

    Arguments:

    <player> - The name of the (online) player to transfer locked blocks to

    /locknotify:
    Description: Toggle whether messages are displayed or not when a player locks a block

    [​IMG]

    locks.reload:
    Description: Allow access to the "/locksecurity reload" sub-command
    Default: Operators have this permission by default

    locks.craft:
    Description: Allow the ability to craft an unsmithed key in the crafting inventory
    Default: All players have this permission by default

    locks.lock:
    Description: Allow the ability to lock a block with an unsmithed key
    Default: All players have this permission by default

    locks.givekey:
    Description: Allow access to the /givekey command and all its subcommands
    Default: Operators have this permission by default

    locks.ignorelocks:
    Description: Allow access to the /ignorelocks command and all its subcommands
    Default: Operators have this permission by default
    locks.locklist:
    Description: Allow access to the /locklist command and all its subcommands
    Default: All players have this permission by default

    locks.forgekey:
    Description: Allow access to the /forgekey command and all its subcommands
    Default: Operators have this permission by default
    locks.lockinspect:
    Description: Allow access to the /lockinspect command and all its subcommands
    Default: Operators have this permission by default
    locks.unlock.*:
    Description: Allow access to the /unlock command
    Default: All players have this permission by default
    Children:

    locks.unlock.id: Allow access to the "/unlock <id>" subcommand (operators have this permission by default)
    locks.unlock.self: Allow access to unlock your own blocks with the /unlock command
    locks.unlock.admin: Allow the ability to unlock blocks owned by other players with the unlock mode (operators have this permission by default)

    locks.transferlock:
    Description: Allow access to the /transferlock command and all its subcommands
    Default: Operators have this permission by default

    locks.locknotify:
    Description: Allow access to the /locknotify command
    Default: Operators have this permission by default


    [​IMG]

    Assuming players do not have access to give themselves infinite unsmithed keys using the /givekey command, a crafting recipe has been added to let players craft keys for themselves. The following recipe is one of eight possible recipes as it is shapeless such that the ingredients are in a straight or diagonal line. It may be rotated in any orientation and an unsmithed key will be crafted.

    [​IMG]

    [​IMG]

    Code (Text):
    Locale: en_CA
    MetricsEnabled: true
    RecipeYields: 1
    DataSaveIntervalTicks: 6000

    MaximumLocks:
      YOUR_WORLD: -1

    Griefing:
      PreventLockedExplosions: true
      IgnorelocksCanBreakLocks: true
      OwnerRequiresKey: true

    Aesthetics:
      DisplayLockedSmokeParticle: true

    LockableBlocks:
    - CHEST
    - TRAPPED_CHEST
    - TRAP_DOOR
    - FURNACE
    - DISPENSER
    - DROPPER
    - HOPPER
    - WOODEN_DOOR
    - ACACIA_DOOR
    - BIRCH_DOOR
    - DARK_OAK_DOOR
    - JUNGLE_DOOR
    - SPRUCE_DOOR
    - FENCE_GATE
    - ANVIL
    (Further description of the configuration file will be provided at a later date)

    [​IMG]

    As of LockSecurity 1.5.0, an API was created to allow developers to create add-ons. This API is fully documented and Javadocs may be found here. If you've created an add-on for LockSecurity, feel free to send me a private message with a link to the resource and I'd be more than happy to acknowledge it and contribute if possible.

    Of course, LockSecurity is happily open sourced on GitHub available for everyone to clone, fork, create tickets and contribute to. The repository may be found at the following link:
    https://www.github.com/2008Choco/LockSecurity

    I have created an add-on for LockSecurity to show the true power of the API titled "LS-ChestCollector". Using locked chests, you can create wireless collection systems to collect the items you specify in the command. Upon picking up the specified items, if there is room, items will be automatically transferred into the chest from your inventory. If you're interested in seeing the plugin, it's available on BukkitDev. Source may be found on LockSecurity's GitHub repository.


    [​IMG]
    This resource is brought to you free of charge without any obligation to pay anything! I love to provide free resources such that people are enjoying it on their servers. Unfortunately, not everything in life is free and I will eventually need some monetary support of some kind. If you enjoy this project and what it provides to your server, please do consider donating as a little thank you for my hard work. I spent countless hours working on this project and all of it is provided without asking for anything.

    Donating is not a requirement, and I do not expect anyone to donate. If you so chose to donate out of your own good will, I greatly appreciate the support, and I hope that you enjoy this resource as much as I do developing it! Thank you!
    [​IMG]

Recent Reviews

  1. Countryrose12
    Countryrose12
    5/5,
    Version: 2.0.0
    Great Plugin my good Sir :). Been waiting for this to update to use. Is great for servers all servers and is friendly user use.
    1. 2008Choco
      Author's Response
      Thanks! I'm sorry you had to wait so long! I've been so busy with other projects and school. I appreciate the wait, though. I hope you enjoy it! Let me know if you have any issues at all and I'll resolve them as soon as possible
  2. Vreya
    Vreya
    5/5,
    Version: 1.8.2
    I love the idea!!!!!!

    Too bad it's not working on Spigot 1.12..................
    1. 2008Choco
      Author's Response
      I'm dying to update this, and it's actually almost done. It's just been sitting on the back-burner due to other projects taking precedence. This will be completed by the end of this summer!
  3. darkshadow22mc
    darkshadow22mc
    5/5,
    Version: 1.8.2
    It's fine! I know you by the Spigot Development Forum, and you are a good developer. The only thing I would change is the possibility of putting the key inside the chest. On the PlayerInteractEvent make sure he can't put the key into the respective chest so the chest will be always removable.
    1. 2008Choco
      Author's Response
      I've been working on a bit of a rewrite for this plugin for a little while. Though I've been quite busy with other tasks to actually complete it. Soon enough I will, and I'll be sure to include this change.

      Glad you enjoy the plugin, and thank you for the nice compliment ^-^
  4. averythomas
    averythomas
    5/5,
    Version: 1.8.2
    Finally nobody can read my secret diaries that I store in chests and judge me, Thank you - 2008Choco!
  5. ilturco
    ilturco
    5/5,
    Version: 1.8.2
    Great plugin, the best of the kind. 100% Customizable, easy to configure and to use. You can integrate it in a shop and adds tons of fun! 2008Choco is a smart and gentle guy. Thanks for your job.
    1. 2008Choco
      Author's Response
      Awwww thank you very much! Glad you enjoy it! <3
  6. FlOppy95
    FlOppy95
    5/5,
    Version: 1.8.2
    Awesome plugin, the dev is really nice, and listen to what you have to say, and correct the bugs, really quick, a great thank you to him. And also this kind of plugins, is almost inexistant, which is great to have this one, updated, and bug fixed.
    1. 2008Choco
      Author's Response
      I was more than happy to work out issues with you :D
      I'm glad you enjoy the plugin! I appreciate the review! Let me know if you encounter any more issues
  7. Dell
    Dell
    5/5,
    Version: 1.7.1
    The idea: to add a lockpick with which players could break open the closed chests, doors, etc. Breaking happens only when chest owner playing on the server. Nice function for roleplay game.
    1. 2008Choco
      Author's Response
      This lockpick was already planned, I just had no motivation to make it. I may consider making this in the future though ^-^

      Glad you enjoy the plugin! Thank you!
  8. Orjy
    Orjy
    5/5,
    Version: 1.4.0
    Great update, thank you so much for him. Not enough bunch of keys, and an alternative method for opening chest without a key. I apologize for any errors, I used the translator.
    1. 2008Choco
      Author's Response
      There is a configuration option entitled, "OwnerRequiresKey". If set to false, the owner of the block does not need to open the block with a key.

      I also plan on creating a configuration option entitled, "RequiresKeyInHand", which if set to false, will only require you to have the key in your inventory.
  9. nsk70125
    nsk70125
    5/5,
    Version: 1.3.3
    Cool plug, but not enough craft to duplicate keys.Please add this function, it is extremely necessary.
    1. 2008Choco
      Author's Response
      It's really funny you mention the duplication of locked keys.
      I just finished coding this for version 1.4.0 this morning. I plan on releasing it sometime in the next couple of days ^-^ Few more features I wanted to add into this.

      I also added the combination of KeyID's in 1.4.0, as that's been a long awaited feature too. Look forward to 1.4.0 :D
  10. AbsintoJ
    AbsintoJ
    5/5,
    Version: 1.2.2
    1. 2008Choco
      Author's Response
      Today is like, the best day ever. Holy crap. Dude, I've received a video from you and another person on my AlchemicalArrows project.

      Thank you so much ^-^ I'll put it right up on the resource post