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
This can read the default minecraft language files, but in order to
translate the messages, you need to add the message section from the
en_US.lang.
Also, spawn eggs will work now, the title of music discs will be
displayed in the info sections and "tipped arrow effect" is now named
"potion effect" and is displayed also if the product is a potion,
splashed potion or a lingering potion (and of course tipped arrows).
The message configuration is no longer found in the config.yml file, but
has gone to the .lang file, so you need to reconfigure every message!
As the Jsoup library is no longer needed, the filesize of the final jar
shrunk quite a bit.
Maybe there are some more changes, which I already forgot.
Well, I had to change quite a bit and hopefully this fixes the issue,
that shop items can be collected and that shops aren't saved or reloaded
correctly.
Well, at least I hope I've improved that...
This should also fix the bug (what initially was my goal), where the
item didn't get removed from the player's inventory after selling it.
The method to get data of the database has changed completely so the
uses also had to be changed. The IDE also did some code reformatting,
but these are just very small changes.
I don't see any sense, why infinite shops should exist. They are
basically the same as admin shops, except that money gets withdrawn from
the vendor for something he doesn't even get or money gets deposited to
the vendor for something that he sold, but didn't even have.
Also the possibility to convert the database column 'infinite' to
'shoptype' has been removed, so server owners, who update from a version
below 1.7.1 first have to download a version below 1.8.0 to let the
resource convert the database columns.
They work a bit different now. They are still only shown on startup, on
join or when a player checks for updates, but also if no update is
available. Also the player needs the permission "shopchest.broadcast" in
order to get the message.
Admin Shops are basically the same as infinite shops, but the vendor
won't get money and won't get a message if someone bought from or sold
to it.
As I rewrote the buy and sell methods, I also fixed a bug that you had
to pay even though you didn't have enough space in your inventory and
that the vendor had to pay even though his shop's inventory was full
- Fixed Update Checker after reload
- Fixed Update Checker on Minecraft 1.9
- Hoppers shouldn't suck items out of a shop's chest (configurable)
- Hoppers shouldn't pickup a shop's floating item
- Shops shouldn't get destroyed by an explosion (configurable)