API 与附属模组集成 (MC 26.2)
本文件详细介绍 Minecraft 26.2 上 Item Clumps 的第三方模组集成钩子、DasikLibrary API 交互以及開發者程式碼查询介面。
📊 集成資訊框
| 属性 | 数值 |
|---|---|
| API 架構 | 原版原生 ItemEntity 与 ItemStack API |
| 数据存储协议 | 原生 ItemStack.getCount() (VarInt / 32 位整型) |
| 游戏規則 API | DynamicGameRuleManager (DasikLibrary API) |
| 鸭子类型介面 | 相容自定义磁鐵 / 掉落物實體介面 |
🔌 附属模组開發者的程式碼查询介面
由于 Item Clumps 直接将虚拟巨型堆疊数量存储在原版标准的 ItemStack 中,附属開發者无需特殊的 API 外觀即可直接读取或操作聚合数量:
1. 读取聚合堆疊真實数量
java
// Standard ItemEntity instance
ItemEntity entity = ...;
// Native vanilla getter returns true mega-count (e.g. 5000)
int trueCount = entity.getItem().getCount();2. 检查是否允许聚合
java
// Queries Item Clumps customIsMergable logic
boolean canMerge = entity.isMergable();3. 安全修改聚合實體数量
java
// When mutating item entity counts, always update the stack object:
ItemStack stack = entity.getItem().copyWithCount(newCount);
entity.setItem(stack); // Triggers custom name tag update automatically!🧲 磁鐵吸附与飞行鸭子类型介面 (Duck-Typing Hook)
若您正在開發物品磁鐵、隔空取物或真空吸附模组,可在您的 ItemEntity mixin 中加入以下任意鸭子类型方法,防止 Item Clumps 在飞行途中将其提前聚合:
java
public boolean ig_magnet$isMagnetized() {
return this.isFlyingTowardsPlayer;
}
// Or legacy alternative:
public boolean ig$isMagnetized() {
return this.isFlyingTowardsPlayer;
}Item Clumps 在每次聚合 tick 会自動通过反射检测并调用该方法。
