-
Notifications
You must be signed in to change notification settings - Fork 0
26.2 Architecture and Mixins
Dasik (Rifaditya) edited this page Aug 22, 2026
·
1 revision
This document details the internal package layout, class hierarchy, Mixin target breakdown, shadow members, and injection points for Item Clumps on Minecraft 26.2.
net.instantgratification.item_clumps
│
├── ItemClumpsFabric.java [Main Entrypoint / GameRules Registration]
│
├── config/
│ ├── ItemClumpsConfig.java [Configuration POJO / ConfigHelper Persistence]
│ ├── ModMenuIntegration.java [ModMenuApi Provider / Safe GUI Factory]
│ └── YaclScreenHelper.java [YetAnotherConfigLib v3 Screen Factory]
│
├── mixin/
│ ├── HopperBlockEntityMixin.java [Hopper Drip Extraction Mixin]
│ └── ItemEntityMixin.java [Mega-Stack Aggregation & Smart Pickup Mixin]
│
└── util/
└── ModVersionGuard.java [Knot ClassLoader Runtime Safety Guard]
-
Target Class:
net.minecraft.world.entity.item.ItemEntity -
Superclass Extension:
extends net.minecraft.world.entity.Entity
| Member / Method | Annotation | Injection Point | Purpose |
|---|---|---|---|
getItem() |
@Shadow |
N/A | Accesses the item stack. |
setItem(ItemStack) |
@Shadow |
N/A | Mutates the item stack and updates tracker data. |
target |
@Shadow |
N/A | UUID of the targeting player (for throw safety). |
pickupDelay |
@Shadow |
N/A | Pickup cooldown timer ticks. |
age |
@Shadow |
N/A | Despawn age timer ticks ( |
setItem |
@Inject |
@At("TAIL") |
Triggers custom name tag update when stack count changes. |
isMergable |
@Inject |
@At("HEAD"), cancellable = true
|
Overrides max stack check with max_clump_size GameRule. |
mergeWithNeighbours |
@Redirect |
INVOKE -> AABB.inflate(DDD) |
Zero-allocation expansion of horizontal search radius ( |
tryToMerge |
@Inject |
@At("HEAD"), cancellable = true
|
Executes 64-bit sum math, youngest age inheritance, and magnet check. |
playerTouch |
@Inject |
@At("HEAD"), cancellable = true
|
Dispatches single-batch inventory intake in clean vanilla stacks. |
-
Target Class:
net.minecraft.world.level.block.entity.HopperBlockEntity
| Method | Annotation | Injection Point | Purpose |
|---|---|---|---|
addItem(Container, ItemEntity) |
@Inject |
@At("HEAD"), cancellable = true
|
Extracts 1-item slices from mega-clumps ( |
{
"required": true,
"package": "net.instantgratification.item_clumps.mixin",
"compatibilityLevel": "JAVA_25",
"refmap": "item-clumps-refmap.json",
"mixins": [
"HopperBlockEntityMixin",
"ItemEntityMixin"
],
"injectors": {
"defaultRequire": 1
}
}Item Clumps is engineered with ❤️ by Dasik (Rifaditya) | Licensed under GNU General Public License v3.0 (GPL-3.0-or-later).
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
- 26.2 Hub
- 26.2 Mega-Stack Clumping
- 26.2 Smart Pickup System
- 26.2 Hopper Integration
- 26.2 Despawn Age Rules
- 26.2 Holographic Labels
- 26.2 Mod Compatibility
- 26.2 GameRules Table
- 26.2 Commands & Admin
- 26.2 Advancements
- 26.2 Configuration
- 26.2 ModVersionGuard
- 26.2 Architecture & Mixins
- 26.2 Developer Setup
- 26.2 API & Addons
- 26.2 FAQ & Diagnostics
- 26.1.2 Hub
- 26.1.2 Mega-Stack Clumping
- 26.1.2 Smart Pickup System
- 26.1.2 Hopper Integration
- 26.1.2 Despawn Age Rules
- 26.1.2 Holographic Labels
- 26.1.2 GameRules Table
- 26.1.2 Commands & Admin
- 26.1.2 Advancements
- 26.1.2 Configuration
- 26.1.2 Architecture & Mixins
- 26.1.2 Developer Setup
- 26.1.2 API & Addons
- 26.1.2 FAQ & Diagnostics