6.2.0.9
Note: This version is in active development, and the final changelog may have more additions. Current as of 3/2/25.
Major Changes
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 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
Fixes
- readded the /qs history permissions to the default quickshop.player
Version Changes
- Removed support for 1.18 and 1.19. These versions had minimal usage.