Workaround for known exploit.
This release updates API dependencies for DiscordSRV (1.25.1), Clip's PlaceHolderAPI (2.11.1), MVdwPlaceholderAPI (3.1.1) and TokenEnchantAPI (18.37.1).
This release also changes the default config.yml setting for anticheat.spam_check to true to enable this by default for new installations.
Fixes issue with Concurrent Modification Exception on disable or reload of the plugin.
Fixed issue where sometimes the next button would get out of sync with the number of listed items.
Added support for reloading locale information when using /ah reload.
Added new feature in config.yml to check for click-spamming on menu controls. To enable, set the spam_check value to true in the config.yml.
This release fixes some critical bugs and changes how files are imported.
- Fixed a critical issue with /ah <player> where any player could run this command without permission.
- Removed /ah <player> command (deprecated) and replaced with /ah menu <player> command. This also eliminates a possible lagging if a player mistypes a sub command.
- Implemented support for importing data.db files from the original AuctionHouse by cfilatov.
- Fixed a potential NPE.
As with all releases, please backup your data files, and perform your own testing before deploying to a production environment.
Added separate permission for auctionhouse.expire.others.
Added support for PlaceHolderAPI and mVdWPlaceholderAPI.
PlaceHolderAPI:
%auctionhouse_active_listings% - count of active listings in the world of a player.
%auctionhouse_player_listings% - listings count for a player.
%auctionhouse_expired_listings% - expired listings count for a player.
%auctionhouse_sold_items% - sold items count for a player.
%auctionhouse_max_listings% - max number of listings permitted for a player.
mVdWPlaceHolderAPI:
{auctionhouse_active_listings} - count of active listings in the world of a player.
{auctionhouse_player_listings} - listings count for a player.
{auctionhouse_expired_listings} - expired listings count for a player.
{auctionhouse_sold_items} - sold items count for a player.
{auctionhouse_max_listings} - max number of listings permitted for a player.
This release fixes several reported bugs.
- Fixed NPE when using an economy plugin that returns null instead of a proper EconomyResponse object.
- Fix possible issue with upgrading listings from older .dat format to .db format.
- Fixed issues with wildcard item names in restricted items.
This release fixes several small bugs.
- Fixed incorrect permission for /ah search command.
- Re-implemented color support for menu titles that was removed due to a bug.
- Fixed issues with textures not working for items in the buttons and listings.
- Fixed issue with display name not working for buttons using custom skull item.
No changes to config.yml or localization.
Fixed an issue in event seller uuid causing a stacktrace.
This release fixes some bugs reported in the discussion forum.
- Fixed issue with /ah selling showing syntax about player
- Deprecated support for /ah <player>, at least in tab completion in order to not display all the player names for OPs on /ah
- Fixed issues with tab completion not showing player names for /ah menu
- Added functionality in /ah menu [player] [flag] for option flag that specifies if exit button is shown (true/false)
- Fixed issue where discord message was not localized
- Fixed issue where cancellations from API for listing an item would still list the item.
- Fixed issue where discord message would not show server for server listings
- Fixed issue where multiworld support was not filtering properly
- Changed prefix handling for groupWorlds support to allow any worlds with same prefix to group (not just <prefix>, <prefix>_nether and <prefix>_the_end)
- Limited purchasing of listings from creative mode with same config.yml setting
- Changed behavior of similar lore comparison for restricted items to include 'regex:' and 'fuzzy:' prefixes to allow regular expressions and partial matches.
- Changed behavior of similar name comparison for restricted items to include 'fuzzy:' prefixes to allow partial matches.
- Changed behavior for deleting one or more database listing records to handle multiple inside the runnable task in order to prevent thread issues and JVM faults.
The locale file version has been updated and sorted.
Some keys changed:
days -> duration.days
hours -> duration.hours
minutes -> duration.minutes
seconds -> duration.seconds
now -> duration.now
Some new keys were added:
value.true
value.false
warning.purchase.creative
warning.purchase.spectator
Some keys were removed:
message.help.ah_menu_player
message.help.ah_player
Some values were updated:
message.help.ah_menu
As with any update, please backup your data files. This release changed behavior in how listings are deleted in bulk. I've tried my best to test and ensure this does not break stuff, but best to be safe.
This release fixes an issue with tab completion.
This is the official 2.1 release.
It includes numerous bug fixes and changes.
The en_us.json file has been updated. Please diff the changes between it and the backup to see what keys have been added at the end of the file and what formatting has been changed.
Any issues that are still open should be checked on this version and report if they are still an issue to be included in a subsequent point release.
This release fixes several issues including, multi-world support, NBSP in locale currency formatting, discord item naming, command syntax and handling, tab completions, time localization as well as other small changes.
Thanks for your patience on this release.
Well, I hope you all got your bug reports in!
This release fixes an issue where using /ah <player> and /ah menu <player> from the console or as a ConsoleSender would not open the menu for the player.
This release revises the restricted items wildcard functionality allowing it to work better, allowing wildcard on all section keys such as damage.
This release adds a permission auctionhouse.pick, that when applied or if the player is OP, allows them to middle click on items in the AH menu to "pick" them to the cursor. This is a dangerous feature, and giving the permission to a player would allow them to grab any listed item in the AuctionHouse menu. The use case of the feature is for admins to inspect items.
As usual, please backup your data folder, and test thoroughly and understand the ramifications if you deploy to your production server.
We are close to release, but not there yet.
This release fixes a problem with locale files not loading correctly.
If we don't have any showstoppers, this code base will be reversioned and released as the official 2.1 release.
Remember how I mentioned that if we didn't have any show-stoppers we would probably be releasing RC3?
Well, this is the "
I should have taken my own advice release"...
- Changed the database table format adding an additional column for listing type.
- Added new /ah list <price> [count] command that allows an OP or someone with the auctionhouse.list permission to create a server listing that does not expire, but can only be purchased once.
- Added new /ah ulist <price> [count] command that allows an OP or someone with the auctionhouse.ulist permission to create an unlimited server listing that does not expire, and can be purchased over and over.
- Made sure that neither of these new server commands pays the staff that lists them.
- Added server.name key to en_us.json localization file to specify the server name that should be used for the seller for these listings.
- Updated en_us.json with modified keys for cancelling/expiring listings.
- Added integerPrice: <boolean> setting in config.yml to round prices given in new listings to nearest integer.
- Added showRepairCost: <boolean> setting in config.yml to display any repair cost associated with an item like an enchanted book if it has one.
- The auctions.db database will now be backed up on startup. This gets overwritten each reboot, so if you need to roll back, stop your server - don't restart it, then copy the backup somewhere safe.
- AuctionItemEvent now included ListingType enumeration.
- Removed formatting from log files (resets we being included)
- Changed permissions to allow common admin commands to be available by default if OP
- Fixed some sound issues.
- Other misc. bug fixes.
The config.yml has been updated as well as the en_us.json locale file for the new features. Please diff the locale file against the backup to see what has changed, and make those changes in your custom locale files accordingly.
Although this is a Release Candidate. The database did change. If you use on production data, you will not be able to roll back unless you have made a backup.
As with all releases, backup your plugin folder prior to installing this version and test. I take no responsibility if you ruin your data. Enjoy.
Another release candidate...
Changed behavior for permission auctionhouse.cancel.others to allow Shift-Right-Click to force-expire the listing and return the item into to the player's expired items.
Added new behavior for permission auctionhouse.cancel.others to allow Shift-Left-Click to cancel the listing and return the item to the player that cancelled (admin). Item in this scenario is not returned to the seller.
Changed pragma setting for sqlite database to auto-vacuum (move empty space to end of database), thus compacting the data after removing listings, but might lead to fragmentation.
Added sqlite vacuum statement to be run when a database is loaded, such as after a reboot. This will fully compact the database tables, reducing space and fragmentation.
Hopefully this is the last candidate for this release. If there are no show stoppers reported, I will bless it as a release version.
Fixed issues with text formatting.
Fixed issue with ah menu command from command block
Cleaned up command parsing
If no significant issues are found, this release will probably end up being renamed as the release version.
This release candidate provides feature parity with the 1.13+ version of AuctionHouse. Some features are not available for 1.8.8, and are not available in this release.
Changes from earlier versions:
- Fixed searching on enchantments and adds searching on stored enchantments
- Fixed duplication issue with listing fees and rewrites item listing code to be more resilient to duplication
- Fixed issue with listing fees always showing
- Fixed issue with purchasing item / villager moans when player first joined but not saved.
- Changes defaultMaxListings to 5 in the config.yml (defaults)
- Updated DiscordSRV library to 1.18.4
- Changed terminology for Blacklist to Restricted Items
- Added support for Unbreakable items in Restricted Items
- Fixed issues with Restricted Items not parsing correctly for enchantments and unbreakable
- Fixed issue with chat text not displaying when item is listed
- Fixed issue with New Balance showing whether or not listing fee is disabled
- Added progress check for listing item command (prevents spamming listings)
- Changed functional behavior of cancel and return items to prevent using AH as a storage chest: If a player cancel their item it is returned immediately rather than going into Expired Items. If an admin cancels another players item, it is returned to the admin, not the seller. Items that expire naturally will still go into Expired Items, there is no limit.
- Changed exception handling on parsing items to provide better detail
- Changed /ah sell command to include both a price and an optional count of items
- Fixed issue where floats were not parsed properly for the locale
- Fixed issues with Discord messages not being sent
- Fixed potential exceptions in mouse click events when indexing listings
- Update to add TokenEnchant API 17.1.5 (but still not officially supported)
- Actionbar messages set to true by default in config.yml
- Added permissions for triggers for auctionhouse menu including auctionhouse.trigger.sign, auctionhouse.trigger.block, auctionhouse.trigger.entity.
Please test and let me know of any of the issues. Thanks!
As always, please make a backup of you data before using this plugin. Please use on a test environment and not on your production environment unless you absolutely understand what the ramifications are...
Fixed issue with chat text not displaying item when item is listed.
Fixed issue with New Balance showing whether or not listing fee is disabled.
Added progress check for listing item command.
This release changes the terminology from Blacklist to Restricted Items. The configuration file and localized messages have been updated to use inclusive terminology. Please note this updates the en_us.json localization file, so if you have any customized localization changes, you will need to update those files accordingly.
The code for comparing similar items was updated as well with these changes.
This version fixes an issue where leaving a menu title blank in the localization file would prevent the menu click handling from working properly, resulting in the possibility to duplicate menu items. It now will default the title if the translation is missing or intentionally made blank.
Please test and let me know if any of the reported issues are still occurring in this beta. Thanks!
As always, please make a backup of you data before using this plugin. Please use on a test environment and not on your production environment unless you absolutely understand...
Fixed listing fee always showing up.
Fixed issue with purchasing item / villager moans when player first joined but not saved.
Changed defaultMaxListings to 5 in the config.yml.
Updated DiscordSRV library to 1.18.4.
Please test and let me know if any of the reported issues are still occurring in this beta. Thanks!
As always, please make a backup of you data before using this plugin. Please use on a test environment and not on your production environment unless you absolutely understand...
Changed how triggers.block_name and triggers.entity_name are parsed in the config.yml. Now these sections can be either a json string or a list of strings.
General code cleanup.
This release fixes two possible NPE's in parsing the config file that were introduced in the changes from the last release for the locale and decimal format.
This release also fixes an issue where menu mode would not display the exit button if the Auction House was opened first in non-menu mode by the player. Menu mode will now display the exit button in this case where you want to mix the ability to run AH from a menu as well as from a player command.
This release also changes the permission level for the command which runs from the exit button. Before it would run commands only if the player had permission, now it will run these commands as an operator.
This release fixes an TextComponent formatting issue where text formatting would carry over the bold and color formatting between parts of a translation string into other parts of the string.
This release also fixes an issue the locale may not have been parsed correctly for applying the decimal format.
This release fixes a potential Null Pointer Exception in rare circumstances where an auction seller is null.
Finally, this release adds a config.yml flag spawnerInfo that is enabled by default to show the mob contents of a spawner when listed. Disabling this flag is useful for spawner plugins that don't properly store information about the spawner in the actual ItemStack, but record details elsewhere and only applies the infomation when the spawner is placed.
This release includes a few small fixes and new support for Action Bar messages.
Player cooldown was changed to reset the cooldown only after a player confirms listing an item. Before it was reseting the cooldown before the listing confirmation menu.
Fixed issue where glass panes for the Confirm Listing menu were not using the localization strings.
Fixed issue where items in localization strings that contained the &k code to obscure text, was not resetting after the item.
Added support for displaying notifications to the players in an Action Bar message. Several new settings have been added to the config.yml to support the Action Bar.
A boolean setting named
action_bar was added to the
auction configuration section to enable or disable action_bar notifications when a seller is notified of a purchase. It will still send a notification to the seller's chat regardless of this setting.
The
announce under the
auction section currently enables or disables chat notifications for listings and purchases to all players.
A new
announce section was added in the config.yml file with sub-sections for
chat and
action_bar. Each of these sections contain two boolean settings for
listings and
purchases. These will individually control whether an announcement is sent to all players, is sent to their chat window and/or action bar for listings and/or purchases. This provides a bit of granularity in determining how announcements are made.
The config file version has been updated accordingly.
This fixes a critical bug in the recent releases of AuctionHouse that can cause lore information to be lost when an item is sold or returned.
It is recommended that you install this version if you have installed version 2.0.1 or later.
This release changes the behavior of how the plugin determines the spawner type to put into the lore when displayed in the AuctionHouse. It fixes an issue where some spawners that were not detected. It will now no longer display any mob details if an invalid NBT tag is used for compatibility purposes.
This release adds several usability improvements that have been planned and contributed by users.
CAUTION: This is a big update and there are many changes to the locale files, so don't rush into the upgrade until you read everything carefully that's changed.
Item Drop Behavior
Items that expire go into the expired items menu, however that too has an expiration and after a duration of time, those items become abandoned. The behavior for abandoned items was if the player was logged in, it would try to give the player the items, and if it couldn't fit, it would drop the items on the ground.
This behavior has changed to be consistent with any item being returned to a player or given to a player. If the player doesn't have space in their inventory, they will get a warning message and the transaction / transfer will not take place.
A flag can be set in the config.yml for drop_at_feet. If this is set to true, it will always return or give the item to the player and will just drop the items at their feet. This flag was intended for some cases where compatibility was needed.
This feature was partially implemented in the 2.0.1 release and now is fully working for all cases.
Blacklisting Fixes
This release fixes some more issues with blacklisting and should address all the open issues. Most notably a strange issue where it was not behaving correctly with wildcard item types.
Updated Localization Strings
Have to admit it, I went a little overboard on this release and made a lot of changes to the locale file keys and values. Mostly the changes were to allow for better formatting of some items and buttons and to remove the hard coded newlines in some strings to be replaced with separate blank lines. The only down side is there may be some additional strings that may need translating or reformatting.
Some notable changes we to the title of the Player Listings button, and the Cancelled / Expired Listings buttons to be more consistent with the menu titles.
My suggestion is for those that localized, to diff the two english files (the .json and the backup) to see the differences, since they are too numerous to list.
New Features!
Player Balance
OK, so why all the locale changes, well, first off we added the players Balance to the Player Listings button so you can easily see what your balance is. It updates in realtime.
Similarly, when looking at listings now, it will tell you if you can afford the item or not based on your current balance (also in realtime if your balance changes).
Consistent GUI Buttons
Cancelled / Expired Listing button (that poisonous potato) is now always visible even when there are no items to return. This change was necessary to keep the GUI consistent in functionality with other buttons.
Shulker Box Items
The item listings now show more than 5 items from the contents of storage containers such as Shulker Boxes in the listings. While this is not the most optimal solution to see all the details of the container's items, its a step in the right direction.
Spawner Mobs
The item listings now show the mob type(s) for spawners that are listed. It checks if they support multiple mobs in the SpawnPotentials and will display that information. It will fall back to SpawnData if it doesn't find any. It also looks for SilkSpawner tags and recognizes those.
DISCLAIMER
As with any major update, please backup you data prior to any upgrade. The 2.0.x release uses a different back-end (SQLite) for data storage now, and conversion is a one-way process.
As with any release, there is always the chance that something was not caught in testing (believe me, we've been there). So, I can't emphasize this enough.
Thank you all who have helped to provide positive feedback on this plugin.
This release fixes an issue where expired items have gone unclaimed would be always dropped at the players feet rather that trying to place in their inventory.
It now behaves similarly to if a player manually returns an expired item. The ActionItem for ITEM_DROPPED was removed and this will now trigger the ITEM_RETURNED action instead.
The locale file was updated for the message
warning.unclaimed_listings.notice which is used when items are returned to the online player after being unclaimed.
This release fixes a critical issue with the ordering of the blacklisted items causing strange behaviors, specifically if a wildcard item type is used.
There was an issue in how the keys for the blacklist were loaded and subsequently it would always match for a missing item in the entire blacklist rather than not match in the specific blacklist section. This resulted in other item types being used when no item type was intended for wildcard. It would also pull the next item type in the list.
This seems to be a scope problem in how the ConfigurationSection#contains() method checks for matches.
READ CAREFULLY!
This release changes how AuctionHouse listings are stored from a flat data file to an SQLite database file to improve overall performance.
This release will import your listings from the existing .dat file, and rename the file to .old as a safety measure, and then store the imported listings in the auctions.db SQLite file.
If you plan to run on a test server prior, please copy the usercache.json file, and the world's level.dat and playerdata folders in order for the same players that have made listings to be recognized when the data is imported.
You should run the upgrade on the same server with the players that have the listings. Running the upgrade on a test server may result in listings that can not be purchased if those sellers have never logged into the test server.
This is a one-way process! Testing has been done on the upgrade process, however it is important that you make a backup of your server data, specifically the AuctionHouse folder under the plugins folder in case you need to roll back to the 1.9.x version supporting .dat files.
If you have issues, roll back. Copy the auctions.old to auctions.dat, replace the plugin with the old one and reboot the server.
This release changes some of the methods for the API to allow for future implementation. Please double check your custom plugin code if you are using the API.
The showSeconds option has been added to the config.yml file to allow the disabling of showing seconds on the item durations. This might be useful if you set the updateTicks to something >= 1200.
Roll back to 1.9.2 due to data loss issue.
This release improves performance and reduces lag.
This release improves performance.
This release fixes a bug in the permissions where only the first effective permission was being considered. Now it properly checks all effective permissions for the highest value. Effective permissions are what permissions the user has including for the player and their groups.
Discord Support Fix
This release mainly fixes the issues with DiscordSRV API throwing errors that an API method could not be found when using the more recent 1.18.x versions of DiscordSRV. Starting with this release, you must use DiscordSRV 1.18.x or higher for Discord support. Earlier versions are not backward compatible with the new JDA (Java Discord API).
Blacklisting Fix
This release also fixes an issue with blacklisting where name, lore and enchants may not act as wildcards if omitted. This posed some problems for blacklisting an item based on lore that had a custom name.
Localization Error Message Changes
This release fixes an issue where the messages thrown in the console might be confusing if a locale file is mis-configured or key entries missing for translations.
Fix for Potential Duplication Issue
This release also added a check in the Confirm Listing menu that if a player is not online when the menu is closed, the transaction will not be cancelled.
Max Sales Tax
New features in this release include a maxSalesTax setting in the auction section of the config.yml. This is an amount, not a percentage, you would set in addition to salesTax to set a hard cap. The salesTax setting has not changed and is a value from 0.0 to 100.0 that represents the percentage of sales tax to apply to the seller's revenue.
Min Sell Price
Another feature added is a minSellPrice setting in the auction section of the config.yml. This is the minimum price that a player must list any auction.
Duration Formatting
The way that durations are displayed in the plugin have changed. Durations are time values that are represented like 0d0h0m0s. The seconds part is not necessary for parsing in the config file, but the others are required. What has changed is when these durations are displayed to the player in the menus (i.e for expiration), they omit values that are zero from left to right. So, if the value is 0d 0h 26m 36s, it will now only display 26m 36s.
Listing Cooldowns
Finally, a feature was added to the auction section of the config.yml for listingCooldown. This is a duration value and represents how much time must elapse for a player between each listing. So, if you set it to 0d0h1m30s, then a player must wait that period between their listings. This is intended to provide a minimal means to combat spamming of listings.
The revision of the config.yml file is now at 21, and the en_us.json locale file has been updated to 21 as well.
The following localization messages were added...
"warning.sell.min_price": "&cYou can not list an item with a price lower than ${0}",
"warning.listing.cooldown": "&6You must wait &e{0} &6before listing again."
This release fixes an issue where strict mode was not checking for shift-click and players could move items into the menu.
This beta release updates AuctionHouse-Retro to feature parity with the AuctionHouse plugin (for 1.13+).
Adds a ton of features however extensive testing has not been performed on this beta release.
Backup your data files before using this version in case you need to roll back. It will update your config.yml, en_us.json files as well.
This fixes a regression issue with how items are dropped when a player joins. It will no longer do this in a thread since it can cause an exception due to adding an entity asynchronously.
More performance improvements in the menu listener and menu click code...
Because you can never have enough of a good thing...
Small fix in how listings are handled in the active listings, player listings, expired listings and sold items menus.
Hopefully this addresses some issues with lag on the Prev/Next buttons.
Implemented threading for some player events.
Fixed possible issue with economy transaction failures.
General code cleanup
No changes to the config.yml or locales versions.
As always, backup your data before upgrading to make sure you can roll back if you encounter issues!
This release changes the methods used in BungeeCord Chat API for translation.
BungeeCord Chat API is included in Spigot builds. Spigot 1.8.8 builds used an older version of the BungeeCord Chat API that did not include several ComponentBuilder methods for appending BaseComponents.
The previous implementation in the plugin, translated the item names on the server, and depending on the server locale, would would display that text in the chat messages.
This provides a proper fix to the implementation such that it will work without using the ComponentBuilder.append methods used to build a representation of a String that is displayed in chat that can support client-side translation, yet provide similar functionality to allow for client-side translation.
No changes to the config.yml or locale files in this release.
Fixed an issue where button material changes in config.yml would only take effect when server restarted. It will now work as well when /ah reload command is issued.
Cleaned up some dependency issues with Chat API. Might fix some issues.
Changed some behavior in removing any AH items including button items that might get moved into the player's inventory.
sort_listings entry in config.yml was changed from 'SUNFLOWER' to 'DOUBLE_PLANT'.
No version changes to the config.yml (just the value change).
No changes to the locale files.
This is really just a clean up release.
Only notable change is the addition of damage and unbreakable settings under blacklisted items.
Small changes in how unrecognized item names in the blacklist are handled.
Fixed an issue where damaged items such as weapons might not translate correctly.
*Please note that config.yml sample blacklist items should use COMMAND instead of COMMAND_BLOCK.
This release includes some misc. improvements to how the AH menu is called and provides feature parity with the AuctionHouse plugin.
- Added trigger for custom entity name. The config.yml was updated to reflect these changes and now has the following entries under triggers:
signs: '[AuctionHouse]'
block_name: Auction House
entity_name: Auction House
All three are strings that will be checked if either the sign contains the text, or the block or entity's custom name contains the text. It will strip colors out when comparing.
You can summon an invulnerable, persistent, silent entity in Minecraft with no AI and give it a custom name that matches the entity_name and you can open the menu without having to use any NPC plugins.
- Changed the behavior for clicking on signs with a "dye" item will now not open the menu to allow plugins that add this coloring functionality to still work.
- Added two additional commands only available from the console:
/ah <player>
/ah menu <player>
These will open the AH menu for the target player if they are logged in and are intended for using in custom menu or NPC commands running on the console. Can be used with Citizens NPC and CitizensCMD.
- Added /auction alias for /ah
- Fixed messages when using /ah search or /ah sell without the required second parameter. Now shows the command syntax.
This version updates the config.yml version to 12, and the locale file version to 15. The following entry is added to the en_us.json locale file:
"console.command.invalid_player": "Player is offline or invalid!"
Although this is a feature improvement release, as with all new releases please make a backup copy of your data files, in case you need to roll back.
This release is for cleanup of the menu listener code to eliminate reported ArrayOutOfBounds exceptions.
It also fixes issue where no message would be given if player used /ah search or /ah sell without additional parameters, and adds /auction as an alias to /ah.
This version updates the config.yml version to 11.
No changes were made to the locale files.
Yet more fixes for out of bounds, changed the code to make it cleaner to identify top and bottom inventories and filtered out exceptions to prevent possible duplication.
No changes to config.yml or locale files.