·
15 commits
to hikari
since this release
6.2.0.11
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 clear permission handling:
- 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:
-
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)