Changelog
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 purgeplayerscache
to 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#getSemVersion
for returning a Semver object. - Added
ShopCreateSuccessEvent
event.
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
Dependencies
Files
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
ReleaseVersion number
4.0.0.0Loaders
Game versions
1.18.2–1.19.3Downloads
698Publication date
January 20, 2023 at 12:06 PMPublisher
Ghost_chu
Owner