QuickShop-Hikari
[ Start your in-game business today ;) ]
Why another fork
I used to be part of the QuickShop-Reremake development team. But since the development pace of QuickShop-Reremake is too conservative, I decided to start a new fork separately.
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 based Virtual DisplayItem (better for performance) support.
- Multi-Currency supports, use different currency in shops that from GemsEconomy, TheNewEconomy or any economy that support Reserve. We also support Vault(default) of course!
- 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!
How to Install
QuickShop requires Minecraft 1.18+ to be run. Any versions below 1.18 were unsupported.
- Install Vault and an economy plugin supported by Vault.
If you using Multi-Currency, an option in config.yml that allows you to switch to GemsEconomy/TNE or Reserve! - Install optional ProtocolLib which can greatly improve QuickShop performance.
- If you're a Spigot user, Hikari will use NMS to set important stuffs, make sure your Hikari version support your Spigot version.
- Or use Paper or it's fork so we can smooth cross-version.
- 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.
- /qs unlimited
Makes your Shop buy/sell Items in unlimited quantity or limited - /qs setowner <player>
Change the Shop Owner. - /qs buy
Change the shop to buying items. - /qs sell
Change the shop to selling items. - /qs price <price>
Change the buy/sell price of the item. - /qs clean
Removes any loaded shop that doesn't have any items in stock. - /qs find <item>
Find the nearest shop that sells items that start with the provided text. E.g. /qs find dia will find the nearest shop that buys/sells diamonds. - /qs fetchmessage
Fetch shop message manually from the database. - /qs info
Show QuickShop information. - /qs debug
Enable/Disable Debug Mode. - /qs create <price> [item]
Command to create the shop with the item in hand or specified. - /qs currency <currency name>
Command to specified the currency the shop using.
The Economy plugin must support the Multi-Currency feature and be supported by QuickShop. We support GemsEconomy and TNE now. - /qs supercreate
Create a shop while bypassing any protection checks. - /qs paste
Collects useful information and pastes it on Pastebin. - /qs staff
Manage staff in your shop.- /qs staff add <player>
Add a player as staff to your shop. - /qs staff del <player>
Remove a player as staff from your shop. - /qs staff clear
Remove all staff members from your shop. - /qs staff list
Show all current staff members of your shop.
- /qs staff add <player>
- /qs cleanghost
Remove all broken shops. - /qs export
Export all shop data to a TXT file.
This command is CONSOLE ONLY! - /qs 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! - /qs size
Change the bulk size.
Requires the "allow-stacks" option in the config to be enabled for the command to work. - /qs 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. - /qs alwayscounting
Making a shop always counting shop even is unlimited, which makes a real admin shop is possible. - /qs transfer
Transfer ALL shops from one player to another. - /qs item
Change the item of the shop.
Requires the "allow-stacks" option in the config to be enabled for the command to work. - /qs removeworld
Remove all shops in a specific world. - /qs name
Naming or un-naming a shop with a specific name. - /qs permission
Tweaking the per-shop permissions, or add/remove player into/from specific groups. - /qs database
View and manage QuickShop-Hikari status. - /qs benefit
View and manage yout shop benefits.
- /shop
- /qshop
- /qsshop
- /quickshop
- /chestshop
- /cshop
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:
- 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 /qs 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 /qs find <item> - quickshop.fetchmessage
Required to use /qs fetchmessage - quickshop.staff
Required to use /qs staff and all its subcommands. - quickshop.preview
Required to use the GUI Item Preview. - quickshop.currency
Required to use the /qs currency <currency> - quickshop.shopnaming
- Required to use the /qs name <name>
- quickshop.permission
- Required to use the /qs permission
- quickshop.benefit
Required to use the /qs benefit
Admin Permissions:
- quickshop.unlimited
Required to use /qs unlimited - quickshop.alwayscounting
Required to use /qs alwayscounting - quickshop.setowner
Required to use /qs 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.<ItemID>
Required to sell blacklisted items (E.g. bedrock). - quickshop.price.restriction.bypass.<RuleName>
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 /qs info - quickshop.debug
Required to use /qs debug - quickshop.paste
Required to use /qs paste - quickshop.purge
Required to use /qs purge - quickshop.create.admin
Required to bypass any protection-checks while creating a shop using /qs 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 /qs cleanghost - quickshop.export
Permission to use /qs export
This permission is pointless since the command is console only. - quickshop.recovery
Permission to use /qs recovery
This permission is pointless since the command is console only. - quickshop.removeworld
Permission to remove all shops in a world using /qs 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 /qs 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 `/qs 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 `/qs 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 `/qs 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.)
Enhanced Addons
ShopSearch by Ronsane
Adds a /finditem command in game for searching through all the shops on the server.
[Download]
Some traditional reremake addons have been migrated to Hikari!
See QuickShop-Suite.
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.
Those override the default per-server chat and it's impossible to fix this without any bungee-spigot bridge plugins.
You can use /qs amount <amount> to set the price instead.
* If you're using a chat plugin with Spigot plugin supports, It should work with it. - 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 /qs amount <amount> to set the price instead.
Help us translate QuickShop!
You can help us to translate QuickShop into as many languages as possible!
You can find the currently worked on translations over at Crowdin:
https://crowdin.com/project/quickshop-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:
[LIST=1]Set "allow-stacks" to true in the config.yml and reload the plugin.Give the player (Yourself) the permission quickshop.create.stacksHold the number of items to buy/sell and create the shop as normal.
[/LIST]
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 /qs stack <size>
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: /qs export to export all shops from your database, then swtich the data-source and /qs recovery to restore all shops from exports.
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: Hikari cannot load on 1.18(.0) and 1.18.1.
A: <1.18.2 have conficting issue with Adventure lib, upgrade to 1.18.2
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.
A: See "Tested Minecraft Versions", we only support 1.18(.2) and up.
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.
BACKUP BEFORE OPERATING MIGRATE!
- Stop your server.
- Delete already existing folder plugins/QuickShop-Hikari
- CopyQuickShop-Reremake data folder plugins/QuickShop to plugins/QuickShop-Hikari, don't touch any other things!
- Start your server, our converter will convert things once you confirmed.
Conversion is irreversible, please take care of the backup.
Bug Reports
Github Issue Tracker
Supports
Discord Server
User Documentation
We don't have documentation yet, it looks like if you have questions you can only ask on our Discord channel ;)
Developer API
Maven repository & QuickShopAPI
Code Fragment -> Shop Lookup
Code Fragment -> Register QuickShop Command
Code Fragment -> InventoryWrapper API (Hook shop inventory to another block, entity, and plugin virtual inventory)
Overview -> API Package
Code Fragment -> Customize display item implement with ServiceInjector (TODO)
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 or non-free in other places as long as you follow two basic rules:
- 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.
Metrics