Simplify Argument
Dieser Commit ist enthalten in:
Ursprung
fe8c387df5
Commit
9eb6918594
@ -62,22 +62,13 @@ public class Argument<T> {
|
|||||||
return GameMode.ADVENTURE;
|
return GameMode.ADVENTURE;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}, Objects::nonNull, "creative", "survival", "spectator");
|
}, Objects::nonNull, GameMode.class);
|
||||||
|
|
||||||
private static final String[] materialArray = Arrays.stream(Material.values()).map(Enum::name).toArray(String[]::new);
|
public static final Argument<Material> MATERIAL = new Argument<>(Material::valueOf, Objects::nonNull, Material.class);
|
||||||
public static final Argument<Material> MATERIAL = new Argument<>(Material::valueOf, Objects::nonNull, materialArray);
|
public static final Argument<Particle> PARTICLE = new Argument<>(Particle::valueOf, Objects::nonNull, Particle.class);
|
||||||
|
public static final Argument<EntityType> ENTITY = new Argument<>(EntityType::valueOf, Objects::nonNull, EntityType.class);
|
||||||
private static final String[] particleArray = Arrays.stream(Particle.values()).map(Enum::name).toArray(String[]::new);
|
public static final Argument<Sound> SOUND = new Argument<>(Sound::valueOf, Objects::nonNull, Sound.class);
|
||||||
public static final Argument<Particle> PARTICLE = new Argument<>(Particle::valueOf, Objects::nonNull, particleArray);
|
public static final Argument<SoundCategory> SOUND_CATEGORY = new Argument<>(SoundCategory::valueOf, Objects::nonNull, SoundCategory.class);
|
||||||
|
|
||||||
private static final String[] entityArray = Arrays.stream(EntityType.values()).map(Enum::name).toArray(String[]::new);
|
|
||||||
public static final Argument<EntityType> ENTITY = new Argument<>(EntityType::valueOf, Objects::nonNull, entityArray);
|
|
||||||
|
|
||||||
private static final String[] soundArray = Arrays.stream(Sound.values()).map(Enum::name).toArray(String[]::new);
|
|
||||||
public static final Argument<Sound> SOUND = new Argument<>(Sound::valueOf, Objects::nonNull, soundArray);
|
|
||||||
|
|
||||||
private static final String[] soundCategoryArray = Arrays.stream(SoundCategory.values()).map(Enum::name).toArray(String[]::new);
|
|
||||||
public static final Argument<SoundCategory> SOUND_CATEGORY = new Argument<>(SoundCategory::valueOf, Objects::nonNull, soundCategoryArray);
|
|
||||||
|
|
||||||
private Function<String, T> mapper;
|
private Function<String, T> mapper;
|
||||||
private Predicate<T> constraint;
|
private Predicate<T> constraint;
|
||||||
@ -87,6 +78,10 @@ public class Argument<T> {
|
|||||||
this(mapper, constraint, s -> tabCompletes);
|
this(mapper, constraint, s -> tabCompletes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Argument(Function<String, T> mapper, Predicate<T> constraint, Class<? extends Enum<?>> tabCompletes) {
|
||||||
|
this(mapper, constraint, s -> Arrays.stream(tabCompletes.getEnumConstants()).map(e -> e.name().toLowerCase()).toArray(String[]::new));
|
||||||
|
}
|
||||||
|
|
||||||
public Argument(Function<String, T> mapper, Predicate<T> constraint, Supplier<String[]> tabCompletes) {
|
public Argument(Function<String, T> mapper, Predicate<T> constraint, Supplier<String[]> tabCompletes) {
|
||||||
this(mapper, constraint, s -> tabCompletes.get());
|
this(mapper, constraint, s -> tabCompletes.get());
|
||||||
}
|
}
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren