Skip to main content

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

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