ArgumentTypeInfos.java
net.minecraft.commands.synchronization.ArgumentTypeInfos
信息
- 全限定名:net.minecraft.commands.synchronization.ArgumentTypeInfos
- 类型:public class
- 包:net.minecraft.commands.synchronization
- 源码路径:src/main/java/net/minecraft/commands/synchronization/ArgumentTypeInfos.java
- 起始行号:L67
- 职责:
TODO
字段/常量
BY_CLASS- 类型:
Map<Class<?>,ArgumentTypeInfo<?,?>> - 修饰符:
private static final - 源码定位:
L68 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
private static <A extends ArgumentType<?>,T extends ArgumentTypeInfo.Template<A>> ArgumentTypeInfo<A,T> register(Registry<ArgumentTypeInfo<?,?>> registry, String id, Class<?extends A> brigadierType, ArgumentTypeInfo<A,T> info) @ L70
- 方法名:register
- 源码定位:L70
- 返回类型:<A extends ArgumentType<?>,T extends ArgumentTypeInfo.Template> ArgumentTypeInfo<A,T>
- 修饰符:private static
参数:
- registry: Registry<ArgumentTypeInfo>
- id: String
- brigadierType: Class<?extends A>
- info: ArgumentTypeInfo<A,T>
说明:
TODO
public static ArgumentTypeInfo<?,?> bootstrap(Registry<ArgumentTypeInfo<?,?>> registry) @ L77
- 方法名:bootstrap
- 源码定位:L77
- 返回类型:ArgumentTypeInfo
- 修饰符:public static
参数:
- registry: Registry<ArgumentTypeInfo>
说明:
TODO
private static <T extends ArgumentType<?>> Class<T> fixClassType(Class<?super T> cls) @ L144
- 方法名:fixClassType
- 源码定位:L144
- 返回类型:<T extends ArgumentType<?>> Class
- 修饰符:private static
参数:
- cls: Class<?super T>
说明:
TODO
public static boolean isClassRecognized(Class<?> cls) @ L148
- 方法名:isClassRecognized
- 源码定位:L148
- 返回类型:boolean
- 修饰符:public static
参数:
- cls: Class<?>
说明:
TODO
public static <A extends ArgumentType<?>> ArgumentTypeInfo<A,?> byClass(A argumentType) @ L152
参数:
- argumentType: A
说明:
TODO
public static <A extends ArgumentType<?>> ArgumentTypeInfo.Template<A> unpack(A argumentType) @ L161
参数:
- argumentType: A
说明:
TODO
代码
public class ArgumentTypeInfos {
private static final Map<Class<?>, ArgumentTypeInfo<?, ?>> BY_CLASS = Maps.newHashMap();
private static <A extends ArgumentType<?>, T extends ArgumentTypeInfo.Template<A>> ArgumentTypeInfo<A, T> register(
Registry<ArgumentTypeInfo<?, ?>> registry, String id, Class<? extends A> brigadierType, ArgumentTypeInfo<A, T> info
) {
BY_CLASS.put(brigadierType, info);
return Registry.register(registry, id, info);
}
public static ArgumentTypeInfo<?, ?> bootstrap(Registry<ArgumentTypeInfo<?, ?>> registry) {
register(registry, "brigadier:bool", BoolArgumentType.class, SingletonArgumentInfo.contextFree(BoolArgumentType::bool));
register(registry, "brigadier:float", FloatArgumentType.class, new FloatArgumentInfo());
register(registry, "brigadier:double", DoubleArgumentType.class, new DoubleArgumentInfo());
register(registry, "brigadier:integer", IntegerArgumentType.class, new IntegerArgumentInfo());
register(registry, "brigadier:long", LongArgumentType.class, new LongArgumentInfo());
register(registry, "brigadier:string", StringArgumentType.class, new StringArgumentSerializer());
register(registry, "entity", EntityArgument.class, new EntityArgument.Info());
register(registry, "game_profile", GameProfileArgument.class, SingletonArgumentInfo.contextFree(GameProfileArgument::gameProfile));
register(registry, "block_pos", BlockPosArgument.class, SingletonArgumentInfo.contextFree(BlockPosArgument::blockPos));
register(registry, "column_pos", ColumnPosArgument.class, SingletonArgumentInfo.contextFree(ColumnPosArgument::columnPos));
register(registry, "vec3", Vec3Argument.class, SingletonArgumentInfo.contextFree(Vec3Argument::vec3));
register(registry, "vec2", Vec2Argument.class, SingletonArgumentInfo.contextFree(Vec2Argument::vec2));
register(registry, "block_state", BlockStateArgument.class, SingletonArgumentInfo.contextAware(BlockStateArgument::block));
register(registry, "block_predicate", BlockPredicateArgument.class, SingletonArgumentInfo.contextAware(BlockPredicateArgument::blockPredicate));
register(registry, "item_stack", ItemArgument.class, SingletonArgumentInfo.contextAware(ItemArgument::item));
register(registry, "item_predicate", ItemPredicateArgument.class, SingletonArgumentInfo.contextAware(ItemPredicateArgument::itemPredicate));
register(registry, "color", ColorArgument.class, SingletonArgumentInfo.contextFree(ColorArgument::color));
register(registry, "hex_color", HexColorArgument.class, SingletonArgumentInfo.contextFree(HexColorArgument::hexColor));
register(registry, "component", ComponentArgument.class, SingletonArgumentInfo.contextAware(ComponentArgument::textComponent));
register(registry, "style", StyleArgument.class, SingletonArgumentInfo.contextAware(StyleArgument::style));
register(registry, "message", MessageArgument.class, SingletonArgumentInfo.contextFree(MessageArgument::message));
register(registry, "nbt_compound_tag", CompoundTagArgument.class, SingletonArgumentInfo.contextFree(CompoundTagArgument::compoundTag));
register(registry, "nbt_tag", NbtTagArgument.class, SingletonArgumentInfo.contextFree(NbtTagArgument::nbtTag));
register(registry, "nbt_path", NbtPathArgument.class, SingletonArgumentInfo.contextFree(NbtPathArgument::nbtPath));
register(registry, "objective", ObjectiveArgument.class, SingletonArgumentInfo.contextFree(ObjectiveArgument::objective));
register(registry, "objective_criteria", ObjectiveCriteriaArgument.class, SingletonArgumentInfo.contextFree(ObjectiveCriteriaArgument::criteria));
register(registry, "operation", OperationArgument.class, SingletonArgumentInfo.contextFree(OperationArgument::operation));
register(registry, "particle", ParticleArgument.class, SingletonArgumentInfo.contextAware(ParticleArgument::particle));
register(registry, "angle", AngleArgument.class, SingletonArgumentInfo.contextFree(AngleArgument::angle));
register(registry, "rotation", RotationArgument.class, SingletonArgumentInfo.contextFree(RotationArgument::rotation));
register(registry, "scoreboard_slot", ScoreboardSlotArgument.class, SingletonArgumentInfo.contextFree(ScoreboardSlotArgument::displaySlot));
register(registry, "score_holder", ScoreHolderArgument.class, new ScoreHolderArgument.Info());
register(registry, "swizzle", SwizzleArgument.class, SingletonArgumentInfo.contextFree(SwizzleArgument::swizzle));
register(registry, "team", TeamArgument.class, SingletonArgumentInfo.contextFree(TeamArgument::team));
register(registry, "item_slot", SlotArgument.class, SingletonArgumentInfo.contextFree(SlotArgument::slot));
register(registry, "item_slots", SlotsArgument.class, SingletonArgumentInfo.contextFree(SlotsArgument::slots));
register(registry, "resource_location", IdentifierArgument.class, SingletonArgumentInfo.contextFree(IdentifierArgument::id));
register(registry, "function", FunctionArgument.class, SingletonArgumentInfo.contextFree(FunctionArgument::functions));
register(registry, "entity_anchor", EntityAnchorArgument.class, SingletonArgumentInfo.contextFree(EntityAnchorArgument::anchor));
register(registry, "int_range", RangeArgument.Ints.class, SingletonArgumentInfo.contextFree(RangeArgument::intRange));
register(registry, "float_range", RangeArgument.Floats.class, SingletonArgumentInfo.contextFree(RangeArgument::floatRange));
register(registry, "dimension", DimensionArgument.class, SingletonArgumentInfo.contextFree(DimensionArgument::dimension));
register(registry, "gamemode", GameModeArgument.class, SingletonArgumentInfo.contextFree(GameModeArgument::gameMode));
register(registry, "time", TimeArgument.class, new TimeArgument.Info());
register(registry, "resource_or_tag", fixClassType(ResourceOrTagArgument.class), new ResourceOrTagArgument.Info<Object>());
register(registry, "resource_or_tag_key", fixClassType(ResourceOrTagKeyArgument.class), new ResourceOrTagKeyArgument.Info<Object>());
register(registry, "resource", fixClassType(ResourceArgument.class), new ResourceArgument.Info<Object>());
register(registry, "resource_key", fixClassType(ResourceKeyArgument.class), new ResourceKeyArgument.Info<Object>());
register(registry, "resource_selector", fixClassType(ResourceSelectorArgument.class), new ResourceSelectorArgument.Info<Object>());
register(registry, "template_mirror", TemplateMirrorArgument.class, SingletonArgumentInfo.contextFree(TemplateMirrorArgument::templateMirror));
register(registry, "template_rotation", TemplateRotationArgument.class, SingletonArgumentInfo.contextFree(TemplateRotationArgument::templateRotation));
register(registry, "heightmap", HeightmapTypeArgument.class, SingletonArgumentInfo.contextFree(HeightmapTypeArgument::heightmap));
register(registry, "loot_table", ResourceOrIdArgument.LootTableArgument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgument::lootTable));
register(
registry,
"loot_predicate",
ResourceOrIdArgument.LootPredicateArgument.class,
SingletonArgumentInfo.contextAware(ResourceOrIdArgument::lootPredicate)
);
register(
registry, "loot_modifier", ResourceOrIdArgument.LootModifierArgument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgument::lootModifier)
);
register(registry, "dialog", ResourceOrIdArgument.DialogArgument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgument::dialog));
return register(registry, "uuid", UuidArgument.class, SingletonArgumentInfo.contextFree(UuidArgument::uuid));
}
private static <T extends ArgumentType<?>> Class<T> fixClassType(Class<? super T> cls) {
return (Class<T>)cls;
}
public static boolean isClassRecognized(Class<?> cls) {
return BY_CLASS.containsKey(cls);
}
public static <A extends ArgumentType<?>> ArgumentTypeInfo<A, ?> byClass(A argumentType) {
ArgumentTypeInfo<?, ?> result = BY_CLASS.get(argumentType.getClass());
if (result == null) {
throw new IllegalArgumentException(String.format(Locale.ROOT, "Unrecognized argument type %s (%s)", argumentType, argumentType.getClass()));
} else {
return (ArgumentTypeInfo<A, ?>)result;
}
}
public static <A extends ArgumentType<?>> ArgumentTypeInfo.Template<A> unpack(A argumentType) {
return byClass(argumentType).unpack(argumentType);
}
}引用的其他类
-
- 引用位置:
方法调用/构造调用 - 关联成员:
EntityArgument.Info(), Info()
- 引用位置:
-
- 引用位置:
方法调用/构造调用 - 关联成员:
Info(), ScoreHolderArgument.Info()
- 引用位置:
-
- 引用位置:
方法调用/构造调用 - 关联成员:
Info(), TimeArgument.Info()
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SingletonArgumentInfo.contextAware(), SingletonArgumentInfo.contextFree()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
DoubleArgumentInfo()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
FloatArgumentInfo()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
IntegerArgumentInfo()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
LongArgumentInfo()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
StringArgumentSerializer()
- 引用位置:
-
- 引用位置:
参数/方法调用 - 关联成员:
Registry.register()
- 引用位置: