Moved a bunch of methods out of PluginLoader to PluginManager

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
Bukkit/Spigot 2010-12-24 16:48:58 +00:00
parent a28c9acb1b
commit 0503a134ba
3 changed files with 46 additions and 46 deletions

View file

@ -5,38 +5,10 @@ import java.io.File;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
* Represents a plugin loader, which provides access and management for all plugins * Represents a plugin loader, which handles direct access to specific types
* currently loaded on a server instance * of plugins
*/ */
public interface PluginLoader { public interface PluginLoader {
/**
* Checks if the given plugin is loaded and returns it when applicable
*
* Please note that the name of the plugin is case-sensitive
*
* @param name Name of the plugin to check
* @return Plugin if it exists, otherwise null
*/
public Plugin getPlugin(String name);
/**
* Checks if the given plugin is enabled or not
*
* Please note that the name of the plugin is case-sensitive.
*
* @param name Name of the plugin to check
* @return true if the plugin is enabled, otherwise false
*/
public boolean isPluginEnabled(String name);
/**
* Checks if the given plugin is enabled or not
*
* @param plugin Plugin to check
* @return true if the plugin is enabled, otherwise false
*/
public boolean isPluginEnabled(Plugin plugin);
/** /**
* Loads the plugin contained in the specified file * Loads the plugin contained in the specified file
* *

View file

@ -6,6 +6,7 @@ import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -18,8 +19,9 @@ import java.util.regex.Pattern;
*/ */
public final class PluginManager { public final class PluginManager {
private final Server server; private final Server server;
private final HashMap<Pattern, PluginLoader> fileAssociations = new HashMap<Pattern, PluginLoader>(); private final Map<Pattern, PluginLoader> fileAssociations = new HashMap<Pattern, PluginLoader>();
private final List<Plugin> plugins = new ArrayList<Plugin>(); private final List<Plugin> plugins = new ArrayList<Plugin>();
private final Map<String, Plugin> lookupNames = new HashMap<String, Plugin>();
public PluginManager(Server instance) { public PluginManager(Server instance) {
server = instance; server = instance;
@ -107,9 +109,50 @@ public final class PluginManager {
if (result != null) { if (result != null) {
plugins.add(result); plugins.add(result);
lookupNames.put(result.getDescription().getName(), result);
result.onInitialize(); result.onInitialize();
} }
return result; return result;
} }
/**
* Checks if the given plugin is loaded and returns it when applicable
*
* Please note that the name of the plugin is case-sensitive
*
* @param name Name of the plugin to check
* @return Plugin if it exists, otherwise null
*/
public Plugin getPlugin(String name) {
return lookupNames.get(name);
}
/**
* Checks if the given plugin is enabled or not
*
* Please note that the name of the plugin is case-sensitive.
*
* @param name Name of the plugin to check
* @return true if the plugin is enabled, otherwise false
*/
public boolean isPluginEnabled(String name) {
Plugin plugin = getPlugin(name);
return isPluginEnabled(plugin);
}
/**
* Checks if the given plugin is enabled or not
*
* @param plugin Plugin to check
* @return true if the plugin is enabled, otherwise false
*/
public boolean isPluginEnabled(Plugin plugin) {
if ((plugin != null) && (plugins.contains(plugin))) {
return plugin.isEnabled();
} else {
return false;
}
}
} }

View file

@ -4,11 +4,8 @@ package org.bukkit.plugin.java;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginLoader; import org.bukkit.plugin.PluginLoader;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -29,18 +26,6 @@ public final class JavaPluginLoader implements PluginLoader {
server = instance; server = instance;
} }
public Plugin getPlugin(String name) {
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean isPluginEnabled(String name) {
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean isPluginEnabled(Plugin plugin) {
throw new UnsupportedOperationException("Not supported yet.");
}
public Plugin loadPlugin(File file) throws InvalidPluginException { public Plugin loadPlugin(File file) throws InvalidPluginException {
JavaPlugin result = null; JavaPlugin result = null;
PluginDescriptionFile description = new PluginDescriptionFile("Sample Plugin", "org.bukkit.plugin.sample.main"); PluginDescriptionFile description = new PluginDescriptionFile("Sample Plugin", "org.bukkit.plugin.sample.main");