Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.2
Platforms
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Licensed GPL-3.0-only
Created 2 years ago
Updated last week
Changelog
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
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
-
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.
-
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.
- Modular implementation of
-
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
Files
Metadata
Release channel
ReleaseVersion number
6.2.0.9-RELEASE-1Loaders
Game versions
1.20–1.21.5Downloads
1153Publication date
April 1, 2025 at 1:13 AMPublisher
creatorfromhell
Owner