simplify command reload

This commit is contained in:
xGinko 2024-07-30 20:47:30 +02:00
parent 0a3cd80f9c
commit 6fe1330038

View File

@ -11,11 +11,11 @@ import org.jetbrains.annotations.NotNull;
import org.reflections.Reflections; import org.reflections.Reflections;
import org.reflections.scanners.Scanners; import org.reflections.scanners.Scanners;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
public abstract class VillagerOptimizerCommand implements Enableable, Disableable, CommandExecutor, TabCompleter { public abstract class VillagerOptimizerCommand implements Enableable, Disableable, CommandExecutor, TabCompleter {
@ -36,19 +36,15 @@ public abstract class VillagerOptimizerCommand implements Enableable, Disableabl
COMMANDS.forEach(VillagerOptimizerCommand::disable); COMMANDS.forEach(VillagerOptimizerCommand::disable);
COMMANDS.clear(); COMMANDS.clear();
COMMANDS_PACKAGE.get(Scanners.SubTypes.of(VillagerOptimizerCommand.class).asClass()) for (Class<?> clazz : COMMANDS_PACKAGE.get(Scanners.SubTypes.of(VillagerOptimizerCommand.class).asClass())) {
.stream() if (clazz.isInterface() || Modifier.isAbstract(clazz.getModifiers())) continue;
.filter(clazz -> !clazz.isInterface() && !Modifier.isAbstract(clazz.getModifiers()))
.map(clazz -> { try {
try { COMMANDS.add((VillagerOptimizerCommand) clazz.getDeclaredConstructor().newInstance());
return (VillagerOptimizerCommand) clazz.getDeclaredConstructor().newInstance(); } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
} catch (Throwable t) { VillagerOptimizer.logger().error("Failed initialising command class '{}'.", clazz.getSimpleName(), e);
VillagerOptimizer.logger().error("Failed initialising command '{}'.", clazz.getSimpleName(), t); }
return null; }
}
})
.filter(Objects::nonNull)
.forEach(COMMANDS::add);
COMMANDS.forEach(VillagerOptimizerCommand::enable); COMMANDS.forEach(VillagerOptimizerCommand::enable);
} }