All Mods Resource Packs Data Packs Shaders Modpacks Plugins
QuickShop-Hikari

QuickShop-Hikari

by creatorfromhell • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions


center banner

对于不方便使用 Discord 或 Github Issue Tracker 的用户,也可在 QQ 社区群内 966701484 内寻求热心社区人员的帮助

We have documents now! Finally!

Features

  • Easy to use, simply click and type price to create the shops.
  • NBT Data, Enchantment, Tool Damage, Potion, and Mob Egg supports.
  • Dynamically switch the display language according to the client language, internationalization friendly.
  • Unlimited store support.
  • Blacklist support & bypass permissions.
  • Shops that buy and sell items in a double-chest.
  • UUID support (of course)
  • A cool item preview both in chat and GUI.
  • Chat Control Panel to change the settings of your shop. Just click to modify everything.
  • World/region protection plugins support, and lots of compatibility modules can be downloaded.
  • ProtocolLib/PacketEvents based Virtual DisplayItem (better for performance) support.
  • Multi-currency support: Use different currencies in shops from any economy that supports VaultUnlocked. We also support Vault by default!
  • Tax and ongoing fee support!
  • Hide commands from help if the player had no permission.
  • Sign header color and clear description on the info sign for different shops status.
  • MiniMessage support, create fancy messages as you want.
  • H2 (local) or MySQL (remote) support.
  • Advanced transaction mechanism, rollback any Inventory/Economy operation when it failed to execute to prevent player dupes.
  • InventoryWrapper API offers custom inventory ability for developers.
  • Advanced Event Bus to allow user block protection check event transfer to a specific plugin.
  • Fast cache layer, handle more than 1k+ shops without any lag! (Require ProtocolLib installed)
  • Per-shop permission management.
  • Shop benefits between shop owner and other players!
  • Much much more! Cannot put them all in there!

Or with addons to add more features

  • Discount code
  • Plan metrics
  • DiscordSRV notifications

How to Install

QuickShop requires Minecraft 1.20+ to be run. Any versions below 1.20 were unsupported.

  • Install Vault and an economy plugin supported by Vault.
  • If you are using multi-currency, you will need an economy plugin that supports VaultUnlocked.
  • Install optional ProtocolLib or PacketEvents which can greatly improve QuickShop performance.
  • Spigot is no longer supported in recent updates. We recommend switching to Paper or its forks to ensure optimal performance.
  • Download QuickShop jar and put it in your plugins folder.
  • Download other compatibility modules or add-ons if you need them.
    • Only install compatibility modules that you need, they're not open box to use, you need configure them.
    • Most cases, Hikari can handle region protections by itself, you don't need them.
  • Turn on the server and here we go!

Commands

Note: Most features can be accessed by control panel or interaction with the shop, in most cases, you don't need those commands.

  • /quickshop unlimited
    Makes your Shop buy/sell Items in unlimited quantity or limited
  • /quickshop setowner
    Change the Shop Owner.
  • /quickshop buy
    Change the shop to buying items.
  • /quickshop sell
    Change the shop to selling items.
  • /quickshop price
    Change the buy/sell price of the item.
  • /quickshop clean
    Removes any loaded shop that doesn't have any items in stock.
  • /quickshop find
    Find the nearest shop that sells items that start with the provided text. E.g. /quickshop find dia will find the nearest shop that buys/sells diamonds.
  • /quickshop fetchmessage
    Fetch shop message manually from the database.
  • /quickshop info
    Show QuickShop information.
  • /quickshop debug
    Enable/Disable Debug Mode.
  • /quickshop create [item]
    Command to create the shop with the item in hand or specified.
  • /quickshop currency
    Command to specified the currency the shop using.
    The Economy plugin must support the Multi-Currency feature and be supported by QuickShop.
  • /quickshop supercreate
    Create a shop while bypassing any protection checks.
  • /quickshop paste
    Collects useful information and pastes it on Pastebin.
  • /quickshop staff
    Manage staff in your shop.
  • /quickshop staff add
    Add a player as staff to your shop.
  • /quickshop staff del
    Remove a player as staff from your shop.
  • /quickshop staff clear
    Remove all staff members from your shop.
  • /quickshop staff list
    Show all current staff members of your shop.
  • /quickshop cleanghost
    Remove all broken shops.
  • /quickshop export
    Export all shop data to a zip.
    This command is CONSOLE ONLY!
  • /quickshop recovery
    Recover all shops from a TXT file or Paste.
    This command is CONSOLE ONLY and may remove/override any existing shop on your Server! Make a backup first and try it with a clean database!
  • /quickshop size
    Change the bulk size.
    Requires the "allow-stacks" option in the config to be enabled for the command to work.
  • /quickshop purge
    Purge the old shops, for more information please check the purge option in config.yml
    Requires the "purge" option in the config to be enabled for the command to work.
  • /quickshop transfer
    Transfer ALL shops from one player to another.
  • /quickshop item
    Change the item of the shop.
    Requires the "allow-stacks" option in the config to be enabled for the command to work.
  • /quickshop removeworld
    Remove all shops in a specific world.
  • /quickshop name
    Naming or un-naming a shop with a specific name.
  • /quickshop permission
    Tweaking the per-shop permissions, or add/remove player into/from specific groups.
  • /quickshop database
    View and manage QuickShop-Hikari status.
  • /quickshop benefit
    View and manage yout shop benefits.

    Aliases:

  • /shop
  • /qs
  • /chestshop
  • /cshop (customize the aliases in config.yml)

Permissions

If you're a lazy owner, simply give the player quickshop.player permission node which contains all needs to let the player create and use quick shops.

But if you're a pro owner, there is also a detailed list to allow control of everything:

Detailed Permissions

Player Permissions:

  • quickshop.use
    Required for any QuickShop Actions.
  • quickshop.create.sell
    Required to make a shop (Sell-Mode)
  • quickshop.create.buy
    Required to make a shop (Buy-Mode) or to switch from Sell to Buy-Mode.
  • quickshop.create.stacks
    Required to allow selling items in stacks.
  • quickshop.create.changeitem
    Allows a player to change a shop's item.
  • quickshop.create.changeamount
    Allows a player to change the item amount per buy/sell.
  • quickshop.create.changeprice
    Allows a player to change the buy/sell price of their shops.
  • quickshop.create.double
    Allows a player to create a double chest shop.
  • quickshop.create.cmd
    Required to have access to the /quickshop create command.
    This command may bypass certain protections of not-supported protection plugins!
  • quickshop.transfer
    Required to transfer all owned shops to another player.
  • quickshop.find
    Required to use /quickshop find <item>
  • quickshop.fetchmessage
    Required to use /quickshop fetchmessage
  • quickshop.staff
    Required to use /quickshop staff and all its subcommands.
  • quickshop.preview
    Required to use the GUI Item Preview.
  • quickshop.currency
    Required to use the /quickshop currency <currency>
  • quickshop.shopnaming
    Required to use the /quickshop name <name>
  • quickshop.permission
    Required to use the /quickshop permission
  • quickshop.benefit
    Required to use the /quickshop benefit

    Admin Permissions:

  • quickshop.unlimited
    Required to use /quickshop unlimited
  • quickshop.alwayscounting
    Required to use /quickshop alwayscounting
  • quickshop.setowner
    Required to use /quickshop setowner
  • quickshop.other.destroy
    Allows the player to remove/destroy the shops of others.
  • quickshop.other.open
    Allows the player to open chests of other shops and take/put items from/into it.
  • quickshop.other.price
    Allows the player to change the price of someone's shop.
  • quickshop.transfer.other
    Required to transfer ALL shops of someone to another player.
  • quickshop.refill
    Allows the player to refill their shops using a command, essentially making the shop having unlimited items.
  • quickshop.empty
    Allows the player to clear the shop's inventory.
  • quickshop.clean
    Allows the purging/removal of any Shops that have no items in stock.
  • quickshop.bypass.
    Required to sell blacklisted items (E.g. bedrock).
  • quickshop.price.restriction.bypass.
    Required to bypass a specific price limit rule.
  • quickshop.alerts
    Required to receive notifications about possible cheating, plugin warnings and updates.
  • quickshop.info
    Required to use /quickshop info
  • quickshop.debug
    Required to use /quickshop debug
  • quickshop.paste
    Required to use /quickshop paste
  • quickshop.purge
    Required to use /quickshop purge
  • quickshop.create.admin
    Required to bypass any protection-checks while creating a shop using /quickshop supercreate
  • quickshop.tax
    Permission to bypass the tax fee.
  • quickshop.tax.bypassunlimited
    Permission to bypass the tax fee but only in the unlimited shop.
  • quickshop.cleanghost
    Permission to remove any broken shop using /quickshop cleanghost
  • quickshop.export
    Permission to use /quickshop export
    This permission is pointless since the command is console only.
  • quickshop.recovery
    Permission to use /quickshop recovery This permission is pointless since the command is console only.
  • quickshop.removeworld
    Permission to remove all shops in a world using /quickshop removeworld
  • quickshop.other.changeitem
    Allows the player to change the item of someone's shop.
  • quickshop.other.changeamount
    Allows the player to change the bulk amount of someone's shop.
  • quickshop.other.shopnaming
    Allows the player to change the name of someone's shop.
  • quickshop.bypass.namefee
    Allows the player to bypass the fee of shop naming.
  • quickshop.database
    Permission to use /quickshop database

How to create a shop

To create a shop, place down a chest and left-click it with the number of items you want to sell. For example: If I want to sell 16 diamonds will I need to hold 16 diamonds in my hand and left-click the chest with it. (Need allow-stacks: true and permission).

You will then be prompted to type in the chat, how much you would like to sell this item for.

