Skip to content

Commit 8e93bbd

Browse files
committed
make module manager instantiable
1 parent 95c281e commit 8e93bbd

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

src/main/java/com/uravgcode/modernessentials/ModernEssentials.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
public final class ModernEssentials extends JavaPlugin {
1212
private static ModernEssentials instance = null;
1313

14+
private ConfigUpdater configUpdater = null;
15+
private ModuleManager moduleManager = null;
16+
1417
public static @NotNull ModernEssentials instance() {
1518
return Objects.requireNonNull(instance, "plugin not initialized");
1619
}
@@ -23,14 +26,15 @@ public void onLoad() {
2326
@Override
2427
public void onEnable() {
2528
new UpdateChecker().checkForUpdate(this);
26-
new ConfigUpdater(this).updateConfig();
27-
ModuleManager.initializeModules(this);
29+
configUpdater = new ConfigUpdater(this);
30+
moduleManager = new ModuleManager(this);
2831
reload();
2932
}
3033

3134
public void reload() {
3235
saveDefaultConfig();
3336
reloadConfig();
34-
ModuleManager.reloadModules();
37+
configUpdater.updateConfig();
38+
moduleManager.reloadModules();
3539
}
3640
}

src/main/java/com/uravgcode/modernessentials/manager/ModuleManager.java

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,33 @@
1111
import java.util.List;
1212

1313
public final class ModuleManager {
14-
private static final List<@NotNull PluginModule> modules = new ArrayList<>();
14+
private final List<@NotNull PluginModule> modules;
1515

16-
private ModuleManager() {
16+
public ModuleManager(@NotNull JavaPlugin plugin) {
17+
final var logger = plugin.getComponentLogger();
18+
19+
modules = new ArrayList<>();
20+
for (final var clazz : discoverModules()) {
21+
try {
22+
final var constructor = clazz.getConstructor(JavaPlugin.class);
23+
final var module = constructor.newInstance(plugin);
24+
modules.add(module);
25+
} catch (Exception exception) {
26+
logger.warn("Failed to initialize {}: {}", clazz.getSimpleName(), exception.getMessage());
27+
}
28+
}
29+
30+
logger.info("Initialized {} modules", modules.size());
1731
}
1832

19-
public static List<@NotNull Class<? extends PluginModule>> discoverModules() {
33+
public void reloadModules() {
34+
modules.forEach(PluginModule::reload);
35+
}
36+
37+
private List<@NotNull Class<? extends PluginModule>> discoverModules() {
2038
try {
2139
final var moduleClasses = new ArrayList<Class<? extends PluginModule>>();
22-
final var classLoader = ModuleManager.class.getClassLoader();
40+
final var classLoader = getClass().getClassLoader();
2341
final var classPath = ClassPath.from(classLoader);
2442

2543
final var packageName = "com.uravgcode.modernessentials.module";
@@ -39,25 +57,4 @@ private ModuleManager() {
3957
throw new RuntimeException(exception);
4058
}
4159
}
42-
43-
public static void initializeModules(@NotNull JavaPlugin plugin) {
44-
final var logger = plugin.getComponentLogger();
45-
46-
modules.clear();
47-
for (final var clazz : discoverModules()) {
48-
try {
49-
final var constructor = clazz.getConstructor(JavaPlugin.class);
50-
final var module = constructor.newInstance(plugin);
51-
modules.add(module);
52-
} catch (Exception exception) {
53-
logger.warn("Failed to initialize {}: {}", clazz.getSimpleName(), exception.getMessage());
54-
}
55-
}
56-
57-
logger.info("Initialized {} modules", modules.size());
58-
}
59-
60-
public static void reloadModules() {
61-
modules.forEach(PluginModule::reload);
62-
}
6360
}

0 commit comments

Comments
 (0)