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.
This also removes the deprecated methods which might interact with the
changed methods in unintended ways from the NameManager and the
PreTransactionEvent.
Admin Shops can now be stocked the same way as player shops if a valid
shop container is nearby. If no container is nearby it will just work
as an unlimited shop.
This behaviour can be disabled with the FORCE_UNLIMITED_ADMIN_SHOP
config option so that an admin shop is unlimited even though a valid
container is next to it.
This fixes an issue where aliases would not show up in transaction
messages when the aliases item's string was shortened.
Also remove an unnecessary string length calculation from the
MaterialUtil getName method if there was no max width set.
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.
This protects people that use valid player names as admin shop names
from people with the same username as well as other cases where the API
is used to manage access to shops with certain special names.
This adds a new config option ENSURE_CORRECT_PLAYERID which lets one
disable the check whether or not a player's UUID version matches the
server's online/offline mode UUID version. Due to potential issues with
offline players which might occur when this isn't checked disabling
this can't really be supported and any issues should first be tested if
they still occur with this option enabled.
This also forces the UUID to version 4 if the server runs in online mode
as it should not be necessary in any normal setup to detect the UUID
version dynamically in that case. (Dynamic detection is only necessary
for offline mode which might potentially run behind a proxy)
This has caused lots of confusion in the past regarding the first time
setup and might be a feature that people don't even want to have.
(e.g. to allow coloring of the signs with dyes)