mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
Moved a bunch of methods out of PluginLoader to PluginManager
By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
parent
a28c9acb1b
commit
0503a134ba
3 changed files with 46 additions and 46 deletions
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
Loading…
Reference in a new issue