made displayName independent of other appliances
This commit is contained in:
@ -21,6 +21,7 @@ public final class Main extends JavaPlugin {
|
||||
|
||||
private List<Appliance> appliances;
|
||||
private RepositoryLoader repositoryLoader;
|
||||
private Reflections reflections;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
@ -39,15 +40,15 @@ public final class Main extends JavaPlugin {
|
||||
Configuration.readConfig();
|
||||
List<String> disabledAppliances = Configuration.pluginConfig.getStringList("disabledAppliances");
|
||||
|
||||
Main.logger().info("Initializing reflections...");
|
||||
this.reflections = new Reflections("eu.mhsl.craftattack.spawn");
|
||||
|
||||
Main.logger().info("Loading Repositories...");
|
||||
this.repositoryLoader = new RepositoryLoader();
|
||||
Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size()));
|
||||
|
||||
Main.logger().info("Loading appliances...");
|
||||
Reflections reflections = new Reflections("eu.mhsl.craftattack.spawn");
|
||||
Set<Class<? extends Appliance>> applianceClasses = reflections.getSubTypesOf(Appliance.class);
|
||||
|
||||
this.appliances = applianceClasses.stream()
|
||||
this.appliances = this.findSubtypesOf(Appliance.class).stream()
|
||||
.filter(applianceClass -> !disabledAppliances.contains(applianceClass.getSimpleName()))
|
||||
.map(applianceClass -> {
|
||||
try {
|
||||
@ -97,6 +98,10 @@ public final class Main extends JavaPlugin {
|
||||
.orElseThrow(() -> new RuntimeException(String.format("Appliance %s not loaded or instantiated!", clazz)));
|
||||
}
|
||||
|
||||
public <T> Set<Class<? extends T>> findSubtypesOf(Class<T> type) {
|
||||
return this.reflections.getSubTypesOf(type);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Class<T> getApplianceType(Class<?> clazz) {
|
||||
return (Class<T>) ((ParameterizedType) clazz.getGenericSuperclass()).getActualTypeArguments()[0];
|
||||
|
Reference in New Issue
Block a user