Deleted old plugin manager code
This commit is contained in:
		@@ -1,185 +0,0 @@
 | 
			
		||||
package hu.ditservices.handlers;
 | 
			
		||||
/*
 | 
			
		||||
import hu.ditservices.DITSystem;
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.PluginCommand;
 | 
			
		||||
import org.bukkit.command.SimpleCommandMap;
 | 
			
		||||
import org.bukkit.event.Event;
 | 
			
		||||
import org.bukkit.plugin.*;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.lang.reflect.Field;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public class DitPluginManager {
 | 
			
		||||
    private static DITSystem plugin;
 | 
			
		||||
    public DitPluginManager(DITSystem instance){
 | 
			
		||||
        plugin = instance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static int load(final String pluginName) {
 | 
			
		||||
        PluginManager pm = Bukkit.getServer().getPluginManager();
 | 
			
		||||
        boolean there = false;
 | 
			
		||||
        for (Plugin pl : pm.getPlugins()){
 | 
			
		||||
            if (pl.getName().toLowerCase().startsWith(pluginName)){
 | 
			
		||||
                there = true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if (there)
 | 
			
		||||
        { return 1;} //plugin already exists
 | 
			
		||||
        else {
 | 
			
		||||
            String name = "";
 | 
			
		||||
            String path = plugin.getDataFolder().getParent();
 | 
			
		||||
            File folder = new File(path);
 | 
			
		||||
            ArrayList<File> files = new ArrayList<File>();
 | 
			
		||||
            File[] listOfFiles = folder.listFiles();
 | 
			
		||||
            for (File compare : listOfFiles) {
 | 
			
		||||
                if (compare.isFile()) {
 | 
			
		||||
                    try {
 | 
			
		||||
                        name = plugin.getPluginLoader().getPluginDescription(compare).getName();
 | 
			
		||||
                    } catch (InvalidDescriptionException e) {
 | 
			
		||||
                        plugin.getLogger().warning("[Loading Plugin] " + compare.getName() + " didn't match");
 | 
			
		||||
                    }
 | 
			
		||||
                    if (name.toLowerCase().startsWith(pluginName.toLowerCase())) {
 | 
			
		||||
                        files.add(compare);
 | 
			
		||||
                        try {
 | 
			
		||||
                            Bukkit.getServer().getPluginManager().loadPlugin(compare);
 | 
			
		||||
                        } catch (UnknownDependencyException e) {
 | 
			
		||||
                            return 2; //missing dependent plugin
 | 
			
		||||
                        } catch (InvalidPluginException e) {
 | 
			
		||||
                            return -1; //not a plugin
 | 
			
		||||
                        } catch (InvalidDescriptionException e) {
 | 
			
		||||
                            return 3; //invalid description
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Plugin[] plugins = pm.getPlugins();
 | 
			
		||||
            for (Plugin pl : plugins) {
 | 
			
		||||
                for (File compare : files) {
 | 
			
		||||
                    try {
 | 
			
		||||
                        if (pl.getName().equalsIgnoreCase(plugin.getPluginLoader().getPluginDescription(compare).getName()))
 | 
			
		||||
                            if (!pl.isEnabled()){
 | 
			
		||||
                                pm.enablePlugin(pl);
 | 
			
		||||
                            }else { return 5; }
 | 
			
		||||
                    } catch (InvalidDescriptionException e) {
 | 
			
		||||
                        e.printStackTrace();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return 0; //success
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("unchecked")
 | 
			
		||||
    public static int unload(String pluginName) {
 | 
			
		||||
        pluginName = pluginName.toLowerCase().trim();
 | 
			
		||||
        PluginManager manager = Bukkit.getServer().getPluginManager();
 | 
			
		||||
        SimplePluginManager spm = (SimplePluginManager) manager;
 | 
			
		||||
        SimpleCommandMap commandMap = null;
 | 
			
		||||
        List<Plugin> plugins = null;
 | 
			
		||||
        Map<String, Plugin> lookupNames = null;
 | 
			
		||||
        Map<String, Command> knownCommands = null;
 | 
			
		||||
        Map<Event, SortedSet<RegisteredListener>> listeners = null;
 | 
			
		||||
        boolean reloadlisteners = true;
 | 
			
		||||
        try {
 | 
			
		||||
            if (spm != null) {
 | 
			
		||||
                Field pluginsField = spm.getClass().getDeclaredField("plugins");
 | 
			
		||||
                pluginsField.setAccessible(true);
 | 
			
		||||
                plugins = (List<Plugin>) pluginsField.get(spm);
 | 
			
		||||
 | 
			
		||||
                Field lookupNamesField = spm.getClass().getDeclaredField("lookupNames");
 | 
			
		||||
                lookupNamesField.setAccessible(true);
 | 
			
		||||
                lookupNames = (Map<String, Plugin>) lookupNamesField.get(spm);
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    Field listenersField = spm.getClass().getDeclaredField("listeners");
 | 
			
		||||
                    listenersField.setAccessible(true);
 | 
			
		||||
                    listeners = (Map<Event, SortedSet<RegisteredListener>>) listenersField.get(spm);
 | 
			
		||||
                } catch (Exception e) {
 | 
			
		||||
                    reloadlisteners = false;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                Field commandMapField = spm.getClass().getDeclaredField("commandMap");
 | 
			
		||||
                commandMapField.setAccessible(true);
 | 
			
		||||
                commandMap = (SimpleCommandMap) commandMapField.get(spm);
 | 
			
		||||
 | 
			
		||||
                Field knownCommandsField = commandMap.getClass().getDeclaredField("knownCommands");
 | 
			
		||||
                knownCommandsField.setAccessible(true);
 | 
			
		||||
                knownCommands = (Map<String, Command>) knownCommandsField.get(commandMap);
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
        boolean in = false;
 | 
			
		||||
 | 
			
		||||
        for (Plugin pl : Bukkit.getServer().getPluginManager().getPlugins()) {
 | 
			
		||||
            if (in)
 | 
			
		||||
                break;
 | 
			
		||||
            if (pl.getName().toLowerCase().startsWith(pluginName.toLowerCase())) {
 | 
			
		||||
                if (pl.isEnabled()) {
 | 
			
		||||
                    manager.disablePlugin(pl);
 | 
			
		||||
                    if (plugins != null && plugins.contains(pl))
 | 
			
		||||
                        plugins.remove(pl);
 | 
			
		||||
 | 
			
		||||
                    if (lookupNames != null && lookupNames.containsKey(pl.getName())) {
 | 
			
		||||
                        lookupNames.remove(pl.getName());
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (listeners != null && reloadlisteners) {
 | 
			
		||||
                        for (SortedSet<RegisteredListener> set : listeners.values()) {
 | 
			
		||||
                            for (Iterator<RegisteredListener> it = set.iterator(); it.hasNext(); ) {
 | 
			
		||||
                                RegisteredListener value = it.next();
 | 
			
		||||
 | 
			
		||||
                                if (value.getPlugin() == pl) {
 | 
			
		||||
                                    it.remove();
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (commandMap != null) {
 | 
			
		||||
 | 
			
		||||
                        for (Iterator<Map.Entry<String, Command>> it = knownCommands.entrySet().iterator(); it.hasNext(); ) {
 | 
			
		||||
                            Map.Entry<String, Command> entry = it.next();
 | 
			
		||||
                            if (entry.getValue() instanceof PluginCommand) {
 | 
			
		||||
                                PluginCommand c = (PluginCommand) entry.getValue();
 | 
			
		||||
                                if (c.getPlugin() == pl) {
 | 
			
		||||
                                    c.unregister(commandMap);
 | 
			
		||||
                                    it.remove();
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    for (Plugin plu : Bukkit.getServer().getPluginManager().getPlugins()) {
 | 
			
		||||
                        if (plu.getDescription().getDepend() != null) {
 | 
			
		||||
                            for (String depend : plu.getDescription().getDepend()) {
 | 
			
		||||
                                if (depend.equalsIgnoreCase(pl.getName())) {
 | 
			
		||||
                                    plugin.getLogger().info("[Unloading Plugin] " + plu.getName() + " must be disabled!");
 | 
			
		||||
                                    unload(plu.getName());
 | 
			
		||||
                                    return 1; //dependencies also disabled
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    in = true;
 | 
			
		||||
                } else { return 5; }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!in) {
 | 
			
		||||
            plugin.getLogger().info("Not an existing plugin");
 | 
			
		||||
            return -1; //non-existent
 | 
			
		||||
        }
 | 
			
		||||
        System.gc();
 | 
			
		||||
        return 0; //success
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
		Reference in New Issue
	
	Block a user