Commit Graph

696 Commits

Author SHA1 Message Date
Phoenix616
c538f4a3dc Remove all usage of old MaterialData and other outdated code
This should make it more future-proof and possibly even work with 1.14 already.
2019-04-30 21:31:24 +01:00
Phoenix616
6773f89221 Improve internal precision of calculations (Fixes #221) 2019-04-30 16:02:01 +01:00
Phoenix616
8cf9934a32 Properly set scale and rounding mode for divisions (Fixes #220) 2019-04-28 15:41:20 +01:00
Phoenix616
f0bc277566 Move to BigDecimal in all events and use the CurrencyTransferEvent
Also add tax bypass permissions (#204, ChestShop.notax.buy/sell). When buying with that permission the buyer does not have to pay the tax (the seller will still get the reduced amount), when selling the seller will get the full amount instead of one lowered by the tax.
The permissions of the shop owner play no role due to there not being a good way of checking offline player permissions and it being a bit non-obvious for the buying/selling player if a shop would be with or without tax. This way all that gets changed is the amount the player pays/receives and not the shop owner (and the player should know their permissions/rank already)

The transfer event was necessary in order to correctly resolve who triggered the transaction. Economy adapters are now required to implement a listener for each of the events. It's also recommended that economy adapters that support transfers directly use that instead of passing it through subtract and add with the processTransfer method.
2019-04-25 18:44:22 +01:00
Phoenix616
6e78fea880 Update the container on item transfers (Fixes #217)
This was removed when the item transfer code changed which stopped comparators from working. This shouldn't be a true block update that observers can detect but only a notification for surrounding blocks that the content might have changed.
2019-04-23 18:00:21 +01:00
Phoenix616
eb7abda01f Add missing item permissions and remove duplicate ones (Fixes #215) 2019-04-08 15:25:56 +01:00
Phoenix616
28fb5cbeff Fix message amount display error when buying from admin shops
Also fix that the stock items were modified when buying from the admin shop
2019-04-07 13:48:16 +01:00
Phoenix616
53ae07b779 Fix error that prevented selling to admin shops 2019-04-07 13:47:18 +01:00
Phoenix616
8a09e91e62 Better catch for potential exceptions when de-serializing items
For some reason items might corrupt in the encoding and decoding process leading to invalid YAML strings. There's also another issue of the server not being able to load certain old itemstacks. (seems to be especially an issue with old entity types)
2019-04-06 18:39:49 +01:00
Phoenix616
52492f8469 Support registering of economy providers after the plugin loaded 2019-04-06 16:24:20 +01:00
Phoenix616
5a99180aab Fix Admin Shops by adding more implementation to AdminInventory
This is required as we now move items between inventories instead of individually removing and adding. This basically adds the stock represented by the admin shop sign to the AdminInventory so all transactions should always be possible.
2019-04-05 15:17:15 +01:00
Phoenix616
1952e5cb46 Directly transfer items (Fixes #169) 2019-04-05 14:49:27 +01:00
Phoenix616
c1509dc03a Let's not kid ourselves, this update is too big to be a patch version
This also uses the Bukkit API again instead of spigot (it doesn't use anything from spigot) and also makes sure to exclude any other Bukkit version from the dependency tree
2019-04-02 19:23:52 +01:00
Phoenix616
2007c4a7fb Fix ShopDestroyEvent not getting called in certain cases
This could be triggered by updating a column of physics blocks with a shop attached
2019-04-01 13:55:21 +01:00
Phoenix616
be5f47cb1f Add config option to toggle if all shop removals should be logged
Removals that happened due to no player being present will always be logged
2019-04-01 13:49:48 +01:00
Phoenix616
03589b3fef Catch Vault issues with null usernames (#158, #194, #205, #209) 2019-03-30 16:09:48 +01:00
Phoenix616
b37bf12e7f Convert old item metadata to newest version (Fixes #202) 2019-03-30 15:40:31 +01:00
Phoenix616
8cd89bf8ee Work around issue with serialising explorer maps
This is due to a bug in CraftBukkit not properly supporting localised/translatable display names when serialising item meta.
This also adds/improves the message when no valid item ID could be generated.
2019-03-19 19:08:53 +01:00
Phoenix616
355fa58ac4 Properly detect if reserve economy is provided (Fixes #210) 2019-03-18 15:10:18 +01:00
Phoenix616
b931393a62 Fix more issues with the shop access permissions (#207) 2019-03-08 22:52:08 +01:00
Phoenix616
de5b505ec5 Fix issues with shop sign opening and access permissions (Fixes #207) 2019-03-07 17:33:47 +01:00
Phoenix616
6d99210dd7 Really fix price restriction 2019-01-19 00:40:50 +01:00
Phoenix616
20228dd645 Fix amount in price restriction not working correctly
Also fix copy and paste error in SELL_PRICE_BELOW_MIN error message.
2019-01-18 22:27:40 +01:00
Phoenix616
91a372bd05 Make Item and Material parsing events 2019-01-17 19:50:47 +01:00
Phoenix616
c8d0590614 Add different error messages when price limits are exceeded (#193) 2019-01-17 18:08:54 +01:00
Phoenix616
6fe6f80538 Use Bukkit's inbuilt command permissions system (Fixes #186)
Also fix plugin not disabling when dependencies aren't loaded correctly
2018-11-25 00:59:13 +01:00
Phoenix616
bc14736a37 Ignore cancelled sign change events 2018-11-21 00:45:39 +01:00
Phoenix616
b853afbd52 Fix issues with the permissions for using different player names
This adds separate permissions for accessing, creating and destroying of shops.
It also adds a config entry to allow using of a shop even if someone have access to it due to their permissions.
2018-11-19 21:10:48 +01:00
Phoenix616
b17a471c21 Check if dependency is enabled (Fixes #181) 2018-11-12 15:03:13 +01:00
Phoenix616
727f49fc28 Update to new Vector API in WorldEdit/WorldGuard 7 2018-11-06 15:35:28 +01:00
Phoenix616
7adf02e532 Improve hopper protection
The InventoryMoveItemEvent is now only used for Hopper Minecarts, other blocks that could move items (Hoppers and Droppers) are checked on place. That way players that have access to a shop can just use the blocks normally but other players can't place them.
2018-10-23 19:27:39 +01:00
Phoenix616
fe85dafec5 Allow configuring what containers can be used for shops (Fixes #175) 2018-10-23 19:14:21 +01:00
Phoenix616
b5f77d67b5 Fix color of ShowItem insert bleeding into message 2018-10-23 19:02:09 +01:00
Phoenix616
470f9d8d99 Allow admins to create shops for other users (Fixes #176) 2018-10-23 16:06:27 +01:00
Phoenix616
2243c2fbc6 Update to new AuthMeReloaded API (Fixes #174) 2018-10-15 20:27:38 +01:00
Phoenix616
4ef24c3828 Update to official WG/WE repository 2018-10-15 20:22:42 +01:00
Phoenix616
26d800132c Merge branch '1.12' into 1.13 2018-09-26 17:02:21 +01:00
Phoenix616
b30688b635 Fix issues with admin shops, ops and creative mode (Fixes #168) 2018-09-26 17:02:13 +01:00
Phoenix616
39a522716f Merge branch '1.12' into 1.13 2018-09-18 00:09:07 +01:00
Phoenix616
96b5a675d6 Allow admins to use the admin shop in all cases
This fixes issues with the auto complete right click functionality not working with admin shops
2018-09-18 00:08:54 +01:00
Phoenix616
0c6aaaa6f7 Fix damage not getting set properly 2018-09-10 01:11:42 +01:00
Phoenix616
adf5340932 Remove spaces from shortened strings for better readability
This is necessary due to the extended length of some material names in 1.13 as they directly include the variation into the material where previously only the data value was used. (E.g. BLACK_STAINED_GLASS_PANE) By removing the spaces and using uppercase characters to separate parts the string stays both readable to the user and parseable by the plugin. It should also be backwards compatible with the old format. (At least with 1.13 material names)
2018-09-10 00:33:27 +01:00
Phoenix616
e1998bcd7c Merge branch '1.12' into 1.13
# Conflicts:
#	src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java
2018-09-10 00:31:26 +01:00
Phoenix616
12d2107ce1 Fix passing Material enum strings directly to getShortenedName 2018-09-10 00:25:25 +01:00
Phoenix616
173991ab4a Use spaces and proper casing for calculating width (Fixes #166)
This also slightly changes which name part gets shortened first. It will first shorten the longest name and then the rest.
2018-09-09 22:43:49 +01:00
Phoenix616
54b3b6966c Merge branch '1.12' into 1.13
# Conflicts:
#	src/main/java/com/Acrobot/Breeze/Utils/MaterialUtil.java
#	src/test/java/com/Acrobot/Breeze/Tests/MaterialTest.java
2018-09-09 14:47:32 +01:00
Phoenix616
516eefc5b6 Allow longer item names on signs by calculating the width
This uses hardcoded widths for the main characters used in Minecraft and might not be precise for some characters but better than the previous 15 char hard limit.
2018-09-09 14:37:09 +01:00
Phoenix616
2459a406fe Auto-correct item code on sign.
This also makes it possible to input IDs on the sign that are longer than the max sign letters that the plugin uses as that just gets auto corrected back down to the correct amount.
2018-09-09 13:26:08 +01:00
Phoenix616
afab90d021 Fix wording in of incorrect item id message 2018-09-09 13:24:26 +01:00
Phoenix616
f1ce97dbce Merge branch '1.12' into 1.13 2018-09-05 23:07:49 +01:00