New Features
- Added support for Minecraft 1.20 and Spigot 1.20.
- New DisplayControl addon, it can auto detect Geyser and Floodgate players and disable VirtualDisplayItem for them, it also bring
/qs displaycontrol <auto/enable/disable>to allow players control client display behavior. If quickshop behind the a bungeecord proxy, you may need install BungeeCord-Geyser compatibility module to make it works.
Performance
- Improved VirtualDisplayItem performance.
- Improved startup performance on some large network.
Bug Fixes
- Fixed resources leaking in database helper.
- Fixed paste debug logs are actually pulling timings logs.
- Fixed BungeeCord detecting actually doesn't work at all. This may also resolved chat workaround on BungeeCord doesn't work issue.
4.2.2.1
Bug Fixes
- Command
/qs buyuse wrong permission, it now following thequickshop.create.controlas same as/qs sellbehavior. - QuickShop Paste Generator use incorrect type
PermissionforDebugtype logs generator.
Flags
- New
ignoreProtocolLibEnableStatusstatup flag allow user disableProtocolLib enable statuscheck.
THIS IS A BETA BUILD, DO NOT INSTALL ON YOUR LIVE SERVER UNLESS YOU HAVE FULL BACKUP
Technical update, rewritten the unstable and buggy virtual display item system.
Warning: This update contains API changes, some 3rd-party addons may stop working after update.
Removed
- DisplayItem-Centered on double-chest store now completely deleted, The code maintainer of this function no longer updates it, and it has created a lot of trouble, making it worth not to keep it again.
Fixes
- When the Quickshop-Hikari runs on the Paper software, the custom enchantment added by a third-party plugin may cause the API call error and prevent the player from accessing the store.
- For the enchantments that creates the errors, we will try to display a fallback name.
- Fixed dupelicated Util reloading registry.
- Fixed
/qs pastemay stop working if updater has been disabled or failed to check the updates.
Changes
- Most of errors now contains a human-friendly simple description.
Important: Running QuickShop-Hikari on the Spigot server now requires an NBT-API dependency, Paper and its Fork are not affected.
QuickShop-Hikari 1st Anniversary!
It has been a year since the first stable release of QuickShop-Hikari. Thank you to everyone who supported and used QuickShop-Hikari, your great suggestions and ideas made QuickShop-Hikari get epic feature enhancements in the past year. And thanks to the early supporters and beta testers for their hard work testing so that QuickShop-Hikari becomes more stable and runs smoothly!
New Features
- On Paper and Spigot 1.19.4 or higher, QuickShop-Hikari is now able to display the item names of potions. (example:
Potion->Potion of Speed, orSpeed->Potion of Speed.) They are now displayed in the same format as the client. - The store information sign on Spigot server are able to correctly display and render translation components by access NBT directly through NBT-API (thanks @tr7zw for the help)
- Added Dynmap Addon into official addons bundle.
- Added BlueMap Addon into official addons bundle.
- Redesigned CommandHandler stuff, The new command system can resolve colon variables from commands.
5.1. Colon variables are separate from the parameter variables, are ordered, and can be added at any position (e.g
-foo:bar). 5.2. Command now supports arguments with space inside, just wrap the string containing spaces with the "`" symbol. 5.3. The API has been changed accordingly and developers are advised to upgrade the relevant classes. The original classes will not be removed for a long time and every effort will be made to provide forward compatibility.
Bug Fixes
- Fixed translation files locating issue in Apollo Converter (the thing that Hikari used for converting from Reremake), now MineDown messages.json should can be correctly converting to MiniMessage format.
- Fixed the incorrect price logging in price changing logger.
Optimization
- Redesigned BatchBukkitExecutor, it now more smart and reduces the performance overhead associated with frequent thread scheduling.
- Move
/qs cleanghostcommand to use new BatchBukkitExecutor.
Misc
- Platform field now included into Paste so you can check which one Platform module enabled for your server.
- CommandContainer binding now included into Paste so you can check the specificed quickshop subcommand handler class name.
- Updated translations from Crowdin.
Long time no see! After a nice holiday and a busy exam week, I'm gradually getting back to my old update frequency and planning new functional updates.
But how, I hope you enjoy the update :)
Paper users: If you're running into java.lang.NoClassDefFoundError with addons installed but doesn't working, it's a Paper new plugin loader bug, make sure you have update to Paper-#445 or higher.
Bug Fixes
- Fixed
/qs exportcommand will create an IOException and doesn't work at all. - Fixed GSON creates IllegalAccessException when I/O per-player notifaction settings on some servers.
- Fixed
/qs importcommand doesn't work if database configured prefix.
Removed
- NoCheatPlus compatibility module was excluded from bundle compatibility modules pack since it's repository down and nobody maintains it. (If there are other forks of active development, please let me know.) 1.1. If QuickShop-Hikari is conflicting with the anti-cheat plugin you are using, please open an Issue and I will try to resolve it.
- Netease regional legal restrictions has been removed since it not necessary anymore.
There are important notes on this update, please read the changelog
EN: Since 4.1.0.3, QuickShop-Hikari are disallowed to be load that the server located at Mainland China due potential legal risks, please read Regional legal restrictions. This decision should won't affect any users out of mainland China.
ZH: 自 4.1.0.3 以来,由于可能的法律风险,QuickShop-Hikari 将不再允许位于中国大陆地区的服务器加载,请阅读区域法律限制.
Privacy Policy
We have updated our privacy policy to reflect the changes we have made.
We are now sending you our new privacy policy to ensure that you are informed.
We will send an IP lookup request to CloudFlare to determine if your server is located in mainland China. For more information, please see: Regional legal restrictions. The URL we will request: https://cloudflare.com/cdn-cgi/trace.
Fixes
- Fixed H2 database won't close until JVM exited.
Optimization
- Created a new batch processing mechanism to avoid server stopping response issues that can occur when a large number of tasks (e.g ShopPurger) are executed.
- The new mechanism limits the maximum number of tasks that can be executed in a period of time and will try to reduce the impact on TPS as much as possible and compensate for TPS time by suspending tasks when they exceed the expected time.
The first release after the Lunar New Year!
Guys how are you? We're starting to get back to normal life after lighting up a lot of fireworks (hah) to celebrate the Lunar New Year, so now allow me to serve up a stack of delicious updates!
Bug Fixes
- All compatibility modules stopping works in 4.0.0.0, please update your all compatibility modules to adapt the new versions.
- Incorrect dependency structure leads to ClassLoader conflicts on some servers, so that the plugin cannot be loaded, mitigation measures have been invoked in this version, and the effects are still to be observed.
Optimization
- Reduced JAR size from 7.7MB to 2.8MB.
Addons
Discord Addon
- Added per-player notifaction settings, player are able to use command
/qs discordto toggle the DM.
List Addon
- The addon
listhas been added into main-line, this addon allow player to check all shops they owned, check the document here.
Limited Addon
- The addon
limitedhas been added into main-line, this addon allow store owners to set a limit on the number of sales for their store over a period of time,check the document here.
ShopItemOnly addon
- The addon
shopitemonlyhas been added into main-line, this addon prevents players from putting non-store items into store containers, check the document here.
Happy Lunar New Year!
We're celebrating our major event - the Lunar New Year!
Like Christmas, Lunar New Year is a fairly important holiday in mainland China. People leave their work behind and return to their hometowns to reunite with their loved ones and family and celebrate the new year of the lunar calendar together.
I'd like to send Lunar New Year wishes to everyone in the lovely Minecraft community!
This update is a major update, please take care to backup your server and database. It is very difficult to roll back without a backup.
New features
- Added
/qs debug purgeplayerscacheto purge PLAYERS database table. - Paster now contains more useful data.
- Those paste entires has been added into paste:
- PlayerFinder
- Performance Monitor logs
- MiscUtils data (including General, Shopable Types, Custom StackSize etc.)
- TextManager data (including fallback language, local mapping prefix, file pathes, distribution url, available languages, post processors and caching stats)
- Nexus Manager data
- ItemMarker rules
- Price Limiter settings and rules
- Rank Limiter permission nodes
- Interaction Controller mappings
- PAPI Manager placeholder handlers and caching stats
- Added ton of new PlaceHolders.
- All placeholders are caching for 15mins by default to reduce the server performance impacts.
- You can find those placeholders from our documents.
- All placeholders:
%qs_metrics_recent_purchases_global_all_x%- Count all purchases in recent x days with all types%qs_metrics_recent_purchases_global_selling_x%- Count all purchases in recent x days which only selling shops%qs_metrics_recent_purchases_global_buying_x%- Count all purchases in recent x days which only buying shops%qs_metrics_recent_purchases_global_buying_x%- Count all purchases in recent x days which only buying shops%qs_metrics_recent_purchases_player_all_x%- Count all purchases in recent x days with all types%qs_metrics_recent_purchases_player_selling_x%- Count all purchases in recent x days which only selling shops for single player%qs_metrics_recent_purchases_player_buying_x%- Count all purchases in recent x days which only buying shops for single player%qs_metrics_recent_purchases_player_buying_x%- Count all purchases in recent x days which only buying shops for single player%qs_metrics_recent_transactionamount_global_all_x%- Count all purchases transaction amount in recent x days with all types%qs_metrics_recent_transactionamount_global_selling_x%- Count all purchases transaction amount in recent x days which only selling shops%qs_metrics_recent_transactionamount_global_buying_x%- Count all purchases transaction amount in recent x days which only buying shops%qs_metrics_recent_transactionamount_global_buying_x%- Count all purchases transaction amount in recent x days which only buying shops%qs_metrics_recent_transactionamount_player_all_x%- Count all purchases transaction amount in recent x days with all types%qs_metrics_recent_transactionamount_player_selling_x%- Count all purchases transaction amount in recent x days which only selling shops for single player%qs_metrics_recent_transactionamount_player_buying_x%- Count all purchases transaction amount in recent x days which only buying shops for single player%qs_metrics_recent_transactionamount_player_buying_x%- Count all purchases transaction amount in recent x days which only buying shops for single player%qs_shopmanager_global_total_all%- Count all shops in this server%qs_shopmanager_global_total_selling%- Count all selling shops in this server%qs_shopmanager_global_total_buying%- Count all buying in this server%qs_shopmanager_global_total_loaded%- Count loaded shops in this server%qs_shopmanager_global_total_unloaded%- Count unloaded shops in this server%qs_shopmanager_player_total_all%- Count all shops in this server for single player%qs_shopmanager_player_total_selling%- Count all selling shops in this server for single player%qs_shopmanager_player_total_buying%- Count all buying in this server for single player%qs_shopmanager_player_total_loaded%- Count loaded shops in this server for single player%qs_shopmanager_player_total_unloaded%- Count unloaded shops in this server for single player%qs_metadata_fork%- Gets the QuickShop fork name%qs_metadata_version%- Gets the QuickShop version
- Added ItemExpression.
- Please our documents for more.
- Added enchantment support for both blacklist and price-limit based on new ItemExpression system.
- Including enchantment level restrictions
- Added switch ToggleDisplay ability into shop control panel.
- Added
/qs debug updateplayersigns <player>command to allow batch updates all shops info sign for a specific player.
Bug fixes
- Fixed economy loading issue on serval servers.
- Fixed QuickShopItemMatcher cannot correct matching items (thanks @Lufano for reporting it).
Performance optimization
- Baking shops owner uuid<->name mapping in asynchronous threads.
- Loading transaction messages in asynchronous threads.
- Reduced unnecessary shop loading.
- Restricted the sign update watcher can max cost 50ms in single loop.
- Prevent shops loading on server startup if they're in unloaded chunks.
- Caching configuration values and pre-bake decimal formatter in busy tasks.
- Improved database upgrading / check for schame updates speed.
- Improved command handler lookup speed.
API changes
- QuickShop no-longer extends the JavaPlugin, this may break some 3rd-party addons.
- QuickShop logger now replaced by SLF4J.
- Some util funcations moved into PlatformUtil or CommonUtil.
- JsonUtil was moved into common module.
- Exposed PlayerFinder in QuickShopAPI
- Added
QuickShopAPI#getSemVersionfor returning a Semver object. - Added
ShopCreateSuccessEventevent.
Upcoming changes
The following features could not be included in 4.0.0.0 due to time constraints. We are celebrating the Lunar New Year, and as soon as our holiday is over, I will get back to development work and bring them to QuickShop-Hikari.
The following features have been confirmed and are in the process of being implemented.
- Shop Inventory Rebinding
- Allow user change the shop inventory out of shop container, player can easily binding to another container, or multiple container, to extend the shop.
- This allows players to add the contents of multiple chests/containers to a single shop and update inventory/space information simultaneously.
- If you have OpenInv installed, it can also bind the player's EnderChest inventory.
- It is also possible to bind inventory from a plugin, or even from players and entities, if someone is willing to support InventoryWrapper API.
- Allow user change the shop inventory out of shop container, player can easily binding to another container, or multiple container, to extend the shop.
- Extend DiscordSRV addon and allow players self enable/disable DM notifactions.
- Add discord commands into DiscordSRV addon that allow players use discord command to query shops or transaction logs.
- Migrate addons from QuickShop-Suite into QuickShop-Hikari mainline, and also adapt the per-player localization system.
- Dynmap Integration
This is a small optional bug fix for Hikari.
Bug Fixes
- If user upgrading from Reremake legacy version (which released before Minecraft 1.16 updates), the shop sign won't be correctly upgraded or recognized. (It fixed in 3.6.1.5 and all exists signs should be recongnized and upgraded after user click it.) Thanks for @Magma from server ria.red for reporting it (Well, that's probably what happens when production environment servers are upgraded only once in many years XD, I recommend that all server administrators for set up a upgrade schedule for updating plugins).
Other Stuff
We're working on Hikari-v4.0.0.0 and focus on performance optimize (multi-threaded, async, caching etc.), improve loading logic, boost startup speed and improve user experience so it will ready for large network.
Also, this is a great opportunity to make feature requests to us (because this change to the API will create changes, and once the API is fixed, it will be difficult for us to make major feature changes)
You can create your feature request on our Discusstions or Issue Tracker, Looking forward to seeing your thoughts.
This might be last version of v3 branch, we're developing Hikari v4!
Unless there are major errors in this version, it is unlikely that we will release a new version in a short time.
3.6.1.4/stable
Bug Fixes
- Fix top-level command tab-complete doesn't work.
- Database version didn't bump to
11and cause dupilicate upgrade.
New Features
N/A
Optimization
N/A
New Features
- New option
shop.async-owner-name-fetchhas been added into configuration.
#[BETA] Should we async fetch the owner name?
#If you enable this option, the calls for ContainerShop#ownerName will return the cached result.
#If the request out of cache, QuickShop-Hikari will allow up to 20 ms for sync fetch username.
#Then it will turn to background and return "N/A" this time.
#This may cause some display problems (e.g. the info sign will show that the shop owner is N/A)
#But once the cache is completed for fetching in the background, the next request will return the correct username
#This is very useful for large servers, because sometimes players may accidentally load a large number of long ago shops, resulting in a large number of main route IO requests for username queries and causing a spike in lagging
async-owner-name-fetch: false
Optimize
- Improved parallel player username <-> uuid query workflow, reduced unnecessary Bukkit OfflinePlayer API requests (which it really slow)
- Pre-fill username lookup cache with server's
usercache.jsonto boost initialization cache for improve the cache hit rate - Added
EssentialsXdata sources, now QuickShop will also use EssentialsX's data for mapping query (still, in parallel) - Move
/qs staffuuidquery tasks from server thread to standalone async thread to avoid tps loss - Move
/qs unlimiteduuid query tasks from server thread to standalone async thread to avoid tps loss - Move
/qs benefituuid query tasks from server thread to standalone async thread to avoid tps loss - Move
/qs staffuuid query tasks from server thread to standalone async thread to avoid tps loss - Move
/qs transferuuid query tasks from server thread to standalone async thread to avoid tps loss - Move
/qs permissionuuid query tasks from server thread to standalone async thread to avoid tps loss - Move MsgUtil msg sending functions username query tasks from server thread to standalone async thread to avoid tps loss
Check the change log in https://modrinth.com/plugin/quickshop-hikari/version/3.6.1.0
This version hot fixed username lookup bugs in 3.6.1.0 and 3.6.1.1.




