diff --git a/src/main/java/net/canarymod/plugin/DefaultPluginManager.java b/src/main/java/net/canarymod/plugin/DefaultPluginManager.java index 6a1511be..13934446 100644 --- a/src/main/java/net/canarymod/plugin/DefaultPluginManager.java +++ b/src/main/java/net/canarymod/plugin/DefaultPluginManager.java @@ -35,6 +35,7 @@ public final class DefaultPluginManager implements PluginManager { private final Map plugins; // This is keyed to set Plugin name private final DependencyGraph dependencies; private final PropertiesFile pluginPriorities; + private String pluginPath; public DefaultPluginManager() { plugins = new LinkedHashMap(); @@ -310,7 +311,7 @@ public PluginDescriptor getPluginDescriptor(String plugin) { */ @Override public void scanForPlugins() { - File pluginDir = new File("plugins/"); + File pluginDir = new File(pluginPath); if (!pluginDir.exists()) { log.warn("Failed to scan for plugins. 'plugins/' is not a directory. Creating..."); pluginDir.mkdir(); @@ -338,6 +339,22 @@ public void scanForPlugins() { log.info("Found " + loadedDescriptors + " plugins; total: " + plugins.size()); } } + + /** + * {@inheritDoc} + */ + @Override + public void setPluginPath(String path) { + this.pluginPath = path; + } + + /** + * {@inheritDoc} + */ + @Override + public String getPluginPath() { + return pluginPath; + } private boolean loadPluginDescriptorAndInsertInGraph(File pluginFile) throws InvalidPluginException { PluginDescriptor desc = new PluginDescriptor(pluginFile.getAbsolutePath()); diff --git a/src/main/java/net/canarymod/plugin/PluginManager.java b/src/main/java/net/canarymod/plugin/PluginManager.java index be8f6965..8cb09912 100644 --- a/src/main/java/net/canarymod/plugin/PluginManager.java +++ b/src/main/java/net/canarymod/plugin/PluginManager.java @@ -113,4 +113,18 @@ public interface PluginManager { * @return List of known plugin names */ Collection getPluginNames(); + + /** + * Sets the directory where the plugins are read + * + * @param path The Plugin folder path + */ + void setPluginPath(String path); + + /** + * Gets the directory where the plugins are read + * + * @return the Plugin folder path + */ + String getPluginPath(); }