Changelog
- Completely rewrote display item code
- Added new completely revamped item matcher, set work-type to 3 which corrects lots of issues(still in testing phase)
- Added 1.21.1 support, this will be the new default, which should allow for future updates to continue to work so long as the protocol doesn't change.
- Add finding enchantments on books and gear support for find sub command(thanks SarahGreyWolf)
Other Notes
- Testing builds for folia support may be found on the discord.
- RealItemDisplay will be getting removed in a future release. It is inefficient and causes more issues than it's worth. Please move to virtual displays.
Bug Fixes
- Fixed exploit with shop items and certain functionality(thanks to bridgelol)
- Temporarily disabled QS history while working on replacement due to errors end-users are running into.
- Fixed issue with enchantment restrictions not detecting them in enchanted books(thanks toTauCubed)
What's Changed
Full Changelog: https://github.com/QuickShop-Community/QuickShop-Hikari/compare/6.2.0.5...6.2.0.6
Changes
- Virtual Display Item available again when use ProtocolLib Build 710 and up, please update your ProtocolLib
Bug Fixes
- Fixed display item check when using RealDisplayItem, the check may delete non-display item from player/container inventory if an item contains lore that is a valid JSON string. It should won't affcet most servers.
- Fixed
/quickshop cleanghost
won't delete the stores that trading blacklisted items
Bug Fixes
- Fixed entity explosion may not check attached block
Bug Fixes (6.2.0.1)
- History GUI's paging button doesn't use translated text
- 1.20.4/1.20.5 didn't use Spigot new potion API
- The potion effect level in shop info panel always smaller one than actual level in RomanNumber
- The blank lines may send to players when you set a translatable text to empty
- Fixed
quickshop.alert
that should be use asquickshop.alerts
in PlayerListener
Bug Fixes
- History GUI's paging button doesn't use translated text
- 1.20.4/1.20.5 didn't use Spigot new potion API
- The potion effect level in shop info panel always smaller one than actual level in RomanNumber
- The blank lines may send to players when you set a translatable text to empty
- Fixed
quickshop.alert
that should be use asquickshop.alerts
in PlayerListener
Warning! Due to Minecraft's major update to ItemStack, downgrading is not an option! Please backup all data before upgrading!
Reremake users: This is the last chance to complete your migration from Reremake to Hikari before you upgrade to 1.20.5/1.20.6. The migration requires QuickShop-Reremake to be up and running. After upgrading to 1.20.5/1.20.6, Reremake will no longer work properly.
1.18, 1.19 users: All versions 1.18 and 1.19 have been marked as “End Of Life” and these versions are no longer supported. It may be broken in a future update. Please consider upgrading to 1.20.x!
It's been a long time! This release has been delayed several times due to huge changes in 1.20.5/1.20.6. But anyway, 6.2.0.0 is here now!
New Features
- 1.20.5/1.20.6 supports both for Spigot and Paper
- The hover item preview function on Spigot 1.20.6 is not available at the moment, please click to access the GUI to preview the item
- The virtual DisplayItem feature of 1.20.6 has been temporarily disabled because ProtocolLib has not been updated yet.
Display
entity support for display-item- The use of ItemDisplay as a hover is now supported, which has better performance than RealDisplayItem (both for Server and Client). Set
display-type
to3
to enable ItemDisplay entity
- The use of ItemDisplay as a hover is now supported, which has better performance than RealDisplayItem (both for Server and Client). Set
- Displaying detailed levels of potion effects is now supported on 1.20.5+
/quickshop history
enhance- New subcommands:
/quickshop history owned
,/quickshop history accessible
and/quickshop history global
to allow you query multiple stores transaction history in single queryowned
: Select all shops which you're owneraccessible
: Select all shops which you have per-shop permission to access the store historyglobal
: Select all shops on this server (require permission)
- New subcommands:
Bug Fixes
- Fixed
/quickshop benefit
command may not save when remove users - Fixed chunks load/unload loop on specific Spigot versions when use RealDisplayItem
- Fixed double-chest related issues
- QuickShop may only recognizes half inventory of a DoubleChest store that spans a Chunk junction after chunk unload/server restart
- When creating a store on a DoubleChest, symbolLink is always bound to the side with type=left, no matter which side of the DoubleChest the store cube is on. After the user destroys the corresponding side of the chest, the store will be invalidated.
- Fixed the issue that some items in the History GUI could not be displayed because they were out of the GUI display range.
- Fixed show-tax purchase messages doesn't show tax currency in message.
Debugging
We added localized text and Tab completion to allow all users to use QuickShop-Hikari's built-in debugging tools.
These debug commands are for debugging purposes only and have no operational confirmation. Using them incorrectly may result in inconsistent status or loss of data. Figure out what happens before you execute them.
All commands are started with prefix: /quickshop debug
dev/debug/devmode
: Toggle debug modesigns
: Print the coordinates of the all identifiable information sign for the store you are looking atupdateplayersigns <player name>
: Refresh the contents of the store information boards in all designated players' stores.force-shops-reload
: Unload all loaded stores and re-load them (to refresh the state)force-shoploader-reload
: Unload and delete them from memory, then re-execute the ShopLoader sequence to reload all stores from the database.check-shop-status/check-shop-debug
: Prints quite useful store status debugging information to confirm the current state of the store in memorytoggle-shop-load-status
: Simulate store loading/unloading without changing the chunks loading stateset-property
: Register/change the Java property sheet to change specific behavior via property switch without touch startup command line (They are usually changed through the startup parameters). For security reasons, this command is restricted to change QuickShop-Hikari properties only, any request to change any other properties will be denied.reset-shop-caches
: Reset store lookup cache for benchmark/or debugging possible cache update issuesreset-dbmanager
: Force reset of SQLManager, only for MySQL data sources, using this command on H2 will cause the plugin to crashdump-db-connections
: Dump SQLManager's Current Active Queries on chat.stop-db-any-queries
: Force close SQLManager's currently active queries.toggle-db-debugmode
: Toggles the debugging state of SQLManager and prints the executed SQL statements and performance timings on the console when SQLManager debug mode is enabled.dump-hikaricp-status
: Printing status information for HikariCP.set-hikaricp-capacity
: Dynamically change the size of HikariCP's connection pool to allow more connections to be fetched urgently.item-info
: Prints the NBT data for the item in hand (if any) and the item in the store (if any). If the item is in the hand and is looking at a store, it will also output the item match.mark-all-shops-dirty
: Forces all store change status indicators to be flagged as changes not saved in order to force a refresh of their current data into the database.clean-display-entities
: Scans all loaded blocks and removes any entities recognized as QuickShop DisplayItem. Useful when uncleared entities appear after changing the DisplayItem type.
Ko-fi supporters
Thanks to these friends on Ko-fi for their support in this update, they are:
- GradynWursten(GNUGradyn)
- Namiu
- narumincho
- lunar
(The names are in no particular order)
Performance Improves
- Optimized shop loading logic, significantly improved the loading speed of stores when the world loads, now skipping any unrelated stores.
Bug Fixes
- Fixed NoClassDefError when starting up without ProtocolLib
- Fixed cached stock/space API
New Features
- Added CoinsEngine Economy API support
- Added Treasury Economy API support
- [Compat] Added VoidChest compatibility module, contributed by @GeorgeV220 (first contribution)
Changes
- Number formatting now follows player's locale
- Messages now will delay to send while player logging in
- QUser now use Fork-Join-Pool to resolve
- InventoryWrapper can now verify that it is still valid
Performance
- Display item teleport now use Paper API if available
- Avoid create empty YamlConfiguration instance if no extra data for shop to save memory (lazy init)
Bug Fixes
- Compat/Addon's API
getShops
may returns the shops that not in selection and cause accident deletion if they in same chunk - Added multiple missing localization keys
- Player may still to charged even ShopPriceChangeEvent has been cancelled
- Shop creation may failed if user entered a super large number like
999999999999999999999999999999.99
with default new generated configuration - Some parts didn't use QuickShop's Permission Manager
- Some commands are using the wrong permission node
quickshop.use
permission node was ignored/qs staff clear
and/qs staff remove
won't save to database after modified staff list- Shop display still spawned even player use
/qs toggledisplay
to turned it off if server enabled display auto despawn - Fixed TNE economy type may populate StackOverFlow error while purchasing
Other
Several new Startup Flags have been added to allow users to fine-tune the internal implementation, which will be made available on-demand by developers in the support channel.
Bug Fixes
- Plugin may crashed on startup due incorrect configuration upgrade script.
- (Try-to) fix double-chest may cannot detect another half-part items.
- [COMPACT] GriefPrevention compatibility module may crash on startup if build don't have ClaimResizeEvent.
Summary by CodeRabbit
- New Features
- Enhanced logging in the GriefPrevention compatibility module for better startup and event handling visibility.
- Improved error handling in the configuration reload process to ensure stability.
- Bug Fixes
- Fixed an issue with handling
DoubleChest
instances in inventory management, ensuring proper functionality.
- Fixed an issue with handling
- Chores
- Updated dependencies to the latest version (
6.0.0.9
) across various modules for improved performance and compatibility. - Adjusted configuration scripts to accommodate new donation key handling.
- Updated dependencies to the latest version (
If you meet HikariPool-1 - Connection is not available, request timed out after 30000ms. errors in past versions, please upgrade to this version and see if it still happening, and join our Discord server to participate in the discussion of the issue. We are investigating this issue and releasing mitigation measures.
Bug Fixes
- Fixed NoClassDefError on Paper 1.20.1 (It's definitely fixed this time :) )
Optimization
- Resolved SQL query performance to avoid performing full table scans and causing severe query performance degradation
Changes
- Temporarily deactivated statistical metrics about the database, which we found were blocking in the main server thread and triggering a server crash when there were problems with the database connection
- Add performance indicators for newly added ShopHistory-related queries to provide feedback on query performance in Paste.
- Adjust logger to reduce useless logging.
- Added several debug subcommands to check for database performance issues and HikariCP related issues.
- Changed ShopHistory related queries from parallel to serial and limited the number of simultaneous executions to 1 to avoid completely exhausting all available connections to HikariCP and crashing the plugin.
Bug Fixes
- Fixed shop history query use database executor, causes a deadlock on execution resources and results in a query execution failure
- Fixed an issue where the default HikariCP pool parameters in the configuration file were incorrect, now incorrect configuration keys and configuration values will be automatically migrated and adjusted. Care should be taken to avoid accidental value changes if you have changed the relevant parameters manually.
Optimization
- We have noticed that the new
/quickshop history
feature is applying more database pressure due tolog_purchase
not being configured with proper indexing. This hot patch will create an index for log_purchase to alleviate the performance issue.- If you still continue to experience query performance issues after this update, please join our Discord to provide feedback.
This is a hot-patch for 6.0.0.0 major update.
Fixes
- [ADDON] Reremake-Migrator doesn't work with 6.0.0.0
- [ADDON] BlueMap Addon doesn't work (NullPointerException)
- [ADDON] ItemsAdder Addon don't load due package name changes
Although all updates is addon related, but you also need update QuickShop-Hikari it self.
6.0.0.0 Major Update - Furina
Focalors & Furina, Artist Tiko
For the Lunar New Year, QuickShop-Hikari has received a new major update that includes several feature updates for large networks and transaction-oriented servers. At the same time, we also fixed some bugs.
New Features
Shop History
The new Shop History feature allows you to open a store history panel for all past trade requests that have occurred in this store.
At the same time, you will be able to see your Most Valuable Customers, showing those players who have made the most transactions in your store.
The panel also will allow you to view the number and value of transactions for the last 24h, 3d, 7d, 30d, all-time, and unique purchasers count.
This feature is based on a long-existing transaction logging system, so after you upgrade, you can view the transaction history that created before the upgrade.
Change the shop sign material
New command /quickshop sign <material>
that allow users to change their shop's info sign material.
Transfer Shop Ownership
Added New command /quickshop transferownership
for shop transfer.
- This new command will allow player request to transfer a shop to another player, without re-create the shop.
- To complete the transfer, the requested player must accept the transfer request.
- To avoid ambiguity, the old
/quickshop transfer
command is now renamed/quickshop transferall
.
Price Suggestion
New command /quickshop suggestprice
that calculates the most expensive price, the cheapest price, the average price, and the median price for other stores on this server that have the same items and selling patterns as the current store, so that players can set appropriate prices for their stores.
Addons
- [Addon][Discoumt] New command
/quickshop discount listall
- The new command allows server administrators to list all discount codes on the server for better management.
- [Addon][Slimefun] New Addon to allow the use Item Expression to reference a Slimefun items.
- [Addon][ItemAdder] New Addon to allow the use Item Expression to reference a ItemAdder items.
- [Addon][Lands] Now supports deleting all stores in Land when it's deleted.
- [Addon][List] The command
/quickshop list
are now presented in a paged format, and you can toggle the paging by appending a number. No more crowding the chat box when there are tons of stores.
Misc
- Added new configuration item
shop.info-panel.show-enchantments
,shop.info-panel.show-effects
,shop.info-panel.show-durability
, to allow you disable some information on shop info panel to avoid too much data crowned your chat.
Improvements
- Added delete confirmation for [Remove Shop] button in shop control panel.
Optimization
- Improved checking of the best mirror source, which now gains speed and enables correct use of the best mirror source to resolve plugin dependencies. This is a significant improvement for users in mainland China.
- Multiplexing of libraries cached by the Spigot Libraries Loader (
SERVER_ROOT/libraries
) is now supported to reduce network requests and traffic consumption.
- Multiplexing of libraries cached by the Spigot Libraries Loader (
Refactor / Changes
- Introduced a new registry system and plan to convert more modules to use this system in the future.
- The control panel now suggest new
/quickshop transferownership
instead/quickshop setowner
. - API to
Shop#getRemainingStock
andShop#getRemaingingSpace
now supports async call, to retrieve cached data from database.
Bug Fixes
- EconomyFormatter may use incorrect currency to format the balance.
- Fix NoClassDefError on some Paper 1.20.2 instances. (hopefully)
- Fixed the command sounds doesn't work at all
- Fixed tab-complete doesn't work for non-operator players.
- Fixed
respect-item-flag
option doesn't work.
Addons
- [Addon][DiscordSRV] Re-build with DiscordSRV 1.27.0 to fix linked accounts related features.
- [Addon][DiscordSRV] Fixed messages may send twice for shop owners.