BlockEntityUUIDFix.java
net.minecraft.util.datafix.fixes.BlockEntityUUIDFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.BlockEntityUUIDFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/BlockEntityUUIDFix.java
- 起始行号:L7
- 继承:AbstractUUIDFix
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public BlockEntityUUIDFix(Schema outputSchema) @ L8
- 构造器名:BlockEntityUUIDFix
- 源码定位:L8
- 修饰符:public
参数:
- outputSchema: Schema
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected TypeRewriteRule makeRule() @ L12
- 方法名:makeRule
- 源码定位:L12
- 返回类型:TypeRewriteRule
- 修饰符:protected
参数:
- 无
说明:
TODO
private Dynamic<?> updateSkull(Dynamic<?> tag) @ L20
- 方法名:updateSkull
- 源码定位:L20
- 返回类型:Dynamic<?>
- 修饰符:private
参数:
- tag: Dynamic<?>
说明:
TODO
private Dynamic<?> updateConduit(Dynamic<?> tag) @ L29
- 方法名:updateConduit
- 源码定位:L29
- 返回类型:Dynamic<?>
- 修饰符:private
参数:
- tag: Dynamic<?>
说明:
TODO
代码
public class BlockEntityUUIDFix extends AbstractUUIDFix {
public BlockEntityUUIDFix(Schema outputSchema) {
super(outputSchema, References.BLOCK_ENTITY);
}
@Override
protected TypeRewriteRule makeRule() {
return this.fixTypeEverywhereTyped("BlockEntityUUIDFix", this.getInputSchema().getType(this.typeReference), input -> {
input = this.updateNamedChoice(input, "minecraft:conduit", this::updateConduit);
return this.updateNamedChoice(input, "minecraft:skull", this::updateSkull);
});
}
private Dynamic<?> updateSkull(Dynamic<?> tag) {
return tag.get("Owner")
.get()
.map(ownerTag -> replaceUUIDString((Dynamic<?>)ownerTag, "Id", "Id").orElse((Dynamic<?>)ownerTag))
.<Dynamic<?>>map(ownerTag -> tag.remove("Owner").set("SkullOwner", (Dynamic<?>)ownerTag))
.result()
.orElse(tag);
}
private Dynamic<?> updateConduit(Dynamic<?> tag) {
return replaceUUIDMLTag(tag, "target_uuid", "Target").orElse(tag);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: