Skip to content

Releases: QuickShop-Community/QuickShop-Hikari

5.2.0.6

16 Nov 17:59
9635849
Compare
Choose a tag to compare

As always, we keep it updated with bug fixes and performance improvements.

New

  • -Dcom.ghostchu.quickshop.shop.ContainerShop.updateShopSignOnLoad debug startup flag was added, when it set to true, the shop will update their signs when shop enter the loaded state from unloaded state, This will result in lower performance, but will improve the update lag of the signs. Startup use only on servers that are confirmed to have this issue.
  • [ADDON] Reremake-Migrator now able to migrate QuickShopBan addon's data.
  • [ADDON] Reremake-Migrator now able to migrate QuickShop-Reremake's transaction logs into database.

Optimization

  • Reintroduced an optimized StackWalker API to improve the performance of the background logger.
    This contribution was submitted by @SirYwell. 👍

Changes

  • In new QuickShop-Hikari installations, transaction logs are now logged to the database by default instead of the qs.log file, and you can manually change the configuration file to restore the original behavior.

Bug Fixes

  • Fixed Inventory Holder isValid() check issue
  • Disabled the BlockState fetching optimization for the Paper platform, which seems to no longer be needed since the 1.16 update, when the speed of the BS API was significantly improved, and was causing inconsistent fetched state errors.
  • Fixed the issue where the display of some words in the store information board did not follow the language setting.
  • Fixed plugin crash when ProtocolLib not installed and display-type was set to VIRUAL_DISPLAYITEM.

Summary by CodeRabbit

  • Dependency Updates

    • Updated quickshop-hikari dependency across multiple modules.
    • Updated BlueMapAPI, Plan, ChestProtectAPI, EcoEnchants, LandsAPI, openinvapi, worldedit-bukkit, Reforges, towny, item-nbt-api-plugin, specialsource-maven-plugin, placeholderapi, EconomyCore, csvjdbc, slf4j-jdk14, commons-text, commons-compress, and various net.kyori artifacts to their latest versions.
  • New Features

    • Introduced new search functionality for transaction logs in the reremake-migrator module.
    • Added a new MockPlugin class for mocking plugin behavior.
    • Implemented a new ShopLogsMigrate class for migrating shop logs to a database.
  • Bug Fixes

    • Fixed null-safe comparison in griefprevention compatibility module.
  • Refactor

    • Simplified error handling in VirtualDisplayItemManager.
    • Streamlined isValid method in BukkitInventoryWrapper.
    • Enhanced double chest handling in BukkitInventoryWrapperManager.
    • Removed unnecessary asynchronous behavior in Util and Log classes.
    • Adjusted PerfMonitor to use Log.Caller directly.
  • Documentation, Style, Tests, Chores, Revert

    • No specific end-user facing changes noted in these categories.

5.2.0.5

14 Oct 16:37
1003b2f
Compare
Choose a tag to compare

This is a cumulative update to fix bug reports received since the last LTS release.

Compatibility

We have partnered with the developers of Mohist and worked on improving the stability of QuickShop-Hikari on Hybird Server.

In the latest Mohist 1.20.1/.2 you can run QuickShop-Hikari perfectly and QuickShop-Hikari protects its store containers from being accessed by other mods pipes or machines.

Also, in the latest version of Mohist 1.20.1/.2, QuickShop-Hikari is able to use most of the Mod containers as store containers.

Bug Fixes

  1. Fixed annoying NPE error when loading a store that is in an unloaded world during startup, althrough it won't cause any actual issues.
  2. [Addon] Fixed an issue where the item stack amount setting was not preserved for stores that migrated from Reremake.

Changes

  1. Disabling the H2 compatibility warning on Mohist will test H2 to work fine on Mohist.
  2. Added /quickshop debug reset-shop-caches subcommand to allow user purge all caches from memory to debugging the cache issues.

Privacy

To inform you of warnings about QuickShop-Hikari in accordance with our Privacy Transparency Policy.

We received a data breach alert from the Rollbar* cloud service informing us that our Access Token (post_server_items) had been compromised and a forced reset was performed on our affected Token, not only QuickShop-Hikari but also QuickShop-Reremake affected.
However, our Access Token (post_server_items) is distributed with Jar, so whether it was compromised or not doesn't affect us in any way - it's inherently public and we use it for public purposes. As a result, this forced reset caused the Rollbar to no longer be able to report bugs in older versions of QuickShop-Hikari, where we distributed the new Access Token (post_server_items).

