Skip to content

🏛️ Arsitektur & Kait Ekstensi Addon (Minecraft 26.3) ​

📌 Pernyataan Sumber Repositori: Dokumentasi dalam Wiki ini mencerminkan status kode sumber saat ini di repositori, yang mungkin mencakup komit terbaru yang belum dirilis atau fitur dalam tahap pengembangan mendahului build rilis publik di CurseForge dan Modrinth.

1. Official Infobox ​

ParameterTechnical Details
Subsystem NameArchitecture & Addon Extension Hooks
Root Packagenet.instantgratification.potionstacker
Core EntrypointPotionStackerFabric.java (ModInitializer)
Client EntrypointPotionStackerFabricClient.java (ClientModInitializer)
ModMenu EntrypointModMenuIntegration.java (ModMenuApi)
Core ManagerPotionStackerManager.java
Network PayloadPotionLimitSyncPayload.java
ConfigurationPotionStackerConfig.java, YaclScreenHelper.java
Mixin Count0 Mixins (100% Pure Addon Delegation)
Upstream FrameworkStack Size Adjuster (StackSizeManager)

2. Step-by-Step Subsystem Lifecycle ​

  1. onInitialize() Lifecycle Execution:

    • Step A: Load configuration baseline via PotionStackerConfig.load(...).
    • Step B: Register functional override callback into StackSizeManager.registerOverride(...).
    • Step C: Register POTION_LIMIT and STEW_LIMIT GameRules under namespaced category.
    • Step D: Register S2C payload type and codec via PayloadTypeRegistry.clientboundPlay().
    • Step E: Attach ServerPlayConnectionEvents.JOIN listener for client sync.
    • Step F: Attach ServerLifecycleEvents.SERVER_STARTED listener for world initialization checks.
  2. Client Initialization (onInitializeClient):

    • Register global receiver for PotionLimitSyncPayload.TYPE on ClientPlayNetworking.
  3. Stack Query Resolution:

    • When Minecraft queries item stack limit, Stack Size Adjuster iterates registered overrides.
    • Potion Stacker Addon inspects item class; returns potionLimit if potion, stewLimit if soup (and stew mod absent), or -1 to continue chain.

3. Algorithmic Complexity & Zero-Allocation Path ​

  • Time Complexity: $O(1)$ constant time lookup.
  • Space Complexity: $O(1)$ zero heap allocation on the hot path.

4. Visual ASCII Architecture Diagram ​

+-------------------------------------------------------------------------+
|                            Minecraft Engine                             |
+------------------------------------+------------------------------------+
                                     |
                                     v
+-------------------------------------------------------------------------+
|                       Stack Size Adjuster (Core)                        |
|                     StackSizeManager.getStackSize()                     |
+------------------------------------+------------------------------------+
                                     |
              +----------------------+----------------------+
              | CustomStackSizeOverride                     |
              v                                             v
+-----------------------------+             +-----------------------------+
|    Potion Stacker Addon     |             |     Stew Stacker Addon      |
|  PotionStackerManager.java  |             |      (Sibling Addon)        |
+--------------+--------------+             +-----------------------------+
               |                                            ^
               |-- isModLoaded("stew-stacker-addon")? ------|
               |   If TRUE: returns -1 (defers stew logic)
               |
               v
+-------------------------------------------------------------------------+
|                           DasikLibrary (API)                            |
|       DynamicGameRuleManager  |  ConfigHelper  |  GuiHelper             |
+-------------------------------------------------------------------------+

5. Addon Hook Registration Schema ​

java
@FunctionalInterface
public interface CustomStackSizeOverride {
    int getModifiedStackSize(Item item, int originalSize);
}

6. Tautan Global & Eksternal ​

Official documentation & web portal for Dasik Igaijinn mods.