UploadedMar 27, 2022
Supported Bukkit Versions
v2.15.1 for MC 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5
I only list the primary changes here. For information on API changes, internal changes, and changes to the language files, you can find the complete changelog on Github: https://github.com/Shopkeepers/Shopkeepers/blob/master/CHANGELOG.md
- Fixed: The refactors in version 2.15.0 broke the deletion of shopkeepers of inactive players.
v2.15.0 for MC 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5
- Added support for MC 1.18.2. Make sure that you are using the very latest build of Spigot 1.18.2, because initial builds of 1.18.2 had some chunk loading related issue that might affect the activation (spawning, ticking, etc.) of shopkeepers.
- Dropped support for all Bukkit versions below 1.16.5 (1.14.4, 1.15.2, 1.16.1-1.16.4).
- Bumped the Towny dependency to version 0.98.1.0 and using the glaremasters repository for it now (Jitpack seems to be having issues with Towny currently).
- Config: The translations repository has been renamed and is now located at https://github.com/Shopkeepers/Language-Files.
- Config: Added config option 'placeholder-item' that allows changing the placeholder item (Thanks to oltdaniel, PR #762). It is also possible to disable placeholder items now by setting the item to AIR.
- Config: Changed the default placeholder item type from 'NAME_TAG', which is difficult to obtain in vanilla Minecraft, to 'PAPER'.
- Config: Similar to Mohist servers, we also automatically enable the 'disable-inventory-verification' setting now when we detect that we run on a Magma server.
- Added an editor option to toggle the saddle of horse shopkeepers on and off.
- Data: The shopkeeper data version has changed from '1' to '2'.
- Reduced the range at which shopkeeper mobs look at players from 12 to 6 blocks.
- Command: The "/shopkeeper [shop-type] [object-type]" command no longer suggests completions for disabled shop and object types, or shop and object types for which the executing player does not have the usage permission.
- Improvements related to the deletion of shopkeepers that are owned by inactive players:
- We now log how many days ago the players were last seen when we delete their shops.
- Fixed: If the plugin is reloaded, and the still pending asynchronous task that checks for inactive players is somehow taking longer than 10 seconds to complete, and the 'player-shopkeeper-inactive-days' setting is changed to '0' (i.e. disabled) during the reload, there was a chance for shop owners to be incorrectly considered 'inactive' and their shopkeepers deleted.
- Related to that, this asynchronous task also aborts itself now when it detects that it has been cancelled, which happens when the plugin is disabled.
- Fixed: When we delete the shops of an inactive player, we now ignore any shops that have already been removed for other reasons in the meantime.
- We log a warning now whenever a shopkeeper mob has been removed due to the world's difficulty being set to peaceful. This warning is only logged once per affected shopkeeper and then skipped until the difficulty has changed.
- It is no longer possible to create mob shopkeepers when they would not be able to spawn due to the difficulty being set to peaceful.
- Improved the feedback messages that are sent when a shopkeeper cannot be created at a specific location: The previously used generic 'shop-create-fail' message was replaced with dedicated messages for the different reasons for why the shopkeeper cannot be created.
- Config: Added setting 'invert-shop-type-and-object-type-selection' (default: 'false'), which allows to invert how the shop type and the shop object type are selected with the shop creation item. This might for example be useful for servers that disable all shop types but one.
- Config: Added setting 'ignore-failed-server-assumption-tests' (default: 'false'), which allows to enable the plugin anyway, even when a server incompatibility has been detected during the initial server assumption tests.
- Fixed: Citizens shopkeepers are able to move, teleport, and change their location while the Shopkeepers plugin is not running, or while the shopkeeper's chunk is not active currently. Previously, we only updated the shopkeeper's location during shopkeeper ticking, i.e. when the shopkeeper's chunk has been activated. However, if the NPC was moved to a different chunk (or even world), and the shopkeeper's previous chunk has never been activated since then, the spawned NPC might no longer have been recognized as a shopkeeper. One noticeable effect of this was that the NPC could no longer be interacted with. This has been fixed by also updating the shopkeeper's location in various other circumstances now.
- Fixed: A related but more minor issue has been that Citizens NPCs can already be spawned while their chunk is still pending to be activated by the Shopkeepers plugin. During this short time period (roughly one second after chunk loads), the Citizens NPCs were not yet recognized as shopkeepers. This has been fixed by separating the registration of ticking (i.e. active) shopkeepers from the registration of spawned shop objects: Citizens shopkeepers now register their NPC entity already before the chunk is activated.
- Fixed: We no longer attempt to save the data of Citizens shopkeeper NPCs when the corresponding NPC has not yet been created (i.e. when no NPC has been attached to the shopkeeper yet).
- Fixed: Updating a shopkeeper's location also updates the shopkeeper's activation state now. Previously, it was possible for a shopkeeper's new chunk to not get activated until the chunk is reloaded.
- Command: Added command "/shopkeeper setCurrency ['low'|'high']", which allows you to change the currency item(s) from in-game.
- Permission: Added permission 'shopkeeper.setcurrency' (default: 'op') which provides access to the new set-currency command.
- Fixed: When setting the zero currency item to AIR, the selling and book shopkeepers were not able to derive the price of a trade from the editor when only the high currency price is specified.
- Added placeholder items for empty trade slots inside the editors of player shops.
- Config: Added various settings to specify the editor placeholder items for empty slots of partially set up trades (default: barriers, as it has been the case before), as well as for completely empty trade columns (default: gray stained glass panes).
- When you disable the high currency inside the config (by setting it to AIR), you will now need to manually adjust the corresponding empty placeholder items for the affected high currency slots (for example by setting them to AIR). This is a compromise that allows these slots to be set to arbitrary items, even if the high currency is disabled.
- Added display names and lore to these placeholder items that explain their purpose and usage inside the editor.
- Config: The settings for the zero currency items are no longer used (they have been replaced with new settings) and are automatically removed during a config migration.
- The "checkItem" command no longer compares the held items with the zero currency / editor placeholder items.
- Config: Bumped the config version to 5.
- Command: The "give" and "giveCurrency" commands no longer allow item amounts greater than 1024. Previously, these commands silently truncated any amounts greater than 1024.
- Command: The "giveCurrency" and "setCurrency" commands refer to the low currency as 'base' currency now.
- Command: Different types of command executors (e.g. command blocks and the console) no longer share their pending confirmation state.
- Command: Confirmations account for proxied command senders now: Since the original caller of the command receives the command's feedback messages, we also require confirmation from the original caller.
- Fixed: When removing or translating color codes in text we also account for Bukkit's hex color code now (x).
API changes, internal changes, and changes to the language files: See the complete changelog for details.
Known potential issues: See here.
If you like this plugin, consider making a donation.