We practice our privacy policy and therefore all submitted data is submitted in the minimal sample and anonymized. Your data is therefore not affected. Although no QuickShop-Hikari is actually affected, you can always disable the error log reporting feature if you want.

* Rollbar is a service used by QuickShop-Hikari AND QuickShop-Reremake that used for collecting error logs that generated by QuickShop plugin.
*This warning only affects developers who sign up for Rollbar (that's me), and based on current research, this warning has no effect on QuickShop users.

5.2.0.4-LTS

24 Sep 15:46
2ca69df
Compare
Choose a tag to compare

106065652_p0

Cheers! Catching up with the tail end of September, we're releasing the first of LTS build of Cyno before October rolls around.

An LTS release is a quality-proven version that we release every so often (usually for a longer period of time).
Long-term stable support releases are selected by observing user reports, logging in automated bug reporters, and manual testing.

The LTS version is suitable for operation in large networks and production environments. It is recommended that you upgrade.

Upgrade from previous LTS (4.2.2.12)

  1. Read the change log of 5.0.0.0 (Cyno), quick look at the major updates in version 5.x. You should also read the changelogs for all versions in between, if possible.
  2. Backup everyting including the databases and worlds.
  3. Upgrade QuickShop-Hikari and all Addons, Compacts, make sure they are the same version.
  4. Upgrade your NBTAPI to a appropriate version if you're on a Spigot server.
  5. Startup the server and check if everything is running correctly.

Tested under

  • Spigot 1.18.2 (EOL): CraftBukkit version 3498-Spigot-b081915-10ba1be (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT)
  • Paper 1.18.2 (EOL): Paper version git-Paper-388 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: fc9ee65 on ver/1.18.2)
  • Spigot 1.19.1 (EOL): CraftBukkit version 3563-Spigot-2183145-1e3bf58 (MC: 1.19.1) (Implementing API version 1.19.1-R0.1-SNAPSHOT)
  • Paper 1.19.1 (EOL): Paper version git-Paper-111 (MC: 1.19.1) (Implementing API version 1.19.1-R0.1-SNAPSHOT) (Git: 02831e3)
  • Spigot 1.19.2 (EOL): CraftBukkit version 3610-Spigot-6198b5a-19df23a (MC: 1.19.2) (Implementing API version 1.19.2-R0.1-SNAPSHOT)
  • Paper 1.19.2 (EOL): Paper version git-Paper-307 (MC: 1.19.2) (Implementing API version 1.19.2-R0.1-SNAPSHOT) (Git: 476ef25)
  • Spigot 1.19.3 (EOL): CraftBukkit version 3670-Spigot-454acb7-bd29f41 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT)
  • Paper 1.19.3 (EOL): Paper version git-Paper-448 (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT) (Git: 155aa36)
  • Spigot 1.19.4: CraftBukkit version 3763-Spigot-7d7b241-5a5e43e (MC: 1.19.4) (Implementing API version 1.19.4-R0.1-SNAPSHOT)
  • Paper 1.19.4: Paper version git-Paper-550 (MC: 1.19.4) (Implementing API version 1.19.4-R0.1-SNAPSHOT) (Git: 483368e on ver/1.19.4)
  • Spigot 1.20.1: CraftBukkit version 3871-Spigot-d2eba2c-3f9263b (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT)
  • Paper 1.20.1: Paper version git-Paper-196 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: 773dd72)
  • Spigot 1.20.2: CraftBukkit version 3877-Spigot-17ca32d-f070277 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT)
  • Paper 1.20.2: Paper version git-Paper-197 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT) (Git: e284bb1)

For non-1.20.x versions of the Spigot server, you may need to manually download the appropriate NBTAPI plugin.

Versions marked as End Of Life will no longer provide active technical support and we strongly recommend that you upgrade as soon as possible.

The migration script for Hikari-3.x has been removed, so if you are upgrading from Hikari-3.x, please download the last stable version of Hikari-3.x that supports Hikari-3.x to upgrade, and then upgrade to this LTS version.

Changes between 5.2.0.3 to 5.2.0.4

Bug Fixes

  • Fixed 1.18.2, 1.19.1, 1.19.2 compatibilities.

Privacy

