TextInput.java
net.minecraft.server.dialog.input.TextInput
信息
- 全限定名:net.minecraft.server.dialog.input.TextInput
- 类型:public record
- 包:net.minecraft.server.dialog.input
- 源码路径:src/main/java/net/minecraft/server/dialog/input/TextInput.java
- 起始行号:L13
- 实现:InputControl
- 职责:
TODO
字段/常量
MAP_CODEC- 类型:
MapCodec<TextInput> - 修饰符:
public static final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.server.dialog.input.TextInput.MultilineOptions- 类型:
record - 修饰符:
public - 源码定位:
L33 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public MapCodec<TextInput> mapCodec() @ L28
- 方法名:mapCodec
- 源码定位:L28
- 返回类型:MapCodec
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public record TextInput(int width, Component label, boolean labelVisible, String initial, int maxLength, Optional<TextInput.MultilineOptions> multiline)
implements InputControl {
public static final MapCodec<TextInput> MAP_CODEC = RecordCodecBuilder.<TextInput>mapCodec(
i -> i.group(
Dialog.WIDTH_CODEC.optionalFieldOf("width", 200).forGetter(TextInput::width),
ComponentSerialization.CODEC.fieldOf("label").forGetter(TextInput::label),
Codec.BOOL.optionalFieldOf("label_visible", true).forGetter(TextInput::labelVisible),
Codec.STRING.optionalFieldOf("initial", "").forGetter(TextInput::initial),
ExtraCodecs.POSITIVE_INT.optionalFieldOf("max_length", 32).forGetter(TextInput::maxLength),
TextInput.MultilineOptions.CODEC.optionalFieldOf("multiline").forGetter(TextInput::multiline)
)
.apply(i, TextInput::new)
)
.validate(o -> o.initial.length() > o.maxLength() ? DataResult.error(() -> "Default text length exceeds allowed size") : DataResult.success(o));
@Override
public MapCodec<TextInput> mapCodec() {
return MAP_CODEC;
}
public record MultilineOptions(Optional<Integer> maxLines, Optional<Integer> height) {
public static final int MAX_HEIGHT = 512;
public static final Codec<TextInput.MultilineOptions> CODEC = RecordCodecBuilder.create(
i -> i.group(
ExtraCodecs.POSITIVE_INT.optionalFieldOf("max_lines").forGetter(TextInput.MultilineOptions::maxLines),
ExtraCodecs.intRange(1, 512).optionalFieldOf("height").forGetter(TextInput.MultilineOptions::height)
)
.apply(i, TextInput.MultilineOptions::new)
);
}
}引用的其他类
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ExtraCodecs.intRange()
- 引用位置: