LockSecurity [NOW PREMIUM] 3.0.0

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

  1. Choco
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.16
    Source Code:
    https://github.com/2008Choco/LockSecurity
    [!] GOING PREMIUM [!]

    LockSecurity has gone premium! Well... sort of... As of July 9th, 2020, LockSecurity will receive its final free update. Any future releases will be made under premium status which is available for purchase here. I would greatly appreciate the support as this is my first premium resource, I have worked hard to ensure this version has next to no bugs. This final release matches the initial release on the premium version of LockSecurity for those that have not updated beyond 1.12.2. Please read the release notes!


    [!] IMPORTANT [!]

    This plugin DOES NOT support versions older than Spigot 1.16.1 and does not support CraftBukkit servers. You MUST be running Spigot 1.16.1 or higher in order to run this plugin. Please do not download if you are running any version older than this. I will never support anything older no matter how many times you ask. Period.


    LockSecurity_Header.png

    LockSecurity, the easiest and most intuitive container protection plugin to complete that RPG feel for your server.
    • Locking a configurable set of blocks using craftable keys
    • Private blocks only accessible with the key used to lock them
    • Support for multi-blocks such as double chests and doors
    • Key merging, duplicating and resetting to condense keys for multiple blocks
    • Changeable key flags including "break on use", "prevent merging" and more
    • Extensive set of commands, permission nodes and configuration options
    • A plethora of administrative capabilities to better control your server
    • Future-proof code base virtually guaranteed to work on versions of Spigot beyond 1.16.1 without an update
    For a full set of in-depth features provided by LockSecurity, please see the official wiki page on GitHub! If you believe anything is missing, I welcome you to contribute to the wiki and update any missing or outdated information.

    [​IMG]
    [​IMG]

    LockSecurity is proudly open source and welcomes contributions from anybody so long as you're familiar with the Bukkit and Spigot API! Source may be found on GitHub


    LockSecurity_Commands.png

    All commands are accompanied by intelligent command completion and permission nodes to prevent clients from seeing commands you don't want them to see! This section briefly covers the available commands in LockSecurity. For a more detailed look into what each command does, please see the official wiki.

    /locksecurity (Alias... /ls)
    View a basic overview of the plugin, its author and version information, as well as administrative functionality.
    Arguments:
    - /locksecurity reload - Reload the plugin's configuration file and apply any changes​

    /editkey (Aliases... /editkeys, /keyedit and /ek)
    Edit the flags of the smithed key in the player's hand (for more on key flags, see the official wiki).
    Arguments:
    - /editkey get - Get a list of all flags in the player's hand
    - /editkey get <flag> - Get the value of the specified flag on the key in the player's hand
    - /editkey set <flag> <true|false> - Set the value of the specified flag on the key in the player's hand​

    /givekey (Alias... /givekeys)
    Give an unsmithed key to yourself or another player.
    Arguments:
    - /givekey [player] [amount] - Give the specified player the given amount of unsmithed keys. Both arguments are optional​

    /ignorelocks (Aliases... /ignorelock and /il)
    Enable the ignore locks mode! For more information on ignoring locks, see the official wiki.​

    /locklist (Aliases... /lockslist and /ll)
    Get a list of all locks owned by yourself or another player.
    Arguments:
    - /locklist [player] - Get a list of locks owned by the specified player​

    /locknotify (Aliases... /locknotifications and /ln)
    Enable the lock notification mode! For more information on lock notifications, see the official wiki.​

    /refreshkeys (Aliases... /refreshkey, /keyrefresh, /updatekey, /updatekeys and /keyupdate)
    Refresh all keys in the player's inventory. This will remove any blocks that no longer exist in the world and convert any keys into unsmithed keys if they are no longer associated with a locked block. Additionally, this will also update the key if flags have been added or removed but the lore has not yet updated.​


    LockSecurity_Permission_Nodes.png

    LockSecurity provides server owners with an extensive set of permission nodes to better control what players should be allowed to do. This section briefly covers all available permission nodes in LockSecurity. For a more detailed description of what each permission node does, see the official wiki.

    locksecurity.command.* - Grant access to all commands in LockSecurity
    locksecurity.command.editkey - Grant access to the /editkey command
    locksecurity.command.givekey - Grant access to the /givekey command
    locksecurity.command.ignorelocks - Grant access to the /ignorelocks command
    locksecurity.command.locklist - Grant access to the /locklist command
    locksecurity.command.locklist.other - Grant access to the /locklist [player] subcommand
    locksecurity.command.locknotify - Grant access to the /locknotify command
    locksecurity.command.refreshkeys - Grant access to the /refreshkeys command
    locksecurity.command.reload - Grant access to the /locksecurity reload subcommand

    locksecurity.block.* - Grant access to various block-related functionality. This is a default permission node
    locksecurity.block.clonekey - Allow the owner of a locked block to create a smithed key to unlock it by right clicking the block
    locksecurity.block.inspect - Allow a player to view information about a block by sneak right clicking with an empty hand
    locksecurity.block.lock - Allow a player to lock a block using an unsmithed key
    locksecurity.block.ignorelimit - Ignore the block limit in every world
    locksecurity.block.nickname - Allow a player to nickname a locked block using a nametag

    locksecurity.crafting.* - Grant access to various crafting-related functionality. This is a default permission node
    locksecurity.crafting.duplicate - Allow a player to duplicate a smithed key in a crafting table
    locksecurity.crafting.merge - Allow a player to merge a smithed key in a crafting table
    locksecurity.crafting.reset - Allow a player to reset a smithed key in a crafting table
    locksecurity.crafting.unsmithed - Allow a player to craft an unsmithed key in a crafting table


    LockSecurity_Configuration.png

    A detailed and ever-expanding set of configuration options are provided by LockSecurity. This section will briefly cover the default options in LockSecurity. For more information on the configuration file and all available options, see the official wiki. The default configuration file is as follows:
    Code (YAML):
    Metrics: true # Whether or not to send anonymous statistics
    PerformUpdateChecks
    : true # Whether or not to check for updates

    # Key-related configuration options
    Keys
    :
      Unsmithed
    :
       ModelData
    : 1 # The resource pack model data for unsmithed keys
       RecipeYield
    : 1 # The amount of keys to yield in the crafting recipe
      Smithed
    :
       ModelData
    : 2 # The resource pack model data for smithed keys
      AllowKeyDuplication
    : true # Whether or not to allow key duplication
      AllowKeyMerging
    : true # Whether or not to allow key merging
      AllowKeyResetting
    : true # Whether or not to allow key resetting

    # A key-value pair of world names to the maximum amount of locks
    # You may enter any world here. If set to -1, no limit is set
    # The default value (if a world is not found in this section) is -1
    MaxLocks
    :
      world
    : -1
      world_nether
    : 0
      world_the_end
    : 0

    # A list of all blocks lockable by players using unsmithed keys
    LockableBlocks
    :
    - 'minecraft:chest'
    - 'minecraft:trapped_chest'
    - 'minecraft:acacia_trapdoor'
    - 'minecraft:acacia_door'
    - 'minecraft:acacia_fence_gate'
    - 'minecraft:birch_trapdoor'
    - 'minecraft:birch_door'
    - 'minecraft:birch_fence_gate'
    - 'minecraft:dark_oak_trapdoor'
    - 'minecraft:dark_oak_door'
    - 'minecraft:dark_oak_fence_gate'
    - 'minecraft:jungle_trapdoor'
    - 'minecraft:jungle_door'
    - 'minecraft:jungle_fence_gate'
    - 'minecraft:oak_trapdoor'
    - 'minecraft:oak_door'
    - 'minecraft:oak_fence_gate'
    - 'minecraft:spruce_trapdoor'
    - 'minecraft:spruce_door'
    - 'minecraft:spruce_fence_gate'

    LockSecurity_Resource_Pack.png

    LockSecurity comes pre-packaged with a resource pack to give your keys a bit more of a realistic feel! This resource pack is obviously optional but it's highly encouraged to use this whether or not you already have a server resource pack installed. Upon first run of LockSecurity, you will find the resource pack archive under the plugins/LockSecurity/resourcePack directory.

    [​IMG]


    LockSecurity_Open_Source.png

    LockSecurity is proudly open source and welcomes contributions from anybody so long as you're familiar with the Bukkit and Spigot API! Source may be found on GitHub! There will never be any malware or hidden code from you or your server and I encourage direct code modifications. I would, however, appreciate if any changes you make are directed upstream so other users may also benefit!


    LockSecurity_API.png

    While LockSecurity is now a premium plugin, it is understood that developers may want to interact with the plugin without having to purchase the resource on SpigotMC. As such, LockSecurity provides developers with an API free of charge as a separate artifact without having to distribute the plugin! Additionally, this artifact is hosted on a Maven repository to be more easy and convenient for developers.

    Depending with Maven
    Code (XML):
    <project>
      ...
      <repositories>
       <id>jitpack</id>
       <url>https://jitpack.io/</url>
      </repositories>
      ...
      <dependencies>
       <dependency>
         <groupId>com.github.2008Choco</groupId>
         <artifactId>LockSecurity</artifactId>
         <version>API-VERSION-HERE</version>
         <scope>provided</scope>
       </dependency>
      </dependencies>
      ...
    </project>
    Depending with Gradle
    Code (Groovy):
    repositories {
     jcenter()
     maven { url "https://jitpack.io" }
    }

    dependencies {
     implementation 'com.github.2008Choco:LockSecurity:API-VERSION-HERE'
    }

    [!] CLOSING REMARKS [!]

    Please be aware that when downloading this plugin, you acknowledge that time and effort went into the development of this plugin. While yes the plugin is open sourced and yes you may compile it yourself, it would be much appreciated that you purchase this resource to receive future updates. If you have any concerns with the plugin, do not hesitate to contact me on my official support Discord and I will answer whenever available!

    Additionally, I also happily welcome contributions to the API if you believe it is necessary for development purposes, or to the plugin if you wish to see more features that you believe you may add yourself! Thank you and enjoy!

Recent Updates

  1. The Final Free Update
  2. Complete Rewrite + 1.12 Support
  3. General Fixes

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. Choco
      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. Choco
      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. Choco
      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. Choco
      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. Choco
      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. Choco
      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. Choco
      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. Choco
      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. Choco
      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