We have always valued the privacy of our users, so to ensure our privacy transparency and your right to know, we have publicized changes to our data collection list.
The following statistical metrics have been added to the data collection list.

  • Research - ProtocolLib Version
    • We collect this so we can know the which one ProtocolLib is popular. ProtocolLib sometimes releases destructive updates, so we collect this metric to know the distribution of ProtocolLib versions among users and remove unused ProtocolLib workaround code to improve code maintainability and program performance.
  • Statistic - Server Software Build Version
    • Spigot and Paper always release updates during their version support cycles. Counting the server-side software versions used by users lets us know which builds are popular. And it allows us to be more aggressive with newly added APIs, This can improve code maintainability, stability and program performance.
  • Research - Geyser
    • We've released the display control addon for Geyser users, but we're ultimately undecided about a Geyser-specific update. The data collected from this research allows us to analyze the QuickShop-Hikari user base to check if Geyser or Floodgate is installed, and with the percentage of users who have the statistics, we will decide whether to add support for Geyser GUIs and the like. We also welcome your feedback on our Discord server.

5.2.0.3

24 Sep 03:59
a86ed9f
Compare
Choose a tag to compare

Bug Fixes

  • [ADDON] Fixed DiscordSRV Addon URL parsing exception.
  • [ADDON] Fixed DiscordSRV Addon Location Z always showing the the Y value.
  • [ADDON] Fixed DiscordSRV Addon displaying the item translation key instead of the item material name.
  • [ADDON] Fixed Reremake-Migrator unloading the Reremake from Async thread, it won't affect upgrade but an exception will thrown.

5.2.0.2

23 Sep 15:06
94da632
Compare
Choose a tag to compare

This build tested with Spigot server sofware CraftBukkit version 3877-Spigot-17ca32d-f070277 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT).

New Features

  • Introduced VirtualDisplayItem on MC 1.20.2 based on Spigot 1.20.2 and PLIB 1.20.2 Pull Request #2501.

    • This feature is built based on ProtocolLib PR snapshots, so the system may change and cause it to stop working when ProtocolLib is finally released.
    • To use the VDI system on 1.20.2, use the ProtocolLib build from PR #2501, which is available here.
  • [ADDON] Reremake-Migrator now able to migrate the translations from Reremake from MineDown syntax to MiniMessage syntax and also convert file format from JSON to YAML.

Deleted

  • Upgrade scripts for Hikari 3.x and earlier have been removed (both Database and Configurations), and users who are still using a version of Hikari 3.x will need to upgrade to 5.2.0.1, the last version that supported upgrade scripts for 3.x, before upgrading to a higher version.
    • This doesn't happen all the time, and the reason for removing them is that they were used to migrate from Reremake, but there are now better migration tools.

Bug Fixes

  • Fix incorrect initialization of Database Version metadata.
  • [ADDON] Fixed price restrict rules migration bug in Reremake-Migrator.

5.2.0.1

22 Sep 09:12
72d1633
Compare
Choose a tag to compare

This update brings the initial 1.20.2 update, this build tested with Spigot server sofware CraftBukkit version 3877-Spigot-17ca32d-f070277 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT).

New Features

  • [Hightlight] 1.20.2 initial support
    • This build is compatible with Spigot 1.20.2.
    • The compatibility of this build with Paper 1.20.2 is unknown, and Paper 1.20.2 has not been released at the time of this posting.
    • The compatibility of this build with VirtualDisplayItem with ProtocolLib on MC 1.20.2 is unknown, and ProtocolLib not released a version that compatiable with MC 1.20.2 at the time of this posting.
    • When they are released, we will test them as soon as possible and release fixes as soon as they are found to be unavailable.

Bug Fixes

  • If VirtualDisplayItem initialization failed, VDI was incorrectly and permanently disabled (even if the user installed ProtocolLib correctly afterwards), we fixed this issue and automatically re-enabled VDI support for all users.
    • QuickShop-Hikari will test VDI at startup and if it is not available, it will disable VDI for this server session.
  • Fixed text hover, click events, and translation strings not working on Spigot platforms due to Adventure versioning issues.
    • We correctly tuned Adventure's components and passed the Spigot 1.20.2 and Paper 1.20.1 test and made them available to all users in this build.
    • To address chat issues on Spigot, all messages are now converted from Adventure format to Spigot's BungeeChat format before they are about to be sent (on Spigot platform only).
  • Fixed NoSuchMethodError when using RealDisplayItem on some builds of Paper/Paper's forks.

5.2.0.0

21 Sep 12:11
08354b7
Compare
Choose a tag to compare

2023-09-21_19 55 36

As usual, we add more features to QuickShop-Hikari by releasing new versions, optimizing performance and fixing bugs. Sit back with a cup of tea and enjoy the new update!

