diff --git a/src/main/java/org/nwapw/abacus/fx/AbacusController.java b/src/main/java/org/nwapw/abacus/fx/AbacusController.java
index 5597784..2a0ebd5 100644
--- a/src/main/java/org/nwapw/abacus/fx/AbacusController.java
+++ b/src/main/java/org/nwapw/abacus/fx/AbacusController.java
@@ -255,13 +255,7 @@ public class AbacusController implements PluginListener {
abacus = new Abacus(new Configuration(CONFIG_FILE));
PluginManager abacusPluginManager = abacus.getPluginManager();
abacusPluginManager.addListener(this);
- abacusPluginManager.addInstantiated(new StandardPlugin(abacus.getPluginManager()));
- try {
- ClassFinder.loadJars("plugins").forEach(abacusPluginManager::addClass);
- } catch (IOException | ClassNotFoundException e) {
- e.printStackTrace();
- }
- abacusPluginManager.reload();
+ performScan();
computationLimitField.setText(Double.toString(abacus.getConfiguration().getComputationDelay()));
computationLimitField.textProperty().addListener((observable, oldValue, newValue) -> {
@@ -311,6 +305,19 @@ public class AbacusController implements PluginListener {
reloadAlertShown = false;
}
+ @FXML
+ public void performScan(){
+ PluginManager abacusPluginManager = abacus.getPluginManager();
+ abacusPluginManager.removeAll();
+ abacusPluginManager.addInstantiated(new StandardPlugin(abacus.getPluginManager()));
+ try {
+ ClassFinder.loadJars("plugins").forEach(abacusPluginManager::addClass);
+ } catch (IOException | ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ abacusPluginManager.reload();
+ }
+
@FXML
public void performReload() {
alertIfApplyNeeded(true);
diff --git a/src/main/resources/abacus.fxml b/src/main/resources/abacus.fxml
index 63b144a..99f6022 100644
--- a/src/main/resources/abacus.fxml
+++ b/src/main/resources/abacus.fxml
@@ -57,6 +57,7 @@
+