BlockDataSource.java
net.minecraft.network.chat.contents.data.BlockDataSource
信息
- 全限定名:net.minecraft.network.chat.contents.data.BlockDataSource
- 类型:public record
- 包:net.minecraft.network.chat.contents.data
- 源码路径:src/main/java/net/minecraft/network/chat/contents/data/BlockDataSource.java
- 起始行号:L18
- 实现:DataSource
- 职责:
TODO
字段/常量
-
BLOCK_POS_CODEC- 类型:
Codec<CompilableString<Coordinates>> - 修饰符:
public static final protected protected - 源码定位:
L19 - 说明:
TODO
- 类型:
-
MAP_CODEC- 类型:
MapCodec<BlockDataSource> - 修饰符:
public static final - 源码定位:
L29 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public Stream<CompoundTag> getData(CommandSourceStack sender) @ L33
- 方法名:getData
- 源码定位:L33
- 返回类型:Stream
- 修饰符:public
参数:
- sender: CommandSourceStack
说明:
TODO
public MapCodec<BlockDataSource> codec() @ L47
- 方法名:codec
- 源码定位:L47
- 返回类型:MapCodec
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public record BlockDataSource(CompilableString<Coordinates> coordinates) implements DataSource {
public static final Codec<CompilableString<Coordinates>> BLOCK_POS_CODEC = CompilableString.codec(new CompilableString.CommandParserHelper<Coordinates>() {
protected Coordinates parse(StringReader reader) throws CommandSyntaxException {
return BlockPosArgument.blockPos().parse(reader);
}
@Override
protected String errorMessage(String original, CommandSyntaxException exception) {
return "Invalid coordinates path: " + original + ": " + exception.getMessage();
}
});
public static final MapCodec<BlockDataSource> MAP_CODEC = RecordCodecBuilder.mapCodec(
i -> i.group(BLOCK_POS_CODEC.fieldOf("block").forGetter(BlockDataSource::coordinates)).apply(i, BlockDataSource::new)
);
@Override
public Stream<CompoundTag> getData(CommandSourceStack sender) {
ServerLevel level = sender.getLevel();
BlockPos pos = this.coordinates.compiled().getBlockPos(sender);
if (level.isLoaded(pos)) {
BlockEntity entity = level.getBlockEntity(pos);
if (entity != null) {
return Stream.of(entity.saveWithFullMetadata(sender.registryAccess()));
}
}
return Stream.empty();
}
@Override
public MapCodec<BlockDataSource> codec() {
return MAP_CODEC;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockPosArgument.blockPos()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
CompilableString.codec()
- 引用位置: