🏛️ 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
| Parameter | Technical Details |
|---|---|
| Subsystem Name | Architecture & Addon Extension Hooks |
| Root Package | net.instantgratification.stewstacker |
| Core Entrypoint | StewStackerFabric.java (ModInitializer) |
| Client Entrypoint | StewStackerFabricClient.java (ClientModInitializer) |
| ModMenu Entrypoint | ModMenuIntegration.java (ModMenuApi) |
| Core Manager | StewStackerManager.java |
| Network Payload | StewLimitSyncPayload.java |
| Configuration | StewStackerConfig.java, YaclScreenHelper.java |
| Mixin Count | 0 Mixins (100% Pure Addon Delegation) |
| Upstream Framework | Stack Size Adjuster (StackSizeManager) |
2. Step-by-Step Subsystem Lifecycle
onInitialize()Lifecycle Execution:- Step A: Load configuration baseline via
StewStackerConfig.load(...). - Step B: Register functional override callback into
StackSizeManager.registerOverride(...). - Step C: Register
STEW_LIMITGameRule under namespaced category. - Step D: Register S2C payload type and codec via
PayloadTypeRegistry.clientboundPlay(). - Step E: Attach
ServerPlayConnectionEvents.JOINlistener for client sync. - Step F: Attach
ServerLifecycleEvents.SERVER_STARTEDlistener for world initialization checks.
- Step A: Load configuration baseline via
Client Initialization (
onInitializeClient):- Register global receiver for
StewLimitSyncPayload.TYPEonClientPlayNetworking.
- Register global receiver for
Stack Query Resolution:
- When Minecraft queries item stack limit, Stack Size Adjuster iterates registered overrides.
- Stew Stacker Addon inspects item class; returns
stewLimitif stew or soup, or-1to 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() |
+------------------------------------+------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Stew Stacker Addon |
| StewStackerManager.java |
+------------------------------------+------------------------------------+
|
v
+-------------------------------------------------------------------------+
| DasikLibrary (API) |
| DynamicGameRuleManager | ConfigHelper | GuiHelper |
+-------------------------------------------------------------------------+5. Addon Hook Registration Schema
java
@FunctionalInterface
public interface CustomStackSizeOverride {
int getModifiedStackSize(Item item, int originalSize);
}