Note: You may encounter issues with the chat system if you're on a BungeeCord network that utilizes a global chat plugin like BungeeChat. In such a case will you need to use commands to create a shop!

After you completed those steps should an item be displayed on top (Can be toggled off in the configuration) and a sign with info be placed on the side of the chest. A Shop may not be created if there is no space around the chest to place down a sign.

How to buy/sell Items

To buy or sell an Item from/to a Shop will you need to left-click the sign. You will then be prompted to write the amount you want to buy/sell in chat.

Whether a shop sells or buys items depends on the displayed info on the sign.

Advanced Features

Item Preview GUI

Preview the item you will purchase before actual purchase to avoid scam!

Shop Control Panel

Shop Control Panel allows tweaks to your shop with one click, no command needs!

Shop Staff

Shop owner can able to managing shop staff by using the command /quickshop staff <add/del/list> <player>, which allow shop staff to access your shop to manage the stock.

Ender Chest Inventory Linkage

Install OpenInv and openinv compatibility module and you will be able to use /quickshop echest to link your quick shop to your ender chest inventory! So all your echest shops can share with your ender chest inventory!

Rules-Based Price Limiter

Create rules to limit shops' prices with specific materials!

Translation OTA & Override system

Unlike other plugins, QuickShop uses CrowdinOTA technology to update our translation over the air. You can always enjoy the latest translations. All translations will keep updated with the cloud. If you need to customize the translation, you can follow our guide to use the override customize system!

Shop Purger

Purge shops that owner no longer active or banned! Our compatibility modules also offer purge player shops while it leave teams/islands/lands.

Interaction Controller & Direct Trade

Custom the click behavior through interaction.yml! You can sell or buy 1 or all things directly by sneaking clicking (or any behavior you configured).

Item Stacking

Enable the allow-stack option in config.yml, then you can create a stacking shop by holding more than one item in hand. So players must buy items that are multiples of their holding.

Per shop permission management

Have you ever considered putting another player in full charge of your shop? Or just ban a player to avoid him purchase your shop? You can do this now with per shop permission management.

Compatibility Modules

