4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
New Features
/qs find
outputs now support hover item previewing- [ADDON]
/qs list
outputs now support hover item previewing - [ADDON]
/qs list
now supports tab-completing for online players if player have permission to listing other shops
Changes
- Barrel now added to default store container list, this change will only affect the new generated configuration.
- Maxmium item price in
price-restriction.yml
was limit to up to999999999999999999999999999999.99 (1.0E30)
to adapt decimal (32,2) to avoid over database data type limit to prevent SQLException, this change will only affect the new generated configuration. - Some invalid configuration nodes will be removed from configuration after this update (those options nolonger works for a long time ago).
Bug Fixes
- Fixed shop deleting was recorded as shop creating in database.
- Fixed
PackageUtil#parsePackageProperly
doesn't work when user disabled debug logger, it also affected-Dcom.ghostchu.quickshop
properly args.
4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
This is a hot fix for 5.0.0.5 version.
Hot fix
- Fixed SQLException when trying to fetch players offline messages from database.
5.0.0.5
New Features
- Added new
backup-policy
settings.- This option allows the user to control the triggering of database backups
- Rate-limit for player block clicking
- This is a very basic frequency limit, QuickShop will only respond to a single click event from the same player within 125 milliseconds.
- This helps to solve the problem of players maliciously clicking on squares quickly, causing QuickShop to look up, parse, and calculate store data frequently, resulting in tick-time increases
- Shop locks are not limited by this frequency; they are fast enough to find without excessive computation, and in redstone environments will even use cached lookups without causing computational stress.
We're planned apply the rate-limit to more modules in future to avoid affect server performances by players maliciously actions.
Optimization
- The players offline messages are not persistent in memory but fetch from database in async.
- We note that on large networks huge amounts of transaction logs may be generated, which are loaded into memory at startup and increase RAM usage.
- However QuickShop will always perform the same operation on the database while manipulating the content. This made the in-memory copy meaningless, so we moved it all to the database and read and write asynchronously when needed.
Changes
- QuickShop-Hikari nolonger automaticlly backup H2 databases on startup.
- QuickShop-Hikari nolonger automaticlly backup databases on shop purges.
Bug Fixes
- Fixed debug logs in paste is all empty lines.
- [ADDON] Fixed discount addon lost all discount codes after server restart.
4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
New Features
- Added new
backup-policy
settings.- This option allows the user to control the triggering of database backups
- Rate-limit for player block clicking
- This is a very basic frequency limit, QuickShop will only respond to a single click event from the same player within 125 milliseconds.
- This helps to solve the problem of players maliciously clicking on squares quickly, causing QuickShop to look up, parse, and calculate store data frequently, resulting in tick-time increases
- Shop locks are not limited by this frequency; they are fast enough to find without excessive computation, and in redstone environments will even use cached lookups without causing computational stress.
We're planned apply the rate-limit to more modules in future to avoid affect server performances by players maliciously actions.
Optimization
- The players offline messages are not persistent in memory but fetch from database in async.
- We note that on large networks huge amounts of transaction logs may be generated, which are loaded into memory at startup and increase RAM usage.
- However QuickShop will always perform the same operation on the database while manipulating the content. This made the in-memory copy meaningless, so we moved it all to the database and read and write asynchronously when needed.
Changes
- QuickShop-Hikari nolonger automaticlly backup H2 databases on startup.
- QuickShop-Hikari nolonger automaticlly backup databases on shop purges.
Bug Fixes
- Fixed debug logs in paste is all empty lines.
- [ADDON] Fixed discount addon lost all discount codes after server restart.
4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
Bug Fixes
- Fixed background logger's logs always unreadable random string in debug paste.
- 5.0.0.1 to 5.0.0.3 now marked unsupported due this bug. To continue get the support, please use the version > 5.0.0.4 or the latest LTS (4.2.2.12).
- [ADDON] Fixed discount addon will always apply -100% discounting to percentage discount code.
4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
New Features
- QuickShop-Hikari now able to automaticlly download NBT-API from Modrinth on Spigot server, this improves the out-of-the-box experience for users of Spigot.
Bug Fixes
- The
[Preview Item]
button doesn't work and only print the command help. - Shop creation failure when user trying make a shop with item that name contains Emoji due database tables is
utf8
chatset rather thanutf8mb4
. Thanks 针织薄外套 (kioproject) and Clxdy (clxdywindows) report it.- By install this update, your quickshop tables in database will automaticlly convert to
utf8mb4
charset.
- By install this update, your quickshop tables in database will automaticlly convert to
- The empty signs won't be removed after shop creation failed. Thanks 针织薄外套 (kioproject) report it.
- [ADDON] DiscordSRV addon doesn't work when sending embed messages. Thanks @Subdevell and Maoyue report it.
- The purchase log won't send and out-of-stock log will send twich when a selling shop run out of stock. Thanks 针织薄外套 (kioproject) report it.
- [ADDON] Fixed Velocity compatibility module doesn't work. Thanks @Q2297045667 (Missing_Love) report it.
4.x to 5.x is a major breaking update, read the 5.x main-changelog here before upgrading from 4.x to 5.
New Feature
- New
/qs debug set-property <key-value>
sub command to dynamically change the JVM property.- For safety, you're only able to change the quickshop related properties.
Improved
- Improved background debug logger
- From
0.1329ms
per record to0.0061ms
per record by moving cost tasks into a async executor, it improved the performance on busy server when there have LOTS of debug logs on server main thread. - By set
-Dquickshop-hikari-disable-debug-logger=true
will able to disable the debug logger's stack trace completely when you running a huge server, but remember you will need re-enable it before reporting the bugs/errors to us.
- From
5.0.0.1
A small fix for multiple NPE on the server who set tax-account
to empty string.
5.0.0.0 - Cyno
5.0.0.0 is a BREAKING UPDATE with ton of BREAKING CHANGES, and will kill most of 3rd-party addons.
It may also lead to data corrupt, world corrupt, MAKE SURE YOU CREATE A FULL BACKUP BEFORE INSTALL THE UPDATE.
Latest LTS build: 4.2.2.12
September is coming, welcome to the new "Cyno" update!
Cyno update mainly makes drastic changes to the underlying code of QuickShop-Hikari in order to solve some performance issues and historical problems.
New Features
- System account support (QUser)
- QuickShop-Hikari now able to handle the system account (username based)
- To specify a system account, you need to add square brackets around the account name:
[SystemAccount]
- This feature is useful when economy plugins handle player-based UUIDs separately from system-based Usernames.
- The system account will not trigger the query from Username to UUID, and the standard Bukkit OfflinePlayer method will be used to calculate UUID
- All player-related API and internal calls are replaced with QUser.
- Player related inputs now support UUID, username, username based on system account
- For example:
/qs setowner Ghost_chu
(Username)/qs setowner 7351a6fd-a09a-4c2d-aae9-86252d079a4c
(UUID)/qs setowner [SystemAccount]
(Username based System account)
- The store information panel now provides store owner information viewing.
- Including UUID, Username, Display As. Both support for Virtual Account (System Account) and Real Player Account
Real Exists Player | Virtual System Account |
---|---|
Changes
- Shop Purger's return-fee settings has been removed (Now keeps the same logic as normal user delete).
- Name lookup in async settings has been removed, almost all name lookup are async now.
/qs
nolonger as main-command, but/quickshop
instead./qs
still presents in config.yml as a alias of/quickshop
.
Improves & Optimized
- Improved shop register logic to relieve the shop loading issue on modded servers.
- [ADDON] Prevent un-necessary chunks loading during handle the island delete.
- [ADDON] Handle the island delete chunks operations in async if user using Paper or Paper's fork server software.
- Improved store loading performance, it can save lots of time on both large network and small server.
- Improved symlink resolution performance for InventoryWrapper.
- Improved uuid2Name or name2Uuid lookups in a number of locations, they will now be handled in an asynchronous thread to avoid network IO on the ServerThread.
- Inventory check alert now included into i18n system and translatable.
Bug Fixes
- Fixed the URL in update notification are non-clickable.
- [ADDON] Fix multiple addons's permission override doesn't work.
- Fixed
/qs setowner
result may won't save into database. - Fixed store information panel missing the centered enchantments title for enchanted items.
New Compatibility Modules
EcoEnchants
This addon added EcoEnchants support for:
- Display the EcoEnchants's enchantments name on sign and shop info panel.
- Display the EcoEnchants's enchantments in the hover item previewing.
Click Here To EcoEnchants Addon Wiki
Reforges
This addon added Reforges support for:
- Display the Reforges's reforges on shop info panel
Click Here To Reforges Addon Wiki
API Changes
- Added ItemPreviewComponentPopulateEvent
- Added ItemPreviewComponentPrePopulateEvent
- Removed outdated API endpoints.
- Refactored ShopManager API & Shops API
Dependencies
The following Maven dependencies were updated.
- BlueMapAPI
- Plan
- BentoBox
- Towny
- LandsAPI
- Apache Commons Lang3
- WorldGuard
- EssentialsX
- BungeeCord-API
First time contributor
@tdiant
5.0.0.0 - Cyno
5.0.0.0 is a BREAKING UPDATE with ton of BREAKING CHANGES, and will kill most of 3rd-party addons.
It may also lead to data corrupt, world corrupt, MAKE SURE YOU CREATE A FULL BACKUP BEFORE INSTALL THE UPDATE.
Downgrade without backup is impossible
Latest LTS build: 4.2.2.12
September is coming, welcome to the new "Cyno" update!
Cyno update mainly makes drastic changes to the underlying code of QuickShop-Hikari in order to solve some performance issues and historical problems.
New Features
- System account support (QUser)
- QuickShop-Hikari now able to handle the system account (username based)
- To specify a system account, you need to add square brackets around the account name:
[SystemAccount]
- This feature is useful when economy plugins handle player-based UUIDs separately from system-based Usernames.
- The system account will not trigger the query from Username to UUID, and the standard Bukkit OfflinePlayer method will be used to calculate UUID
- All player-related API and internal calls are replaced with QUser.
- Player related inputs now support UUID, username, username based on system account
- For example:
/qs setowner Ghost_chu
(Username)/qs setowner 7351a6fd-a09a-4c2d-aae9-86252d079a4c
(UUID)/qs setowner [SystemAccount]
(Username based System account)
- The store information panel now provides store owner information viewing.
- Including UUID, Username, Display As. Both support for Virtual Account (System Account) and Real Player Account
Real Exists Player | Virtual System Account |
---|---|
Changes
- Shop Purger's return-fee settings has been removed (Now keeps the same logic as normal user delete).
- Name lookup in async settings has been removed, almost all name lookup are async now.
/qs
nolonger as main-command, but/quickshop
instead./qs
still presents in config.yml as a alias of/quickshop
.
Improves & Optimized
- Improved shop register logic to relieve the shop loading issue on modded servers.
- [ADDON] Prevent un-necessary chunks loading during handle the island delete.
- [ADDON] Handle the island delete chunks operations in async if user using Paper or Paper's fork server software.
- Improved store loading performance, it can save lots of time on both large network and small server.
- Improved symlink resolution performance for InventoryWrapper.
- Improved uuid2Name or name2Uuid lookups in a number of locations, they will now be handled in an asynchronous thread to avoid network IO on the ServerThread.
- Inventory check alert now included into i18n system and translatable.
Bug Fixes
- Fixed the URL in update notification are non-clickable.
- [ADDON] Fix multiple addons's permission override doesn't work.
- Fixed
/qs setowner
result may won't save into database. - Fixed store information panel missing the centered enchantments title for enchanted items.
New Compatibility Modules
EcoEnchants
This addon added EcoEnchants support for:
- Display the EcoEnchants's enchantments name on sign and shop info panel.
- Display the EcoEnchants's enchantments in the hover item previewing.
Click Here To EcoEnchants Addon Wiki
Reforges
This addon added Reforges support for:
- Display the Reforges's reforges on shop info panel
Click Here To Reforges Addon Wiki
API Changes
- Added ItemPreviewComponentPopulateEvent
- Added ItemPreviewComponentPrePopulateEvent
- Removed outdated API endpoints.
- Refactored ShopManager API & Shops API
Dependencies
The following Maven dependencies were updated.
- BlueMapAPI
- Plan
- BentoBox
- Towny
- LandsAPI
- Apache Commons Lang3
- WorldGuard
- EssentialsX
- BungeeCord-API
First time contributor
@tdiant
Bug Fixes
- Fixes an issue where the maximum number of caps is miscalculated when a player has multiple QuickShop Ranks permission nodes at the same time
This should be the last one revision of 4.2.2, it is stable enough and I will focus on adding new features in 4.3/4.2.3, stay tuned!
Bug Fixes
- Fixed plugin NPE when platform module failed to load or failure in boot phase.
- Fixed RankLimiter do not use default values when default value larger.
- Fixed that quickshop preventing player to editing the non-shop sign that attached on a shop.
- Fixed ShopClickEvent never fired.
Changes
Addon-Limited
- Displays the player's remaining quota when the player interacts with a restricted shop.
Changes
- Dropped 1.18.0, 1.18.1 supports, now we only support 1.18.2 and higher versions.
Bug Fixes
- Fixed
shop.disable-quick-create
doesn't work at all. - Fixed Material translation key doesn't process by config translation keys mapper.
- Fixed the ray-tracing for putting the shop information sign incorrect that may lead the shop sign will put in wrong location if the player using Bedrock Edition.
- Fixed Player are able edit the shop sign on Minecraft 1.20 and higher.
Bug Fixes
- Fixed the Sign had no texts on Spigot 1.20 platform.
- Fixed name resolver may took too much time on every startup, now it will cache the failure requests and save the time in next startup.
- Fixed
/qs item
won't trigger the display update even the shop item already changed. It caused the display desync. - Fixed LocaleLib initialization failure.
- Fixed enchantment, material client-side translation doesn't work at all.
Bug Fixes
- Fixed the Sign had no texts on Spigot 1.20 platform.
- Fixed name resolver may took too much time on every startup, now it will cache the failure requests and save the time in next startup.
- Fixed
/qs item
won't trigger the display update even the shop item already changed. It caused the display desync.
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 buy
use wrong permission, it now following thequickshop.create.control
as same as/qs sell
behavior. - QuickShop Paste Generator use incorrect type
Permission
forDebug
type logs generator.
Flags
- New
ignoreProtocolLibEnableStatus
statup flag allow user disableProtocolLib enable status
check.