The shop information can include the owner, available stock, the buy/
sell prices and detailed item information from the ItemInfoEvent.
This also includes an item component in both /iteminfo and /shopinfo if
ShowItem is installed.
Reasoning why this is part of the core and not a separate addon:
The impact of this function is extremely lightweight when (almost) no
aliases are defined so someone who isn't using this should not have a
worse experience.
Additionally including it in the core (similarly to the discounts,
taxes and restrictions) promotes it's availability while not massively
increasing the maintainability.
As for the OddItem removal:
That plugin hasn't been developed for over 7 years and such unique
plugin support should really be added via separate addon using the
events system which, with the new ItemStringQueryEvent, now actually
supports doing that from an external plugin.
If someone really managed to run their own private fork of OddItem for
all those years then they should be able to also provide such a simple
addon.
Message configs are now selected based on the client's language (can be
toggled in the config) and will use MineDown formatting to allow
display of component messages as well as usage of RGB colors in 1.16.
If found the legacy local.yml will be used instead of the per-language
files. Move your local.yml to the correct lang config to if you want to
use the per-client language option.
Version was also changed to 3.11 due to the many internal changes that
have accumulated over time
This adds some more logging to the metrics for some interesting plugin
settings as well as player account and transaction counts. This data
about account count and average transaction and item counts is also
exposed ingame via the /csmetrics command.
This also removes the outdated mcstats metrics as that site is long dead
now, the last data is from two years ago...
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.
This changes events to store the database Account instead of an OfflinePlayer and deprecates any event method that uses/returns OfflinePlayer. This is necessary as Bukkit#getOfflinePlayer(String) queries Mojang for the UUID when the user was not found in the local cache. As we already store this information (name to UUID mapping) in our database we should not have no need to rely on querying Mojang. (This might make transactions fail for shop owners that haven't played before but that shouldn't really be an issue in most cases)