This should slightly improve performances, especially with a lot of shops.
Now shops are updated only on block changes and not every move event.
It also uses distanceSquared instead of distance to avoid sqrt operations.
Stack traces will now be printed in the debug log (if enabled) and in the console, there will only be displayed an error message without the stack trace
BlockExplodeEvent class is not found in v1.8_R1, and if a class is not found in a listener, the whole listener with all its event won't get registered.
All shop items are now spawned with packets and reflection client-side, so probably duplicated items are history (finally). This also allowed me to remove the ClearLag and LWC dependency, as ClearLag can't remove client-side items and LWC's Magnet Sucker can't suck them inside a chest. I also changed a bit in the classes of the nms package, so all required classes have to be found before attempting to do anything.
Fixes#11 and fixes#4
If another plugin cancelled the PlayerInteractEvent before ShopChest, the player is not permitted to create a shop on the clicked chest. The dependency of 'Lockette' is no longer needed. It might occur that a plugin, which is not used for protections, cancels the PlayerInteractEvent so a shop cannot be created.
This closes#14
To automatically reconnect to the MySQL server, ShopChest is now using a much simpler way: Just added the attribute "autoReconnect=true" to the end of the link, instead of using a configurable value of reconnect attempts.
An exception will now be thrown, when there's no space above the chest (only if items should be shown).
Holograms now won't be shown to the player if the shop has no chest, but the shop will get removed.