This was only an issue if the autofill functionality for the own name wasn't used.
Now if there is no account with a certain name then the player can use it if it matches their user name
The AccountQueryEvent will now check both, short names as well as full
names and the getAccountFromShortName method will no longer check full
names or offline player names. (Names in a short format wouldn't match
them anyways)
This should not change the overal behaviour as the plugin uses the
AccountQueryEvent internally as that is now checking for full name/
offline player accounts. (And short names are matched first)
This also removes the deprecated methods which might interact with the
changed methods in unintended ways from the NameManager and the
PreTransactionEvent.
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 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 should be the final addition that allows other plugins to implement
multi-owner/group shops like requested in #119 and #133 by listening to
all the transaction events to handle money flow and shop/account access
events to enable access to the actual shop.
This adds better support for fake server economy accounts by not
requiring that a player with the name already has an account but allow
automatic creation of the account with the fake UUID provided in the
config.
Old configs that only define the name will still work though.
This fixes a bug where shop owner accounts would not be created in certain cases e.g. when the owner had certain admin permissions or created the account for another player while having certain admin permissions.
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.
This uses a cache for players that we haven't found before so to not check the cache too often and also checks if the online mode of the queried OfflinePlayer matches the server's mode (gotten from the first logged-in player in order to be compatible with BungeeCord requiring the server to be in offline-mode.
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)
This should fix the issue where the player's short name on the shop sign does not reflect the actual player's name. This works by storing every uuid-username combination together with the associated short name and the last time the player logged in with that combination.
This should fix issues with how name changes are handled and also prevent short names of different players from clashing. It also uses guava caches instead of maps now with a configurable cache size