LockSecurity 1.8.1.2

Details

  • Filename
    LockSecurity.jar
  • Uploaded by
  • Uploaded
    May 24, 2016
  • Size
    81.73 KB
  • Downloads
    357
  • MD5
    711ec229cc07660603c7c5611de2894d

Supported Bukkit Versions

  • 1.9

Changelog

LS-ChestCollector

LS-ChestCollector has officially been released to the public! The very first add-on for the LockSecurity plugin, which allows for the creation of wireless collection chests. If you love my LockSecurity plugin, you may enjoy LS-ChestCollector! Check it out by -= Clicking Here =-

Changelog

Version 1.8.1.2

  • Fixed NullPointerException if Vault is installed but an economy plugin is not
  • Condensed and organized the lock interaction code a bit more to make it more readable
  • Added Anvils to the list of default lockable blocks (This can be removed in the config)

Version 1.8.1.1

  • Attempt to fix occasional asynchronous task errors
  • Fixed potential lag when loading data on startup

Version 1.8.1

  • Fixed LockInspect messages being swapped when toggling modes (Confusing
  • Fixed being able to open blocks if in LockInspect mode
  • Fixed LockInspect not displaying locked block information
  • Fixed being able to pull items from locked inventories out of hoppers

Version 1.8.0

  • Completely rewritten the infrastructure of LockSecurity. Much more complex, yet much more simple at the same time
  • Removed DarkBlade's ParticleLib and instead used 1.9 methods
  • Removed old LockedBlockAccessor class and replaced it with LocalizedDataHandler class
  • Rewrote the whole LockSecurity API (Will modify the Wiki page over the course of the next couple of days to reflect the changes)
  • Completely fixed all lag/latency issues due to direct database calls. All information is now stored locally, and saved every 5 minutes
  • Added new configuration option to determine the interval of time (in minutes) between when the local data will save to the database
  • Added "/locksecurity forcesave" subcommand to force a local data save
  • Changed the way "LockSecurityModes" are handled. You can now be in more than one mode at once (Modes being unlock mode, transfer mode, etc.)
  • Fixed not being able to lock blocks if there was more than one unsmithed key in an item stack (There can now be multiple keys in a stack, but only one will be used)
  • Removed unnecessary ArrayLists that were just taking up memory
  • Removed many many many methods that were inefficient and pointless
  • Removed annoying messages when retrieving an instance of LockSecurity (API)
  • Cleaned up code for most classes
  • Added javadoc comments to methods that may not have previously had javadocs
  • Deprecated the LockState API (Replaced by methods in LocalizedDataHandler. See the java doc for references)
  • Added an object to represent locked blocks where all information is stored (Key id, lock id, owner, and original block)
  • Reorganized a lot of classes in the API
  • Added "ADMIN_NOTIFY" in LSMode enum to represent the admin notification mode
  • Modified some custom events to reflect the new LockedBlock object changes
  • Made a couple of commands more efficient than prior
  • Removed listeners when players leave the game (Unnecessary with the LSMode API overhaul)
  • Made keys more reliable when it comes to using either hand (You're able to lock blocks and access them, even if the key is in your offhand)
  • Moved many methods into respective classes (Some methods were in classes that made no sense)
  • |-> Database related methods were moved into an SQLite class
  • |-> Key related methods were moved into the Keys class
  • Fixed a few issues present in 1.7.2

With this version, comes an update to LSChestCollector, as the API has been completely changed. Any other addons for LockSecurity will have to update their code as well, otherwise they will not work for version 1.8.0 of LockSecurity.

I've worked a good week or so on this update. Spent a lot of my time working on this project over any other project, so I'm quite proud of it. I hope you appreciate the work I've put into this, because it was definitely needed. There were tons of database latency issues persistent in previous versions, ever since database support was implemented. I highly suggest updating to this version as soon as possible. It is stable, and each feature has been tested extensively before release. No errors have appeared in my testing, but if I have missed anything, please do tell me as soon as possible. That's information I need. Enjoy this huge update, and enjoy Minecraft 1.9! :D

Version 1.7.2

  • Added 1.9 support

Not a very large changelog. I've been quite busy with AlchemicalArrows (As some of you may know.). Please be aware that this plugin still needs a bit more work to cooperate with 1.9. Locking blocks requires keys to be in the main hand, for example

Version 1.7.1

  • Added a new notification for administrators when players lock a block
  • Added a new /locknotify command for administrators to toggle whether these messages display or not (default, enabled on login)
  • |-> These messages will display: The player who locked it, type of block, x, y, z, world, lock id, and key id (configurable in messages.yml)
  • |-> Permission required to enter / leave locknotify mode: locks.locknotify
  • Renamed a specific class to represent what it does more accurately
  • Made preparations for a future conversion to LSPlayer's (developer heads-up: LSMode will be removed in 1.8.0)
  • Added Vault support to allow for a cost to lock block, and a return value for unlocking a block
  • |-> Added 4 new configuration options and a new configuration section to determine the cost and reward of locks

Version 1.7.0

  • ADDED SQLITE DATABASE SUPPORT!!!
  • REMOVED locked.yml functionality
  • |-> There is an automatic conversion method to convert all data in your locked.yml into the database. Please watch your server console to make sure all data is successfully transfered into the database. If something goes wrong, a message will display, and tell you what to do from there. PLEASE follow the warning instructions if they are displayed
  • Removed the LockedStorageHandler class
  • Added RecipeYields configuration option to determine how many Unsmithed keys the recipe creates
  • Removed lockedLockIDs and lockedKeyIDs HashMaps (unused in this update)
  • Changed absolute variables for recipes to direct recipes in the onEnable()
  • Removed locked.yml HashMap data loading code block
  • Added a conversion block of code to automatically transfer all information from the locked.yml into the new database
  • Removed some logging information from onDisable() method
  • Removed formatLocation(Location) method in main class
  • Removed setNextKeyID(int) and setNextLockID() methods
  • Added database-related methods in main class (openConnection(), closeConnection(), createStatement(), closeStatement(), executeStatement(), queryDatabase(), closeResultSet())
  • Removed @SuppressWarnings for deprecation (no more deprecated methods) for most classes
  • Removed references to LockStorageHandler class in most classes
  • Removed unnecessary declaration of variables, and used direct Location variable for parameters instead
  • Removed reload for locked.yml (fixes a NullPointerException)
  • Moved the removal of key and play sound into the actual moment a block is interacted with (Fixes potential NullPointerException in API)
  • Moved removeCurrentItem() method from LockedBlockAccessor into InteractWithBlock class
  • Fixed using multiple ID's and queries for a single ID (more efficient locking of blocks)
  • LockedBlockAccessor API changes:
  • |-> Added getLocationFromLockID(int) method to get a specific location from the specified id
  • |-> Added insertDatabaseInfo(int, String, String, String, Location) method to insert information into the database
  • |-> Added insertDatabaseInfo(int, int, String, String, String, Location) method to insert information into the database with a specific LockID
  • |-> Added isInDatabase(int) method to determine whether the id is in the database or not
  • |-> Removed addLockedYMLInformation() method (no longer to be used)
  • |-> Modified MANY LockedBlockAccessor methods to reference the database rather than the locked.yml

Once updated, you may either do one of the following things with the locked.yml:

  • Delete it
  • Take a backup of it just in case