Remove redundant Function

This commit is contained in:
Jason Penilla 2021-11-25 14:39:37 -08:00 committed by Jason
parent c473e9674a
commit a22d9e0100
2 changed files with 12 additions and 16 deletions

View file

@ -32,7 +32,6 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -68,7 +67,7 @@ public final class CraftBukkitReflection {
@SafeVarargs @SafeVarargs
public static <T> @Nullable T firstNonNullOrNull( public static <T> @Nullable T firstNonNullOrNull(
final @Nullable T @NonNull... elements final @Nullable T @NonNull ... elements
) { ) {
for (final T element : elements) { for (final T element : elements) {
if (element != null) { if (element != null) {
@ -82,7 +81,7 @@ public final class CraftBukkitReflection {
@SuppressWarnings("varargs") @SuppressWarnings("varargs")
public static <T> @NonNull T firstNonNullOrThrow( public static <T> @NonNull T firstNonNullOrThrow(
final @NonNull Supplier<@NonNull String> errorMessage, final @NonNull Supplier<@NonNull String> errorMessage,
final @Nullable T @NonNull... elements final @Nullable T @NonNull ... elements
) { ) {
final @Nullable T t = firstNonNullOrNull(elements); final @Nullable T t = firstNonNullOrNull(elements);
if (t == null) { if (t == null) {
@ -205,11 +204,8 @@ public final class CraftBukkitReflection {
} }
} }
public static <T> T streamMethods( public static Stream<Method> streamMethods(final @NonNull Class<?> clazz) {
final @NonNull Class<?> clazz, return Arrays.stream(clazz.getDeclaredMethods());
final @NonNull Function<Stream<Method>, T> function
) {
return function.apply(Arrays.stream(clazz.getDeclaredMethods()));
} }
private CraftBukkitReflection() { private CraftBukkitReflection() {

View file

@ -203,18 +203,18 @@ public final class BlockPredicateArgument<C> extends CommandArgument<C, BlockPre
CraftBukkitReflection.findMethod(ARGUMENT_BLOCK_PREDICATE_RESULT_CLASS, "create", TAG_CONTAINER_CLASS), CraftBukkitReflection.findMethod(ARGUMENT_BLOCK_PREDICATE_RESULT_CLASS, "create", TAG_CONTAINER_CLASS),
CraftBukkitReflection.findMethod(ARGUMENT_BLOCK_PREDICATE_RESULT_CLASS, "a", TAG_CONTAINER_CLASS) CraftBukkitReflection.findMethod(ARGUMENT_BLOCK_PREDICATE_RESULT_CLASS, "a", TAG_CONTAINER_CLASS)
); );
private static final Method GET_SERVER_METHOD = CraftBukkitReflection.streamMethods( private static final Method GET_SERVER_METHOD = CraftBukkitReflection.streamMethods(COMMAND_LISTENER_WRAPPER_CLASS)
COMMAND_LISTENER_WRAPPER_CLASS, .filter(it -> it.getReturnType().equals(MINECRAFT_SERVER_CLASS) && it.getParameterCount() == 0)
stream -> stream.filter(it -> it.getReturnType().equals(MINECRAFT_SERVER_CLASS) && it.getParameterCount() == 0) .findFirst()
.findFirst().orElseThrow(() -> new IllegalStateException("Could not find CommandSourceStack#getServer.")) .orElseThrow(() -> new IllegalStateException("Could not find CommandSourceStack#getServer."));
);
private static final Method GET_TAG_REGISTRY_METHOD = CraftBukkitReflection.firstNonNullOrThrow( private static final Method GET_TAG_REGISTRY_METHOD = CraftBukkitReflection.firstNonNullOrThrow(
() -> "getTags method on MinecraftServer", () -> "getTags method on MinecraftServer",
CraftBukkitReflection.findMethod(MINECRAFT_SERVER_CLASS, "getTagRegistry"), CraftBukkitReflection.findMethod(MINECRAFT_SERVER_CLASS, "getTagRegistry"),
CraftBukkitReflection.findMethod(MINECRAFT_SERVER_CLASS, "getTags"), CraftBukkitReflection.findMethod(MINECRAFT_SERVER_CLASS, "getTags"),
CraftBukkitReflection.streamMethods(MINECRAFT_SERVER_CLASS, stream -> CraftBukkitReflection.streamMethods(MINECRAFT_SERVER_CLASS)
stream.filter(it -> it.getReturnType().equals(TAG_CONTAINER_CLASS) && it.getParameterCount() == 0) .filter(it -> it.getReturnType().equals(TAG_CONTAINER_CLASS) && it.getParameterCount() == 0)
.findFirst().orElse(null)) .findFirst()
.orElse(null)
); );
private final ArgumentParser<C, BlockPredicate> parser; private final ArgumentParser<C, BlockPredicate> parser;