New Features

  • [Experimental] Added the support for Arclight hybird server software.
    • Tested with Arclight version arclight-1.20.1-1.0.1-c3fc1d3 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) with mods TwilightForest and Create.
    • When running in Hybird Server Software, the H2 database is temporarily unavailable because it seems unstable and destroying the data. The MySQL must be used.
    • The Bukkit plugin does not prevent Forge Mods from manipulating blocks (In hybird server, Bukkit is a mod that running UNDER Forge), so Mods can bypass QuickShop's store protections unless they use fake players for permission checks.
    • This feature is experimental and at your own risk.
  • MySQL 8+ support
    • We added the MySQL 8+ parameters to the default configuration file and can now connect to MySQL 8+ databases without modifying the QuickShop or MySQL configuration.

Changes

  • The table shop_map's world field data length now extended to 255 for better handling modded server worlds.

Bug Fixes

  • The database upgrade script never runs.
  • The NBTAPI checks didn't runs properly on Spigot. It caused QuickShop-Hikari always repeat downloads NBTAPI.

5.1.2.1

20 Sep 14:29
3dd8968
Compare
Choose a tag to compare

Re-published because last update actually still using 5.1.1.1 code base.

Bug Fixes

  • Fixed the commands that need lookup username/uuid stuck on the users who migrated Reremake. (thanks Lunar (dr.lunar))

Changes

  • Rewrite PlayerFinder
    • We've done a major rewrite of PlayerFinder to solve problems and improve performance.
    • Now when the plugin performs a correlation query for a specific username or UUID, if any other part is requesting a correlation query for the same username or UUID, the two query requests will be merged into a single task, which helps to remove duplicated query tasks and minimize the number of unnecessary queries, which helps to alleviate the pressure on the database and reduce the consumption of Mojang API request quota.
    • The maximum execution time for username-to-UUID queries is now reduced from 1 day to 30 seconds to avoid unlimited query task stacking.
    • If the query fails, the username is used to generate a UUID via the Bukkit standard offline player UUID algorithm.
    • By default, the results of successful query requests are now cached in QuickShop-Hikari's database to be optimized for the next query.
    • It is now possible to correctly preheat the PlayerFinder cache from usercache.json, which helps optimize queries and improve cache hit rates.
    • Primary and secondary task executors were introduced, primarily for tasks that are short, small, but require a quick response - such as commands.
      Secondary task executors are used primarily for long, large numbers of tasks that do not require a fast response - such as cache baking.
      The cache baking task should now no longer block commands.
    • Added a new debug subcommand to PlayerFinder, which now allows you to query the primary and secondary ExecuteService's in-queue task stacking and output its specific information. By attaching the reset parameter, you can force the interruption of all outstanding queries and reset the queue.
    • Added new metrics to Paste, you can now view UUID/username cache hits rate via Paste.

5.1.2.0

20 Sep 14:16
ebd59d1
Compare
Choose a tag to compare

Bug Fixes

  • Fixed the commands that need lookup username/uuid stuck on the users who migrated Reremake. (thanks Lunar (dr.lunar))

Changes

  • Rewrite PlayerFinder
    • We've done a major rewrite of PlayerFinder to solve problems and improve performance.
    • Now when the plugin performs a correlation query for a specific username or UUID, if any other part is requesting a correlation query for the same username or UUID, the two query requests will be merged into a single task, which helps to remove duplicated query tasks and minimize the number of unnecessary queries, which helps to alleviate the pressure on the database and reduce the consumption of Mojang API request quota.
    • The maximum execution time for username-to-UUID queries is now reduced from 1 day to 30 seconds to avoid unlimited query task stacking.
    • If the query fails, the username is used to generate a UUID via the Bukkit standard offline player UUID algorithm.
    • By default, the results of successful query requests are now cached in QuickShop-Hikari's database to be optimized for the next query.
    • It is now possible to correctly preheat the PlayerFinder cache from usercache.json, which helps optimize queries and improve cache hit rates.
    • Primary and secondary task executors were introduced, primarily for tasks that are short, small, but require a quick response - such as commands.
      Secondary task executors are used primarily for long, large numbers of tasks that do not require a fast response - such as cache baking.
      The cache baking task should now no longer block commands.
    • Added a new debug subcommand to PlayerFinder, which now allows you to query the primary and secondary ExecuteService's in-queue task stacking and output its specific information. By attaching the reset parameter, you can force the interruption of all outstanding queries and reset the queue.
    • Added new metrics to Paste, you can now view UUID/username cache hits rate via Paste.

5.1.1.1

19 Sep 14:46
ebd59d1
Compare
Choose a tag to compare

Bug Fixes

  1. Fixed QUserImpl NullPointerException when player purcahing a converted shop.