QuickShop-Hikari officially provides some plugins compatibility modules to make them work more closely with QuickShop, here is a list that we currently support:

  • AdvancedRegionMarket (Remove shops when region reset)
  • BentoBox (Remove shops while the member was kicked out of the team)
  • Clearlag (Prevent clear the QuickShop displays if you hadn't installed ProtocolLib)
  • GriefPrevention (Remove shops on untrusted, unclaimed, expired, resized, etc.)
  • Lands (Remove shops while member leaves)
  • NoCheatPlus (anti-cheat compatibility)
  • OpenInv (Offers a command /quickshop echest to link with your EnderChest)
  • PlotSquared (Remove shops when a player is untrusted)
  • Towny (Remove shops while resident left or plot clear/destroyed; Taxes go town bank account etc.)
  • Residence (Region creation/purchase control.)
  • WorldEdit (Remove shops while blocks removed by WorldEdit)
  • WorldGuard (Register flags to control creates and trades in allowed regions, you usually don't need this)
  • SuperiorSkyblock (Remove shops when a player kicked, un co-op, island reset etc.)
  • EcoEnchants (Show EcoEnchants's enchantments)
  • Reforges (Show Reforges stuff in preview item GUI)

Enhanced Addons

ShopSearch by Ronsane

Adds a /finditem command in game for searching through all the shops on the server. [Download]

DiscordSRV

Forward in-game notifactions to Discord EmbedMessage and DM players.

Plan

Showcase your server recent QuickShop-Hikari activities like purchases and shops list.

Discount

Add discount codes to your QuickShop-Hikari server with custom name, rate, range, expired time and price threshold.

Known Incompatible Plugins

Some plugins may not work together with QuickShop and there is little we can do on our side to fix this.

  • Pretty much any BungeeCord Chat plugin.
    To solve the BungeeCord Chat conflicting, download and install Compat-BungeeCord compatibility module under versions.
  • Plugins handling BlockBreakEvents
    If you are a server administrator (with quickshop.alert privileges), you will receive an admin-only message instructing you how to configure the filter.
    Or you can directly disable the protection-checks, but it will allow players to create shops everywhere!
  • ChatControl Pro/Red You can use /quickshop amount <amount> to set the price instead.

Help us translate QuickShop!

You can help us to translate QuickShop into as many languages as possible! Crowdin
You can find the currently worked on translations over at Crowdin: https://crowdin.com/project/qs-hikari

Can't find your language? Open an issue on Issue Tracker!

FAQ

Q: Can I create a shop that sells AND buys items?
A: No. Each shop can only sell or buy but not both at once. You can however use a double-chest to have two shops. One buying and one selling the item.

Q: Can I use item currency like diamonds?
A: No. We won't add it. But you can choose some economy plugins that allows you to use item currency.

Q: The plugin doesn't respond when creating a shop. Is it broken?
A: Some plugins may cancel the Shop-creation. Most commonly is this the case with protection plugins. You can disable the shop.protection-checking in the config to bypass this.

Q: How can I create a Shop selling stacks?
A: To create such a shop, follow these steps:

  1. Set "allow-stacks" to true in the config.yml and reload the plugin.
  2. Give the player (Yourself) the permission quickshop.create.stacks
  3. Hold the number of items to buy/sell and create the shop as normal.

Q: Can I create a shop that bypasses the default vanilla stack-size?
A: Yes. Enable the custom-item-stacksize option in the config.yml and reload the plugin. Afterward, can you use /quickshop stack

Q: My shop was broken/denied by XXX non-protection plugin. Why?
A: QuickShop creates a fake BlockBreakEvent to check if you can build in that area. Some plugins may interfere with this event by canceling it. Try Use protection listener filter to fix it.

Q: How can I migrate from H2 to MySQL, MariaDB (or vice-versa)?
A: See Docs

Q: The plugin is giving a NoDefClassFound/NoMethodFound error in the console, why?
A: This may be caused either by odd plugins that QuickShop does (not) support or by having a damaged/corrupted jar of QuickShop. Try to update the plugin and also test it with ONLY QuickShop installed. If the issue persists, report it to us on GitHub!

Q: How can I change or delete some messages?
A: Edit the messages in your message.json file. To remove a message, just change its content to an empty String ("").

Q: Can you add support for plugin X?
A: Maybe. Please open an issue on our GitHub for this.

Q: It cannot load on 1.7/1.8/1.9/1.10/1.11/1.12/1.13/1.14/1.15/1.16/1.17/1.18/1.19.
A: See "Tested Minecraft Versions", latest version only supports 1.20 and above.

Migrate from QuickShop-Reremake

QuickShop-Hikari is different from Reremake and data are not compatible with each other. Hikari offers a converter that allows you to convert the data from Reremake to Hikari.

https://quickshop-community.github.io/QuickShop-Hikari-Documents/docs/addon/reremake-migrator

Bug Reports

Github Issue Tracker

Supports

Discord Server

User Documentation

Documentation Link

Developer API

Javadoc can be download use Maven or checked there.

Can I repost/reprint this plugin to xxx like mcbbs etc?

We allow you to repost this plugin for free in other places as long as you follow two basic rules:

  • Get prior approval from a developer.
  • Keep the link to the original resource (This one) and the source code link.
  • Don't remove the author's name or claim that are the original authors.
  • For MineBBS reposters: This resource is currently on hold pending a decision, please do not repost without authorization at MineBBS.

Metrics

bStats

Metrics / Telemetry Disclosure

QuickShop-Hikari collects anonymous or pseudonymous usage statistics and research metrics about the Minecraft server environment in which the plugin is running.

These metrics are used to understand how QuickShop-Hikari is deployed, prioritize compatibility work and features, improve performance, remove obsolete compatibility code, and guide future development.

Metrics collection is enabled by default, but server owners can opt out.

What may be collected

Depending on the QuickShop-Hikari version, enabled features, installed integrations, and metrics provider, collected metrics may include:

  • Minecraft server software and build/version information
  • QuickShop-Hikari build/publisher information
  • Database implementation/type
  • Economy implementation/type
  • Item matcher implementation
  • Item display implementation
  • Background debug logger status
  • Number of QuickShop shops hosted by the server
  • Number of QuickShop tags hosted by the server
  • Whether certain QuickShop features, such as Item Stacking Shop, are in use
  • Installed QuickShop addons and compatibility/integration modules, including third-party integrations detected by QuickShop
  • ProtocolLib version, when ProtocolLib is installed
  • PacketEvents version, when PacketEvents is installed
  • Whether Geyser/Floodgate-related functionality is detected
  • Configured protection-listener blacklist entries
  • Configured QuickShop command aliases
  • Other comparable technical, compatibility, feature-usage, and aggregate statistics documented by QuickShop-Hikari

The exact set of metrics may change between QuickShop-Hikari releases as features and compatibility requirements change.

Why these metrics are collected

Statistics and research metrics are used for purposes such as:

  • Determining which database, economy, item-matching, display, and server implementations are most commonly used
  • Understanding the scale of QuickShop installations, including shop and tag counts, to guide performance and caching improvements
  • Determining whether experimental or optional features should become defaults
  • Understanding which third-party integrations and QuickShop addons are commonly used
  • Identifying compatibility code that is still needed for libraries such as ProtocolLib and PacketEvents
  • Prioritizing support for integrations such as Geyser
  • Improving default configuration values and command aliases
  • Identifying QuickShop builds/forks through their declared publisher information
  • Improving maintainability, compatibility, stability, and performance

Metrics services

QuickShop-Hikari may use external metrics services, including bStats, to process statistics.

Use of an external metrics provider means that the server running QuickShop-Hikari makes network requests to infrastructure operated by that provider. Information received by the provider may therefore also be subject to the provider's own privacy practices.

QuickShop-Hikari respects the global bStats configuration. If bStats has been disabled globally on the Minecraft server, QuickShop-Hikari will not submit metrics through bStats.

Opting out

Server owners can disable QuickShop-Hikari's metrics/research categories through the plugin's privacy configuration.

For example:

privacy:
  type:
    STATISTIC: false
    RESEARCH: false

Server owners may also disable bStats globally through bStats' own configuration.

Disabling metrics prevents future collection/submission through the disabled mechanism. It does not automatically delete information that was previously submitted to an external metrics provider.

For the current privacy controls and additional information, see the QuickShop-Hikari Privacy documentation.

External Service Disclosure — Crowdin OTA

QuickShop-Hikari can communicate with an external translation service to automatically retrieve updated localization files.

This functionality is called Crowdin OTA (Over-the-Air localization) and is enabled by default. Server owners can opt out.

What Crowdin OTA does

QuickShop-Hikari supports multiple languages, with translations maintained by contributors through Crowdin.

When Crowdin OTA is enabled, QuickShop-Hikari may make outbound network requests to the configured QuickShop-Hikari/Crowdin OTA translation service to retrieve current translation resources.

This allows translations and localization fixes to be delivered without requiring a new QuickShop-Hikari release or manual installation of updated language files.

Because this feature communicates with an external server, the operator of that service may receive information normally associated with an HTTP/network request, such as the requesting server's IP address and other network/protocol metadata.

Crowdin OTA is used to retrieve localization resources; it is separate from QuickShop-Hikari's metrics/telemetry functionality.

Opting out

Crowdin OTA can be disabled by the server owner.

On current QuickShop-Hikari versions, set the following in config.yml:

use-crowdin-ota: false

When Crowdin OTA is disabled, QuickShop-Hikari will continue to operate using cached translations or translations bundled with the plugin. Automatic retrieval of updated translations from the OTA service will no longer occur.

Older QuickShop-Hikari versions used the following JVM startup property instead:

-Dcom.ghostchu.quickshop.localization.text.SimpleTextManager.enableCrowdinOTA=false

Self-hosting

Server owners who do not want to use the default OTA service may also configure QuickShop-Hikari to use a self-hosted translation server.

On current versions, this can be configured with:

crowdin-host: <YOUR_SERVER_ADDRESS>

Using a self-hosted endpoint transfers responsibility for the operation, logging, and privacy practices of that endpoint to its operator.

Summary

By default, QuickShop-Hikari may connect to an external OTA service to keep localization resources current.

Server owners who do not want QuickShop-Hikari to make these requests can disable Crowdin OTA without disabling the core plugin. Cached or bundled translations will be used instead.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3 26.2 26.1.x +2
Folia Paper Purpur
22h ago 1
26.2 26.1.x 1.21.x +1
Folia Paper Purpur
22h ago 1
26.2 26.1.x 1.21.x +1
Folia Paper Purpur
22h ago 1
26.2 26.1.x 1.21.x +1
Folia Paper Purpur
22h ago 1
26.1.x 1.21.x 1.20.x
Folia Paper Purpur
22h ago 1
1.21.x 1.20.x
Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x
Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x
Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x
Paper Purpur Spigot
22h ago 1
1.21 1.20.x 1.19.x +1
Paper Purpur Spigot
22h ago 1
1.21 1.20.x 1.19.x +1
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.20 1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
1.19.x 1.18.2
Paper Purpur Spigot
22h ago 1
[6.3.0.3] QuickShop-Hikari 6.3.0.3 by creatorfromhell on Oct 12, 2026
Download
# 6.3.0.3

## Major Changes

  • Significantly improved shop loading and server startup performance by filtering shops by world directly in SQL, adding missing database indexes, and properly parallelizing shop loading. (thanks to daniel-skopek)
  • Improved the internal shop manager with a direct runtime UUID-to-shop mapping, reducing expensive shop lookups and improving performance when retrieving loaded shops. (thanks to Warriorrrr)
  • Economy transactions are now recorded in log_transaction, and transaction history reading has been corrected. The existing transaction-metric.enable option now controls both purchase and transaction metric recording. (thanks to YuanYuanOwO)
  • Added support for 26.3.

## Minor Changes

  • Added SafariNet item matching support to MatcherPlus compatibility.
  • Updated PyroFishing item matching to account for item tiers.
  • Added OMINOUS_BOTTLE_AMPLIFIER to the default modern item matcher configuration so ominous bottles with different amplifier levels are treated as different items. (thanks to Warriorrrr)
  • Changed the default permissions for changing shop type and shop state to the administrator permission group.
  • Updated ItemsAdder compatibility dependencies and Maven repository configuration.
  • Updated the TNML dependency version.
  • Updated the release artifact collection Gradle task.
  • Updated Turkish translations through Crowdin.
  • Simplified Towny economy account handling by using direct UUIDs instead of legacy account conversion implementations.
  • Added a datetime timestamp in shop sell/buy feedback messages. Targetted for offline players receiving notifications when logging back in (thanks to Veyronity)

## Addons

### New Craft Engine Compatibility Module (created by YuanYuanOwO)
  • Fixes missing or wrong textures on shop display items for some CraftEngine items when using the virtual display mode.

## Fixes

  • Fixed incorrect tax calculations where tax rates could be treated as tax amounts and collected tax was not deposited into the configured tax account. (thanks to YuanYuanOwO)
  • Fixed the configured tax account not being properly resolved or created, ensuring the account being created matches the UUID used when depositing taxes. (thanks to YuanYuanOwO)
  • Fixed tax accounts potentially disappearing or failing to persist correctly after a server restart. (thanks to YuanYuanOwO)
  • Fixed database log and audit timestamps using inconsistent time zones. Database timestamps and exported CSV backups now use the server's local time consistently. (thanks to YuanYuanOwO)
  • Fixed database exports converting timestamps to UTC, which could cause timestamps to shift after export and recovery operations. (thanks to YuanYuanOwO)
  • Fixed transaction metric inserts continuing after a shop data ID lookup failed. (thanks to YuanYuanOwO)
  • Fixed /qs name permission checks not correctly verifying whether a player is authorized to rename a shop. (thanks to YuanYuanOwO)
  • Fixed shop transaction history not being viewable from the Control Panel UI. (thanks to YuanYuanOwO)
  • Fixed /qs history owned failing when the player does not currently own any shops. (thanks to YuanYuanOwO)
  • Fixed /qs limit set throwing an error when called without the required arguments. (thanks to YuanYuanOwO)
  • Fixed incorrect shop sorting when a player owns more than 11 shops. (thanks to YuanYuanOwO)
  • Fixed invalid page arguments causing NumberFormatException errors in the watch, favorite, avoid, and tag commands. (thanks to YuanYuanOwO)
  • Fixed Towny compatibility not consistently using direct UUIDs for town and nation economy accounts.
  • Fixed issue where QS stopped loading if packetevents or protocollib failed to load properly.
  • Fix attached shop lookup on block interaction (thanks to YuanYuanOwO)
  • Fix QUser#hashCode being inconsistent with equals (thanks to YuanYuanOwO)
  • Fixed an issue where display caches were lost after restarting the server (thanks to YuanYuanOwO)
  • Use Paper arm swing event listener (thanks to YuanYuanOwO)
  • Fixed SCS compatibility not using the latest API which moved the location of the Claim class.
  • Fix an issue where display entities used as shop blocks could still be interacted with in some cases. (thanks to YuanYuanOwO)

[6.3.0.2] QuickShop-Hikari 6.3.0.2 by creatorfromhell on Oct 12, 2026
Download
# 6.3.0.2

## Minor Changes
  • Added support for wildcard world blocking(thanks to bennycallanan)

``yaml
blacklist-world:
  • spawn_*
  • mini_game_*
`

  • Added the ability to have separate price restrictions for each shop type (thanks to maxcom1)
  • This includes a new scope configuration option as seen below.

`yaml
global: # These options are not controlled by enable; they are always enabled
selling:
min: 0.01 # Can be zero if you want players to create a free shop
max: 999999999999999999999999999.99 # Use -1 to disable the maximum price
buying:
min: 0.01
max: 999999999999999999999999999.99
# Scope used when a rule does not define its own scope.
# Allowed values: BUYING, SELLING, BUYING_AND_SELLING
default-rule-scope: BUYING_AND_SELLING
`
  • Permissions are now reset upon transferring shops to another player, this is configurable in the config.yml. This is defaulted to true.
`yaml
remove-perms-on-transfer: true
`

## Internal Changes
  • Removed lombox(thanks to wling-art)


## Developer Changes

Starting with **QuickShop-Hikari 6.3.0.2**, Maven artifacts are now published to a new **CodeMC** repository.

If your plugin depends on QuickShop-Hikari, update your build configuration to use the new repository:

https://repo.codemc.io/repository/ghost-chu/

The previous Maven repository is deprecated. **QuickShop-Hikari 6.3.0.2 and all future releases** will be published to the new CodeMC repository.

#### Maven (
pom.xml)

`xml
<repositories>
<repository>
<id>codemc-quickshop</id>
<url>https://repo.codemc.io/repository/ghost-chu/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.ghostchu</groupId>
<artifactId>quickshop-hikari</artifactId>
<version>6.3.0.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
`

#### Gradle (
build.gradle)

`groovy
repositories {
maven {
name = "CodeMCQuickShop"
url = uri("https://repo.codemc.io/repository/ghost-chu/")
}
}

dependencies {
compileOnly "com.ghostchu:quickshop-hikari:6.3.0.2"
}
`

#### Gradle Kotlin DSL (
build.gradle.kts)

`kotlin
repositories {
maven {
name = "CodeMCQuickShop"
url = uri("https://repo.codemc.io/repository/ghost-chu/")
}
}

dependencies {
compileOnly("com.ghostchu:quickshop-hikari:6.3.0.2")
}
``

> **Action required:** If you depend on **QuickShop-Hikari 6.3.0.2 or newer**, replace the previous QuickShop-Hikari Maven repository with the CodeMC repository above.


## Fixes
  • Fixed issue in qs item command
  • Fixed issue parsing default currency in price restrictions(thanks to maxcom1)
  • Fixed issue where translations were loaded twice(thanks to Warriorrrr)
  • Fixed an issue where the call ConfigReloadevent was triggered when initialization was not fully successful(Thanks to YuanYuanOwO)

Modrinth: https://modrinth.com/plugin/quickshop-hikari/version/6.3.0.2
## Internal Changes
  • Moved from maven to gradle(thanks to wling-art)

## Fixes
  • Fixed issue with the GUIs on version 1.21.4 - 1.21.11
  • Fixed issue with GUI translations for display icons.
  • Fixed issue with Reremake Migrator Addon(thanks to YuanYuanOwO)
  • Fix description locale handling in command manager(thanks to YuanYuanOwO)
  • Fixed issue with transaction system.
[6.3.0.0] QuickShop-Hikari 6.3.0.0 by creatorfromhell on Oct 12, 2026
Download
# 6.3.0.0 (Orion: Rigel)

## Major Changes

### New Display Type: 3 (Display Entities)

  • These displays don't require packetevents or protocollib.
  • They are more performant than the previous display types.
  • They are also more flexible and can be used for other purposes.
  • They can be scaled using the new display-scale configuration
  • They can be configured to allow intearactions in interaciton.yml, the options are:
``yaml
STANDING_LEFT_CLICK_DISPLAY: NONE
STANDING_RIGHT_CLICK_DISPLAY: NONE
SNEAKING_LEFT_CLICK_DISPLAY: NONE
SNEAKING_RIGHT_CLICK_DISPLAY: NONE
`

### Config-Driven Data Component Matcher (1.21+)

This uses worker-type: 3.

### Changes

  • Updated matcher to store and compare DataComponentType.Valued<?> entries.
  • Resolved registry entries safely using the Paper data component registry.
  • Implemented whitelist-based matching: only components explicitly enabled in matcher.components are compared.
  • Merged previous meta toggles into components using uppercase group keys.
  • Explicitly excluded CUSTOM_DATA from comparison to prevent ViaVersion protocol markers from causing mismatches.

### Behavior

Matching now:

1. Handles null safety.
2. Optionally checks material.
3. Optionally checks stack amount.
4. Iterates only over enabled component types.
5. Returns false immediately on the first mismatch.
6. Returns true if all enabled components match.

### Config Structure

All comparisons are configured under matcher.components. Keys can be:

  • Direct DataComponentTypeKeys fields (e.g., DAMAGE, LORE, ENCHANTMENTS).
  • Group keys that expand internally (e.g., BOOKS, SHULKER_BOX, FIREWORK).

### Text Displays(shop.text-display)
  • Added shop.text-display which is a visual display that can be customized. This is a more visually appealing version of shop.display-item-use-name.
  • These support adventure lib components are are configurable through config.yml

`yaml
# This spawns a separate fake entity that displays shop information.
text-display:

# Should the text display be enabled?
enabled: false

# Text Display view range
range-blocks: 3

# Height above the item
y-offset: 0.8

# Background color (32-bit ARGB)
background-color: 1073741824

line-width: 200

#The scale of the text display.
#The acceptable values are from 0.0 to 1.0.
scale:

x: 0.5
y: 0.5
z: 0.5

# <item_name> is replaced with the item name.
# <price> is replaced with the item price.
# <amount> is replaced with the item amount.
# <price_amount> is replaced with the item price per amount.
# <owner> is replaced with the shop owner's name.
# <type> is replaced with the shop type (BUYING/SELLING).
# <status> is replaced with the shop status (ACTIVE/FROZEN).
lines:
  • "<green><item_name></green>"
  • "<gray><owner></gray>"
  • "<gray><type></gray>"
  • "<gold><price_amount></gold>"
`

### Updater System Refactor + Modrinth Support

#### Added

  • Modrinth update source support
  • Uses Modrinth API for version checks
  • Detects latest & latest stable release via SemVer
  • New UpdateProvider interface for extensible update sources
  • New centralized UpdateManager
  • 1-hour metadata cache
  • Unified version comparison
  • Paste output now shows the active provider

#### Changed

  • Refactored old Nexus-only updater into a provider-based system
  • UpdateWatcher now uses the generic updater manager
  • Update URL now comes from the active provider

#### Config

`yaml
#The source to check for updates on.
#Allowed values: "nexus", "modrinth"
#Nexus shows snapshots and releases, modrinth shows releases only.
updater-source: "modrinth"
`

This lays the groundwork for future providers (CurseForge, Hangar, GitHub, etc.) without core rewrites.

## New: Shop Tagging System

A new player-driven tagging system has been introduced, allowing players to organize and track shops using custom tags.

### Key Points
  • Players can add custom tags to shops they are looking at.
  • Tags support letters, underscores (_), and dashes (-).
  • Tags are normalized and limited in length to ensure consistency and performance.
  • Reserved system tags power built-in features such as:
  • @fav - Favorites
  • @watch - Watchlist
  • @avoid - Avoided shops
  • Tags are stored per-player per-shop, allowing each player to maintain their own organization system.

### Commands
  • /qs tag <tag> - Add a tag to the shop you are looking at
  • /qs tag remove <tag> - Remove a tag from the current shop
  • /qs tag clear - Remove all of your tags from the current shop
  • /qs tag shops - List all tags you have created
  • /qs tag tagged <tag> - List shops you have tagged with a specific tag
  • /qs tag purge <tag> - Remove a tag from all shops
  • /qs favorite - Add the current shop to your favorites
  • /qs watch - Add the current shop to your watchlist
  • /qs avoid - Add the current shop to your avoid list

## RenderComponent System

The render component system replaces the current sign layout system and the text-display system, combining both into a single flexible rendering system.

The layout options for signs retain the current iteration (
header, trading, item, level, price), while introducing greater customization. Components are now divided into three categories:

  • Full line components** – occupy an entire sign line.
  • Inline components** – replace only themselves and can be combined with surrounding text.
  • Conditional components** – behave like inline components but automatically change their output based on the current shop state.

### Full Line Components

  • header – shop owner/availability header
  • item – formatted item display
  • level – item level/duration line
  • price – complete price line with stacking shop support
  • trading – trading/stock status line

### Inline Components

  • <amount> – item amount
  • <item_name> – item display name
  • <item_level> – enchantment level, potion duration, or similar item metadata
  • <owner> – shop owner name
  • <price_alone> – formatted price only
  • <price_amount> – formatted price text with stacking shop support
  • <status> – current shop state/status
  • <stock> – remaining stock display
  • <type> – shop type (Buy/Sell/etc.)

### Conditional Components

Conditional components dynamically determine their output based on the current shop state.

  • <amount_auto> – Displays:
  • Out of Stock** when the shop has no remaining stock.
  • Unlimited** when the shop has unlimited stock.
  • The remaining stock amount when the shop has available stock.

## Minor Changes
  • Replaced startup parameter "playerDBFindUUIDTask" with config option "uuid-lookup.allow-playerdb-uuid"
  • Replaced startup parameter "playerDBFindNameTask" with config option "uuid-lookup.allow-playerdb-name"
  • Replaced startup parameter "databaseFindUUIDTask" with config option "uuid-lookup.allow-db-uuid"
  • Replaced startup parameter "databaseFindNameTask" with config option "uuid-lookup.allow-db-name"
  • Replaced startup parameter "disableDatabaseCacheWrite" with config option "database.disable-username-cache"
  • Replaced startup parameter "bakeuuids" with config option "database.bake-uuids"
  • Replaced startup parameter "forceBungeecord" with config option "proxy.force-bungeecord"
  • Replaced startup parameter "parallelism" with config option "database.loader-threads"
  • Replaced startup parameter "betaForceReplaceFillerProcessor" with config option "lang-processor.replace-filller-post-process"
  • Replaced startup parameter "usePAPIPostProcess" with config option "lang-processor.papi-post-process"
  • Replaced startup parameter "fixClientItemTextRenderAlwaysItalic" with config option "lang-processor.fix-item-always-italic"
  • Replaced startup parameter "skipConfirmation" with config option "skip-command-confirmation"
  • Replaced startup parameter "generateDatabaseFullReport" with config option "database.generate-full-report"
  • Replaced startup parameter "unlimitedWait" with config option "database.unlimited-save-wait"
  • Replaced startup parameter "shoppableChecks" with config option "shop.shoppable-check"
  • Replaced startup parameter "flushTransactionDelay" with config option "shop.join-flush-delay"
  • Replaced startup parameter "ignoreCancelledInteractEvent" with config option "shop.ignore-cancelled-interact-event"
  • Replaced startup parameter "allowOffline" with config option "shop.allow-offline-benefit"
  • Replaced startup parameter "updateShopSignOnLoad" with config option "shop.update-sign-on-load"
  • Replaced startup parameter "essentialsXFindUUIDTask" with config option "uuid-lookup.allow-essentialsx-uuid"
  • Replaced startup parameter "essentialsXFindNameTask" with config option "uuid-lookup.allow-essentialsx-name"
  • Replaced startup parameter "bukkitFindNameTask" with config option "uuid-lookup.allow-bukkit-name"
  • Replaced startup parameter "bukkitFindUUIDTask" with config option "uuid-lookup.allow-bukkit-uuid"
  • Replaced startup parameter "skipDatabaseVersionCheck" with config option "database.skip-version-check"
  • Bumped config version to 1037
  • started including tax amount in shop failure message "you-cant-afford-to-buy"
  • Update configuration file comments and standardize formatting(thanks to YuanYuanOwO)
  • Split metrics into separate files and added FastStats metric tracking.
  • Added toggle display icon to GUI.
  • renamed price to price_solo for text-display configurations.
  • Added support for displaying the name of the song on a music disc using shop.use-song-for-disc-item in config.yml
  • Added enchantments to enchanted book views for shop UIs
  • Added support for translating remaining untranslatable UI messages.
  • Added level as an option for shop.layout.
  • This allows the sign to display the potion duration or enchantment level.
  • Expanded the shop.display-item-use-name config.
  • This now displays more potion information when enabled. It'll include the potion type, duration, level and if splash or lingering.
  • Modified fish_bucket custom matcher component to include the following components:
  • "AXOLOTL/VARIANT",
  • "SALMON/SIZE",
  • "TROPICAL_FISH/PATTERN",
  • "TROPICAL_FISH/BASE_COLOR",
  • "TROPICAL_FISH/BASE_COLOR"
  • Added protect.oxidation config.
  • This allows protecting copper chests from oxidizing
  • Added close-after to quantity-buttons node in gui.yml to allow server owners the ability to let the gui stay open for repeated clicking.
  • Added shop.use-roman-numeral-for-enchantments to specify if shop.use-enchantment-for-enchanted-book should use a normal number or roman numeral for the enchantment level.
  • Added shadow, text-opacity, and see-through for text-display configs
  • Added rotation config for display-type: 3
  • Added DisplayManager to api, which is now the base class for all display type managers.
  • Added getDisplayManager() to QuickShopAPI.
  • Added DisplayManagerPutEvent and DisplayManagerRemoveEvent, which are now fired when a display is added or removed from a DisplayManager.
  • Added /qs benefitall to add/remove a player's benefit from all shops.
  • Added disable-buy-transfer which allows servers to disable the ability to transfer buy shops.
  • Added support for adventure v5(thanks YuanYuanOwO)
  • Hide enchantment level for enchants with max level of 1 (thanks Warriorrrr)
  • Use item_name component if present when force-use-item-original-name is on(thanks Warriorrrr)
  • Added disable option to shop staff menu icon.

# Addons

### Bolt Addon(new)
  • Prevents shops from being created on Bolt protected blocks.

### DiscordSRV Addon
  • Fox shop-side tax not reflecting in the purchase notifications for discordsrv addon(thanks to wling-art)

### DyeSigns Addon(new)
  • This also allows players to change the glow status of their signs using glowing ink sacs
  • They can reset the dye and glow status by right clicking the sign with a sign.

### EcoEnchants Addon
  • Fix EcoEnchants compat for EcoEnchants 13.x(thanks to wling-art)

### Pl3xMap Addon
  • add icon-custom, when using that option the icon file needs to be in your qsaddon-pl3xmap folder, and the icon-file-location needs to have the file extension
  • This allows for easier icon customization since pl3xmap doesn't have a straight forward way to do it.

### GriefPrevention Addon
  • Overrode GriefPrevention's getChunks() method, because they load chunks synchronously, which causes issues with the plugin for large claims.

### Towny Addon
  • Improved shop purging logic efficiency of Towny addon.(thanks Warriorrrr)

## Internals
  • Deprecated FrozenType in favor of a new ShopState system.
  • Added new ShopState system to handle shop state changes.
  • Added new ShopPrice interface that accepts a generic type, which is an object for the shop's price.
  • This new interface also contains methods for comparison purposes, such as price comparison for sorting in UIs.
  • Added a format method to the ShopPrice interface to format the price for display.
  • Added bukkitLocation() to the Locatable interface, which returns a BukkitLocation object.
  • Replaced internal calls to shop.getLocation with shop.bukkitLocation
  • Split the Shop interface into different sub interfaces to improve readability and maintainability.
  • The per-player-shop-sign option no longer requires ProtocolLib. (Warrior)
  • Allow players to still use shop functions when muted on LiteBans(thanks to Warrior)
  • Swap database thread pool to use virtual threads(thanks to Warrior)
  • Avoid creating empty yaml config instances for every shop, this helps reduce RAM usage(thanks to Warrior)
  • Added async options for sign updates, and improved locateInventory method to be more optimized
  • In certain server environments this showed a ~23% performance improvement.
  • Adjusted trade ui to use a stock variable instead of the cache, this should fix issues where stock information was sometimes inaccurate while not sacrificing performance.
  • A very minor improvement in the find subcommand, skips doing a sqrt and playerAuthorize test for shops that are outside of the max distance.(Thanks to Warriorrrr)
  • Started assigning PDC to shop chests which should allow faster checks in the future.
  • Replaced the internal extra system with a new concurrenthashmap based system.
  • This is a major internal change that should improve performance and reduce memory usage.
  • This also allows for more flexibility in the future.
  • This also changes the way we store extra data in the database as it's now stored as a JSON string instead of a yaml configuration string.
  • Some minor performance improvements to hopper and dropper protection methods.
  • Moved rollbar reporting to a more restrictive executor.
  • Keep inventory count cache loaded in memory per shop, this should improve response times for various parts of the plugin drastically(thanks to Warriorrrr)
  • Added flexible ShopQuery system for developers to use in order to get shops based on filters. Example:
`java
final List<Shop> shops = ShopQuery.create().filterBy(Filters.OWNER_QUSER, qUser).filterBy(Filters.TYPE, plugin.getShopManager().shopTypeOrDefault("selling")).execute();
``
  • Material Filter, filter by material
  • Owner Filter, filter by Owner UUID
  • QUser Owner Filter, filter by QUser Owner
  • Type Filter, Filter by shop type
  • State Filter, filter by shop state
  • World UUID filter, filter by world UUID

## Deprecation Removals
The following internals have been deprecated and will be removed in release 6.4.0.0.
  • Removed ShopType enum and methods
  • Removed deprecated tax methods.
  • Class SimpleShopExtra

## Deprecations
  • Deprecated IShopLayoutProvider#renderHeaderSnapshot
  • Deprecated IShopLayoutProvider#renderTradingSnapshot
  • Deprecated IShopLayoutProvider#renderPriceSnapshot
  • Deprecated IShopLayoutProvider#renderHeader
  • Deprecated IShopLayoutProvider#renderTrading
  • Deprecated IShopLayoutProvider#renderItem
  • Deprecated IShopLayoutProvider#renderPrice
  • Deprecated IShopLayoutProvider#renderLevels

## Fixes
  • Fix issue where disabling tax for unlimited shops wasn't properly working.
  • Fix issue where FAWE on 2.11.2 and lower wasn't working correctly.
  • Fix issue where FAWE would remove shops outside of selection zone.
  • Fix issue where limits configs were not working properly(thanks to YuanYuanOwO)
  • Fix Folia thread violations in /qs info stock stats(thanks to GoodrichDev)
  • Fix Towny Compat not working in Folia(thanks to GoodrichDev)
  • Remove blocking in AbstractShopManager#registerShop to fix deadlock on Folia. (Warrior)
  • Fix AbstractShopManager#getShops returning null while marked as not-null (thanks to Warrior)
  • Fixed issue where reloaded would cause the module count to continue to rise(thanks to Warrior)
  • Fixed issue where the shop stock notification sent to staff was in the shop owner's locale(thanks to Warrior)
  • Fixed issue where player tab completions didn't respect vanishing
  • Fix calendar watcher spamming warnings during long shutdowns(thanks to Warrior)
  • Corrected UI not showing correct items for potions and books
  • Fixed issue where display-type 3 wasn't showing on rejoin
  • Fixed issue with lower MC versions not being compatible with 6.3.0.0
  • Fixed issue iwth lower versions of MC and protocollib not working.
  • Fixed an issue where a warning was thrown during the first database initialization.(Thanks to YuanYuanOwO)
  • Fix shop preview locales being sticky(Thanks to Warriorrrr)
  • Fix ShopBenefitAddEvent not showing the cancel message(thanks to Warriorrrr)
  • Made displays for display-type 3 rotate based on chest direction.
  • This change requires manually changing the display-rotation.y config to 1.0 and display-rotation.z to 0.0
  • Fixed issue where display wasn't updated when the shop type or state was changed.
  • Fixed issue where menu titles couldn't be override in gui.yml
  • Fixed issue where quantity icons couldn't be translated
  • Fixed issue where shop search wasn't completed in qs create
  • Fixed issue with pl3xmap addon where display-by-default wasn't being used correctly
  • Fixed issue where glowing and dye color wasn't being applied to sign for per-player signs
  • Fixed issue with text-display background color and viewrange on display-type 3
  • Fixed issue where the item-left and item-right overrides were ignored when rendering sign layout snapshots.
  • Fixed issue where toggling threw an error for the new display manager api class
  • Fixed issue where partial items were being overrode in removal operation(thanks Warriorrrr)
  • Fix a bug with versioning for TNIL breaking 26.2 support with recent 26.2 changes.
  • Fix issue with text displays not working with protocollib.
  • Fix tax not being accounted for in buy/sell all affordability checks.(thanks to wling-art)
  • Invalid cache item preview GUI when shop item changes(thanks to wling-art)
  • Fix issue with recovery when using prefix
  • Minor performance improvements
  • Update TNML to use wling-art's changes which prevent users from sending items into the GUI and losing them.
  • Fix price restriction formatting, this now uses additional messages depending on if prices are restricted by max,min or both
  • Fixed a bug where /qs recovery wasn't finding the schema files in the zip.
  • Fixed an issue where buying bulk quantities through the UI wasn't working properly.
  • Fix the issue where switching shop mode causes the number of shop display item to increase indefinitely by one each time.(thanks to YuanYuanOwO)
  • Fixed issue with Squaremap addon where chests showed on all worlds.
  • Fixed issue where loading old player data files in filter would cause an error.
  • Fixes issue with reforges addon being outdated.
  • Fixes issue where import and export command were not synced with naming scheme.
  • Fixes issue where display-type 3 would not display when changing from server to server on velocity
  • Fixes issue where sign checks were performed twice(thanks to wling-art)
  • Fixes performance issue with shop staff menu, moved it to a new threaded lookup approach that caches player profiles.
[6.2.0.11] QuickShop-Hikari 6.2.0.11 by creatorfromhell on Oct 12, 2026
Download
## Major Changes
  • Removed Spigot Platform Modules, and stopped loading QS if Spigot is detected. This will mean that unless the protocol changes that we use for display items, QS won't need updated for each version.
  • Revamped Economy Code Completely
  • New classes for all economy-related systems
  • Any economy-related or benefits-related events are incompatible with previous versions.
  • Added sign layout customizations per-type allowing you to change how lines are configured, an empty string('') will leave an empty line for that line of the sign.
``
#The layout of signs for shops.
layout:

#The layout of BUYING shops.
BUYING:
line1: "header"
line2: "trading"
line3: "item"
line4: "price"

#The layout of FROZEN shops.
FROZEN:
line1: "header"
line2: "trading"
line3: "item"
line4: "price"

#The layout of SELLING shops.
SELLING:
line1: "header"
line2: "trading"
line3: "item"
line4: "price"
`
  • Add wildcard support for item blacklist patterns(thanks to bennycallanan)
  • Added support for wildcard patterns in the item blacklist configuration, allowing users to block entire categories of items with simple patterns.

  • Features
  • Wildcard patterns like *_AXE and *_SPAWN_EGG now work in blacklist configuration
  • Supports * for any characters and ? for single character matching
  • Case-insensitive pattern matching
  • Overhauled GUI system(thanks to Yusakidev)
  • Implemented gui.yml configuration file for customizing the GUI.
  • Implemented better filtering for qs browse
  • Implement GUI system to be more stable, and less error prone.
  • Added gui.yml for fully configurable GUI layouts and text
  • Browse menu: search, sort (price/name/stock), and filter (all/buying/selling/in-stock)
  • Staff menu: search functionality for player/staff selection
  • Grouped item pages for better shop browsing
  • Refactored all menu pages to use configurable display/lore
  • Added worldedit compat to QS internally as it's widely used.
  • Revamped the taxation system to be more flexible and easier to configure.
  • introduced a new progressive tax system that allows you to tax based on the balance of players.(suggested by YuanYuanOwO)
  • introduced the ability to tax the player interacting with the shop, the owner, or both
  • all tax-related configurations have been moved under the shop-tax section of the config. this may require reconfiguration of your tax settings.
  • added a new ShopEnhancedTaxEvent, deprecated the old ShopTaxEvent.
  • Added a new TaxManager, and TaxProvider interfaces, this allows for custom tax providers to be added by addons/third-party developers.

## Addons/Compats Changes
  • Added UltimateClaims compat
  • Added SimpleClaimSystem compat
  • Added Quests by Pika addon
  • Added BetonQuest addon
  • Added Pl3xMap addon
  • MatcherPlus Compat Improvements
  • Added support for CrazyCrates
  • Added support for ExcellentCrates
  • Added support for SilkSpawners.
  • WorldGuard Compat Improvements(Thanks to golovin12)
  • Added clear permission handling:
  • Region owners and members automatically have permission to create and trade in their own regions.
  • Other players must have the appropriate WorldGuard flags enabled (quickshophikari-create, quickshophikari-trade) to interact with shops.
  • If a shop is located outside any region, default QuickShop behavior applies (no extra restrictions)
  • Added colored markers based on shop state for bluemap(thanks to YusakiDev)
  • Updated dynmap/towny addons to use the new ShopTypeEnhancedEvent instead of ShopTypeEvent.
  • Removed worldedit compat, it's now included in the main plugin.
  • Added support for global flags to the worldguard compat.

## Internals/Developer APIs
  • Removed several deprecated methods and classes.
  • Revamped the interaction manager. It is now more flexible and allows external additions
  • This involves two classes InteractionBehavior and InteractionType.
  • InteractionType details the type of interaction such as: STANDING_LEFT_CLICK_SIGN, STANDING_LEFT_CLICK_SHOP
  • InteractionBehavior outlines a behavior for an InteractionType such as CONTROL_PANEL and TRADE_UI
  • Added UserLimitCalculationEvent, which allows for custom limits to be applied to users.
  • This is useful for limiting the number of shops a user can have, or adding on to the existing limits provided by the ranks system without needing to implement a new RankLimiter.
  • Added a new ShopLayoutProvider interface, and default implementation.
  • This allows for custom layouts to be used for shops, allowing for more customization.
  • This also allows for developers to override the default layout provider and create their own implementation.
  • How to make your own?
  • Implement the classes you would like to then register with the InteractionManager:
  • `java
InteractionManager manager = QuickShop.getInstance().getInteractionManager();

manager.interaction(new MyTradeInteraction());
manager.behavior(new MyTradeBehavior());
``
  • Replaced some Apache Commons calls that could be easily replaced with built-in java methods, reduces some calls by ~ 1100ms/method call
  • Deprecated the ShopType enum, and the ShopTypeEvent. These are replaced with the new IShopType interface and implementing classes.
  • The new event is ShopTypeEnhancedEvent.
  • This allows for third-party addons to add their own shop types, and simplifies code checks for translations.
  • Updated config system to use Boosted-yaml
  • this allows for auto-updating of config files without complex update scripts
  • this also allows for the config system to not be minecraft-dependent.
  • Replaced logical PaperLib calls with native PaperAPI calls.

## Minor Changes
  • Bump Java version up to 21
  • Added shop.display-allow-enchants to enable/disable enchantments for display items on shops.
  • Added workaround for packetevents not supporting custom enchants on itemstacks for virtual display items.
  • Using locale translations for shop-type in mode toggle icon(thanks to ExyiN)
  • Bumped Residence version for the compat(thanks to YuanYuanOwO)
  • add world whitelist support(thanks to wling-art)
  • added /qs database save command, which saves all currently dirty-marked shops to the database.
  • Split up interactions _SHOPBLOCK into _SHOPBLOCK and _CONTAINER.
  • _SHOPBLOCK relates to shops, where _CONTAINER relates to shop-valid containers that are not currently shops.
  • Added inventory as an option for command panel, this is useful for adding a secondary option for players to open a shop's inventory.
  • Moved crowdin arguments from system properties to config.yml
  • crowdin-host
  • use-crowdin-ota

## Fixes
  • Fixes issue with item price restrictions(thanks to maxcom1)
  • Fixes issue with 1.20.x protocol lib displays(thanks to YuanYuanOwO)
  • Fixes issue when no item is in hand for itemdebug(thanks to YuanYuanOwO)
  • Fixes issue with dominion addon(thanks to YuanYuanOwO)
  • Add a simple check to avoid this. If it is not own shop, reject limit request directly.(Thanks to YuanYuanOwO)
  • Fix NPE by not setting tax for price in TransactionBuilder(thanks to maxcom1)
  • Fixes /quickshop suggestprice to differentiate between buy/sell shops. (Thanks to MidSpike)
  • PacketEvents ClassNotFoundException with ProtocolLib(thanks to wling-art)
  • Reallocate block state access to region thread for shop creation(thanks to r00tbeerman)
  • resolve SLF4J StaticLoggerBinder loading error(thanks to wling-art)
  • sign hijacking issue by validating sign facing direction(thanks to wling-art)
  • Performance improvements for QuickShop disabling to prevent potential freezes.
  • Fixed issue with 1.20.4 packetevents virtual displays not staying put.
  • Fixes critical issue in GriefPrevention compatibility plugin.
  • Fixes issue with shop owner not getting money when benefits active.
  • Fixes for lands addon on folia, Use regionThread for Folia compatibility(thanks to YusakiDev)
  • Fixes for TRADE_DIRECT on stacking shops
  • Fixes issue for protocollib 5.4.0 with undocumented packet changes.
  • Fixes issue where item stacks could be used on creation above the max stack size.
  • Fixes issue with BukkitAudiences-related crashes on 1.21.11.
  • Fix issue with shop deletion when getting too impatient.
  • Fix the permission check issue when a shop owned by a non-owner is transferred to someone else. (thanks to YuanYuanOwO)
  • Fix ui with supertool (thanks to YuanYuanOwO)
  • Fix issue with logs generating outside debug mode.
  • Fix issue with /qs find.
  • Fix configuration loading timing.
  • Fix configuration loading/creation warning message language.
  • Fix command description language key mismatch(thanks to wling-art)
  • Fix qs clean command on folia(thanks to wling-art)
  • Fix per-player-shop-sign on folia(thanks to wling-art)
  • Fix potential recursive deadlock in virtual display packet sending(thanks to wling-art)
  • Fix configuration loading/creation warning message language.
  • Fix issue with /qs browse and ShopItemOnly addon not behaving properly together on folia.
  • Fix issue with PLAN using outdated APIs.
  • Fix issue with /qs clean on folia.(thanks to wling-art)
  • Fix issue with /qs cleanghost on folia(thanks to wling-art)
  • More thread safety fixes for shops on folia.(thanks to wling-art)
  • Fix owner payment calculations with benefits(thanks to wling-art)
[6.2.0.10] QuickShop-Hikari 6.2.0.10 by creatorfromhell on Oct 12, 2026
Download
# 6.2.0.10

## Major Changes
  • Added support for 1.21.6 for paper(spigot has not been updated as we look to deprecate spigot support, nag the spigot developers about modernizing their API)
  • Added support for 1.21.7 for paper(spigot has not been updated as we look to deprecate spigot support, nag the spigot developers about modernizing their API)
  • Added support for 1.21.8 for paper(spigot has not been updated as we look to deprecate spigot support, nag the spigot developers about modernizing their API)
  • Some internal updates for packetevents(2.9.0 is now required.)
  • Updated Lands support

## Addon Changes
  • Added MatcherPlus Addon
  • Allows support for BreweryX and AdvancedItems stacks in shops with improved matching abilities
  • Added FabledSkyblock Compat
  • Added Dominion Compat
  • Added HuskTowns Compat
  • Added IridiumSkyblock Compat
  • Added member-create for member creation in ARM compat
  • Added admin-override and quickshop.arm.admin permission for admin overrides in ARM

## Minor Changes
  • Added configurations for the coordinates of the display item.
  • Added /qs toggledisplayall on/off server/owned
  • Players need to have permission node quickshop.toggledisplayall.admin to toggle all on the server.
  • Added ability to use abbreviations in /qs price and /qs create commands such as 2.5k for 2500
  • Added ability to set default display status using shop.default-display in config.yml

## Fixes
  • Fixed issue with display item being sent to the moon on 1.21.5
  • Fixed issue where TRADE_UI interactions interfered with quick create.
  • Fixed issue with displays on protocollib falling through the chest
  • Fixed issue with signs on .9 and previous .10 snapshots on early versions
  • Implemented some performance improvements for paper servers
  • Fixed all outstanding issues with Folia usage.(thanks to RootB33R/SleazLee for contributions)

## Possible 6.2.0.11 Features

Here's an outline for some features that may arrive in 6.2.0.11:

  • Additional compats/addons that have been piling up.
  • see: https://github.com/QuickShop-Community/QuickShop-Hikari/issues/1756
  • gradle?(interested to see compilation time uplifts)
  • Update documentation
  • Update configuration comments
  • Update configuration system?
  • auto updating?
  • Allows removal of the update code
  • Remove waste spigot modules?
  • Any versions of 1.20 that can be discarded due to low use?
  • Bug fixing, of course
  • Sign parser implementation?
  • probably have to re-evaluate since it's been awhile since it has been looked at...
# 6.2.0.9 - Important Note: Contains Exploit Fix, Please Update ASAP.

  • Remember to backup your DB before updating.**

## Major Changes

### Exploit Fix Included for GUI Exploit
This build fixes an exploit in the GUI system that was recently outlined.

### Lots of Events Changes

[See discord changelog for event system here](https://discord.com/channels/942378696415797298/942378854486528011/1334375445457666090)

### Control Panel Component System Overhaul

The shop control panel system has been overhaul to separate it into different classes. This allows third-party
plugins to add additional components to the control panel easily. There was also an added event, ControlComponentGenerateEvent,
which is called PRE, MAIN, and POST of a ControlComponent being generated. The MAIN phase supports changing
the ControlComponent object with a custom one that will replace the original during control panel sending.

### Introduction of the Revamped Packet System
1. **About**:
  • A modular and scalable system for managing packets related to virtual display items in Minecraft.
  • Supports both ProtocolLib and PacketEvents libraries for greater flexibility.

2. **Custom Packet Factories**:
  • Modular implementation of PacketFactory for game versions 1.20.x and 1.21.x.
  • Packet types:
  • Spawn Packet**: Spawns a virtual item entity at a specific location.
  • Metadata Packet**: Updates the visual properties of virtual items.
  • Velocity Packet**: Adds motion/velocity to entities (currently optional).
  • Destroy Packet**: Removes the entity from the client view.

4. **Error Handling and Logging**:
  • Enhanced debug logs to trace packet-related issues.
  • Detailed error messages for missing factories or unregistered listeners.

#### Improvements:
  • Better modular design to facilitate support for future Minecraft versions.

#### Deprecations:
  • Legacy packet handling mechanisms replaced with this new Packet System.

## Event System Overhaul

### Added
  • event/Phase.java** - Introduces a phase-based event system to track different stages of an event lifecycle.
  • event/PhasedEvent.java** - Defines events that occur within different phases, allowing better event state management.

#### Packet Handling Events:
  • event/packet/handler/PacketHandlerAddedEvent.java** - Triggered when a new packet handler is registered in the system.
  • event/packet/handler/PacketHandlerInitEvent.java** - Fired when a packet handler is initialized, useful for debugging or custom setups.
  • event/packet/send/PacketHandlerSendDestroyEvent.java** - Dispatched when a packet instructs a client to remove an entity from their view.
  • event/packet/send/PacketHandlerSendMetaEvent.java** - Fired when metadata about an entity is sent via packets.
  • event/packet/send/PacketHandlerSendSpawnEvent.java** - Triggered when an entity is spawned using packet-based communication.

#### Shop Events
  • ShopUpdateEvent has been replaced with the ShopDatabaseEvent
  • ShopAuthorizeEvent has been replaced with the ShopPermissionCheckEvent
  • ShopClick, ShopCreate, ShopDelete, ShopLoad have been replaced with similar named events, but they are in the event.management package now, and are phased events.

#### Shop Settings Events:
  • event/settings/ShopSettingEvent.java** - Generic event to handle changes in shop settings dynamically.
  • event/settings/package-info.java** - Documentation package containing metadata for shop settings.

##### Shop Type-Specific Settings:
  • event/settings/type/ShopCurrencyEvent.java** - Handles changes in the currency type used in a shop.
  • event/settings/type/ShopDisplayEvent.java** - Triggers updates when a shop’s display settings (e.g., holograms, signs) are modified.
  • event/settings/type/ShopItemEvent.java** - Fired when the main item being sold in a shop is changed.
  • event/settings/type/ShopNameEvent.java** - Occurs when a shop’s name is updated.
  • event/settings/type/ShopOwnerEvent.java** - Manages ownership transfers and modifications in a shop.
  • event/settings/type/ShopOwnerNameEvent.java** - Triggered when the owner's display name is modified.
  • event/settings/type/ShopPlayerGroupEvent.java** - Handles updates to the player group associated with a shop.
  • event/settings/type/ShopPriceEvent.java** - Dispatched when an item’s price is changed in a shop.
  • event/settings/type/ShopSignLinesEvent.java** - Manages updates to sign-based shop displays.
  • event/settings/type/ShopTaxAccountEvent.java** - Fired when a shop's tax account information is modified.
  • event/settings/type/ShopTypeEvent.java** - Tracks changes in the classification or type of shop.
  • event/settings/type/ShopUnlimitedEvent.java** - Handles changes to a shop’s unlimited stock setting.

##### Shop Benefit System:
  • event/settings/type/benefit/ShopBenefitAddEvent.java** - Fired when a new benefit (e.g., discounts, loyalty rewards) is added to a shop.
  • event/settings/type/benefit/ShopBenefitEvent.java** - General event for tracking shop benefit modifications.
  • event/settings/type/benefit/ShopBenefitRemoveEvent.java** - Triggered when a shop benefit is removed.

### Removed
  • event/details/ShopItemChangeEvent.java** - Replaced with ShopItemEvent.java for a more consistent structure.
  • event/details/ShopNamingEvent.java** - Merged into ShopNameEvent.java.
  • event/details/ShopOwnerNameGettingEvent.java** - Superseded by ShopOwnerNameEvent.java.
  • event/details/ShopOwnershipTransferEvent.java** - Now handled by ShopOwnerEvent.java.
  • event/details/ShopPlayerGroupSetEvent.java** - Integrated into ShopPlayerGroupEvent.java.
  • event/details/ShopPriceChangeEvent.java** - Merged into ShopPriceEvent.java.
  • event/details/ShopTypeChangeEvent.java** - Replaced by ShopTypeEvent.java.
  • event/details/ShopUnlimitedStatusEvent.java** - Now managed under ShopUnlimitedEvent.java.
  • event/display/ShopDisplayItemDespawnEvent.java** - Removed in favor of ShopDisplayEvent.java.
  • event/display/ShopDisplayItemSafeGuardEvent.java** - Consolidated into a broader display event category.
  • event/economy/ShopTaxAccountChangeEvent.java** - Now included in ShopTaxAccountEvent.java.
  • event/economy/ShopTaxAccountGettingEvent.java** - No longer necessary due to a refactored shop economy system.
  • event/packet/PacketHandlerAddedEvent.java** - Moved to event/packet/handler/PacketHandlerAddedEvent.java.
  • event/packet/PacketHandlerInitEvent.java** - Now handled by event/packet/handler/PacketHandlerInitEvent.java.

### Modified
  • event/AbstractQSEvent.java** - Updated base event structure to support phase-based execution.
  • event/QSCancellable.java** - Added new cancel conditions to prevent unintended event termination.

#### Packet Events:
  • event/package-info.java** - Updated to reflect new event structures.
  • event/packet/PacketHandlerEvent.java** - Now supports additional packet handling scenarios.

## Minor Changes
  • If a player doesn't have permissions for CONTROL_PANEL_UI it'll open the TRADE_UI for them
  • Added the quickshopdontsend override to allow server owners to prevent certain messages from sending(paper only)
  • Made it so invalid chat entries for UIs escape the chat ui

## Config Changes
  • added shop.control-panel to control what components of the text control panel are enabled.
  • added shop.sign-wax to control if the shop sign is waxed or not, default is false.
  • added shop.display-protocol which allows you to select packetevents or protocollib for packet handling

## Fixes
  • readded the /qs history permissions to the default quickshop.player
  • fixed issue where some folks wouldn't have the encoded db column
  • Fixed issue with reached-maximum-can-create not being implemented correctly
  • fixed issue where pistons would move shulker shops.
  • fixed issue where colored shulkers could be bought and put inside non-colored shulker
  • fixed issue with griefprevent /transfer command not unregistering owner
  • fixed issue where signs weren't updated when lock was set to false
  • Fixed issue where slime compat explosive pick wasn't being caught by QS(Thanks to YuanYuanOwO and Starfruit)
  • Fixed exploit(thanks to macaw/casper for being the first to report this)

## Version Changes
  • Removed support for 1.18 and 1.19. These versions had minimal usage.
  • Added support for 1.21.5
[6.2.0.8] QuickShop-Hikari 6.2.0.8 by creatorfromhell on Oct 12, 2026
Download
# 6.2.0.8

## Major Changes
  • Added initial Folia Support
  • CONTROL_PANEL_UI is a new interaction that allows you to use a GUI control panel instead of the chat one.
  • From this GUI you can add/remove staff, transfer ownership, set selling mode of shop, change the price and delete the shop!
  • Readded QS History GUI
  • Removed Real Item and Entity displays; They provided no advantages over virtual displays and mainly caused issues.
  • If protocol lib is not up-to-date/installed it will default to no display.
  • Added /qs browse [world], which allows a player to view the shops by server or by world depending of if they attach world as an argument
  • Added TRADE_UI interaction, which opens up a GUI-based trading menu for the player to buy/sell predefined, and custom amounts from/to a shop.
  • Updated to MC 1.21.3, MC 1.21.4.
  • Added VaultUnlocked Support

## Minor Changes
  • Added 2 new interaction behaviours that will be coming soon. CONTROL_PANEL_UI and TRADE_UI
  • Made it so that when price change fees are set to 0, the fee charge message isn't sent.
  • Added /qs staffall to manage staff for all shops.
  • Added a new shop mode, frozen.
  • This allows admins/shop staff to hault trading with the shop temporarily
  • This mode was added to the Shop Keeper menu.
  • This mode was added to the text-based control panel.
  • This mode introduces new commands: /qs silentfreeze and /qs freeze
  • Made the default action for /qs suggestprice try to use the itemstack in hand when shop not in sight.
  • Added shop.finding.global to remove distance limit for /qs find
  • Made sign shop sign waxed to prevent modifications(thanks to ThiagoROX)
  • Add SignOpen listener(thanks to ThiagoROX)
  • Add sub command overrides(thanks to ThiagoROX)

## Internals
  • Added style guidelines.
  • Added final inside code where possible.
  • Made ShopNamingEvent get called when unsetting shop name.
  • Added ShopUnlimitedStatusEvent that is called when changing the unlimited status of a shop.
  • Rearranged Events into different packages. This will break plugins that rely on the events.

## Discord Changes
  • Added Sponsor role for those that sponsor through GitHub.

## Compat Plugins
  • Towny
  • Added ruined town config to remove shops when town goes into ruins.

## Addon Plugins

### SuperiorSkyblock
  • Made it so the compat plugin can delete shops when someone is banned from an island.

## Fixes
  • Fixed issue with Velocity and Bungee Compat Jars
  • Fixed issue with Towny Compat Jar not removing shops when plot is cleared, or town is deleted.
  • Fix item restrictions being bypassed using shulkers(thanks to TauCubed)
  • Fix Towny town/nation account lookup with Essentials(thanks to galacticwarrior9)

## Notes
  • Pending removal of 1.18/1.19 support soon.
[6.2.0.7] 6.2.0.7 by creatorfromhell on Oct 12, 2026
Download
# 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.
[6.2.0.6] 6.2.0.6 by creatorfromhell on Oct 12, 2026
Download
# 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

[6.2.0.5] 6.2.0.5 by creatorfromhell on Oct 12, 2026
Download
## New Features

1. 1.21 support

## Bug Fixes

1. Fixed /qs clean may delete all stores
2. Fixed /qs cleanghost may delete all stores
[6.2.0.4] 6.2.0.4 by creatorfromhell on Oct 12, 2026
Download
## Changes

  • Virtual Display Item available again when use ProtocolLib Build 710 and up, please update your ProtocolLib

## Bug Fixes

1. 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.
2. Fixed /quickshop cleanghost won't delete the stores that trading blacklisted items

[6.2.0.3] 6.2.0.3 by creatorfromhell on Oct 12, 2026
Download
Ahhh forget to update version number!
[6.2.0.2] 6.2.0.2 by creatorfromhell on Oct 12, 2026
Download
## 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 as quickshop.alerts in PlayerListener
[6.2.0.1] 6.2.0.1 by creatorfromhell on Oct 12, 2026
Download
## 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 as quickshop.alerts in PlayerListener
[6.2.0.0] 6.2.0.0 by creatorfromhell on Oct 12, 2026
Download
  • 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!*

![116629910_p0](https://github.com/Ghost-chu/QuickShop-Hikari/assets/30802565/f756074f-a1f6-4a68-af9e-7c0b8b3fae6f)


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 to 3 to enable ItemDisplay entity
  • 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 query
  • owned: Select all shops which you're owner
  • accessible: Select all shops which you have per-shop permission to access the store history
  • global: Select all shops on this server (require permission)

## 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 mode
  • signs: Print the coordinates of the all identifiable information sign for the store you are looking at
  • updateplayersigns <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 memory
  • toggle-shop-load-status: Simulate store loading/unloading without changing the chunks loading state
  • set-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 issues
  • reset-dbmanager: Force reset of SQLManager, only for MySQL data sources, using this command on H2 will cause the plugin to crash
  • dump-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)*
[6.1.0.2] 6.1.0.2 by creatorfromhell on Oct 12, 2026
Download
## Bug fixes

1. Fixed H2 driver conflict on some server setup and cause the startup failure.
[6.1.0.1] 6.1.0.1 by creatorfromhell on Oct 12, 2026
Download
## 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
[6.1.0.0] 6.1.0.0 by creatorfromhell on Oct 12, 2026
Download
## New Features


## 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.

[6.0.0.10] 6.0.0.10 by creatorfromhell on Oct 12, 2026
Download
## Bug Fixes

1. On some server platform, database sources settings may not read properly.
[6.0.0.9] 6.0.0.9 by creatorfromhell on Oct 12, 2026
Download
## Bug Fixes

1. Plugin may crashed on startup due incorrect configuration upgrade script.
2. (Try-to) fix double-chest may cannot detect another half-part items.
3. [COMPACT] GriefPrevention compatibility module may crash on startup if build don't have ClaimResizeEvent.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## 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.
  • 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.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
[6.0.0.8] 6.0.0.8 by creatorfromhell on Oct 12, 2026
Download
## Bug Fixes

1. Fixed top N valuable customers query
2. Fixed Minecraft vanilla bug can break the shop container
3. (Try to-) fix the GriefPrevention compat's permission override
4. Fixed ItemFlag may not respected.

(6.0.0.8 is a hot patch for 6.0.0.7)
[6.0.0.6] 6.0.0.6 by creatorfromhell on Oct 12, 2026
Download
## Bug Fixes

  • Fixed /quickshop history command will stuck when user using MySQL.

## Optimization

  • The store now saves after startup only after modifications have occurred.
[6.0.0.5] 6.0.0.5 by creatorfromhell on Oct 12, 2026
Download
  • 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.
[6.0.0.4] 6.0.0.4 by creatorfromhell on Oct 12, 2026
Download
## 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.

[6.0.0.3] 6.0.0.3 by creatorfromhell on Oct 12, 2026
Download
## Optimization

  • We have noticed that the new /quickshop history feature is applying more database pressure due to log_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.
[6.0.0.1] 6.0.0.1 by creatorfromhell on Oct 12, 2026
Download
This is a hot-patch for [6.0.0.0 major update](https://modrinth.com/plugin/quickshop-hikari/version/6.0.0.0).

## Fixes

1. [ADDON] Reremake-Migrator doesn't work with 6.0.0.0
2. [ADDON] BlueMap Addon doesn't work (NullPointerException)
3. [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] 6.0.0.0 by creatorfromhell on Oct 12, 2026
Download
# 6.0.0.0 Major Update - Furina

![113743820_p0](https://github.com/Ghost-chu/QuickShop-Hikari/assets/30802565/5fa35d14-8cd2-4198-8ef4-759f79e4f319)

[Focalors & Furina](https://www.pixiv.net/artworks/113743820), Artist [Tiko](https://www.pixiv.net/users/13963774)


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](https://ghost-chu.github.io/QuickShop-Hikari-Documents/docs/modules/shops/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](https://ghost-chu.github.io/QuickShop-Hikari-Documents/docs/modules/shops/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](https://ghost-chu.github.io/QuickShop-Hikari-Documents/docs/modules/shops/suggest-price)

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


### Misc


## 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.

## 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 and Shop#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.



[5.2.0.14] 5.2.0.14 by creatorfromhell on Oct 12, 2026
Download
## Tweaks

  • EcoEnchants fixes missing enchantments, QuickShop-Hikari now works with EcoEnchants 12.2.1 or later, and the compatibility module works properly.
  • The ability for users to disable the built-in dependency resolver via startup flag and fallback to SpigotLibraryLoader by copying the list of dependencies into the libraries field of plugin.yml helps to solve the Aether illegal access issue reported on Mohist.
We are still working with the Mohist developers to resolve this issue. MC 1.20.4 or later builds of Mohist are not affected by this issue.
[5.2.0.13] 5.2.0.13 by creatorfromhell on Oct 12, 2026
Download
## Bug Fixes

  • Fixed relocation bug that caused addons reporting NoClassDefFoundError/ClassCastException.
  • Fixed decimal-format always report the language key is missing.
QuickShop-Hikari Icon
Download QuickShop-Hikari
Select game version
Select platform