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 会自动通过反射检测并调用该方法。
