HexColorArgument.java
net.minecraft.commands.arguments.HexColorArgument
信息
- 全限定名:net.minecraft.commands.arguments.HexColorArgument
- 类型:public class
- 包:net.minecraft.commands.arguments
- 源码路径:src/main/java/net/minecraft/commands/arguments/HexColorArgument.java
- 起始行号:L18
- 实现:ArgumentType
- 职责:
TODO
字段/常量
-
EXAMPLES- 类型:
Collection<String> - 修饰符:
private static final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
ERROR_INVALID_HEX- 类型:
DynamicCommandExceptionType - 修饰符:
public static final - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
private HexColorArgument() @ L24
- 构造器名:HexColorArgument
- 源码定位:L24
- 修饰符:private
参数:
- 无
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static HexColorArgument hexColor() @ L27
- 方法名:hexColor
- 源码定位:L27
- 返回类型:HexColorArgument
- 修饰符:public static
参数:
- 无
说明:
TODO
public static Integer getHexColor(CommandContext<CommandSourceStack> context, String name) @ L31
- 方法名:getHexColor
- 源码定位:L31
- 返回类型:Integer
- 修饰符:public static
参数:
- context: CommandContext
- name: String
说明:
TODO
public Integer parse(StringReader reader) @ L35
- 方法名:parse
- 源码定位:L35
- 返回类型:Integer
- 修饰符:public
参数:
- reader: StringReader
说明:
TODO
private static int duplicateDigit(int digit) @ L49
- 方法名:duplicateDigit
- 源码定位:L49
- 返回类型:int
- 修饰符:private static
参数:
- digit: int
说明:
TODO
public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> contextBuilder, SuggestionsBuilder builder) @ L53
- 方法名:listSuggestions
- 源码定位:L53
- 返回类型:
CompletableFuture - 修饰符:public
参数:
- contextBuilder: CommandContext
- builder: SuggestionsBuilder
说明:
TODO
public Collection<String> getExamples() @ L58
- 方法名:getExamples
- 源码定位:L58
- 返回类型:Collection
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class HexColorArgument implements ArgumentType<Integer> {
private static final Collection<String> EXAMPLES = Arrays.asList("F00", "FF0000");
public static final DynamicCommandExceptionType ERROR_INVALID_HEX = new DynamicCommandExceptionType(
value -> Component.translatableEscape("argument.hexcolor.invalid", value)
);
private HexColorArgument() {
}
public static HexColorArgument hexColor() {
return new HexColorArgument();
}
public static Integer getHexColor(CommandContext<CommandSourceStack> context, String name) {
return context.getArgument(name, Integer.class);
}
public Integer parse(StringReader reader) throws CommandSyntaxException {
String colorString = reader.readUnquotedString();
return switch (colorString.length()) {
case 3 -> ARGB.color(
duplicateDigit(Integer.parseInt(colorString, 0, 1, 16)),
duplicateDigit(Integer.parseInt(colorString, 1, 2, 16)),
duplicateDigit(Integer.parseInt(colorString, 2, 3, 16))
);
case 6 -> ARGB.color(Integer.parseInt(colorString, 0, 2, 16), Integer.parseInt(colorString, 2, 4, 16), Integer.parseInt(colorString, 4, 6, 16));
default -> throw ERROR_INVALID_HEX.createWithContext(reader, colorString);
};
}
private static int duplicateDigit(int digit) {
return digit * 17;
}
@Override
public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> contextBuilder, SuggestionsBuilder builder) {
return SharedSuggestionProvider.suggest(EXAMPLES, builder);
}
@Override
public Collection<String> getExamples() {
return EXAMPLES;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SharedSuggestionProvider.suggest()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Component.translatableEscape()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ARGB.color()
- 引用位置: