start plugin stuff

This commit is contained in:
EOT3000 2019-07-08 15:47:37 -04:00
parent 6f3c00c6ab
commit abdd207406
4 changed files with 35 additions and 1 deletions

View file

@ -0,0 +1,18 @@
package org.geysermc.api;
import org.geysermc.api.plugin.Plugin;
import java.util.ArrayList;
import java.util.List;
public class Geyser {
private static final List<Plugin> plugins = new ArrayList<>();
public static List<Plugin> getPlugins() {
return new ArrayList<>(plugins);
}
public static void add(Plugin p) {
plugins.add(p);
}
}

View file

@ -8,4 +8,8 @@ public class Plugin {
public void onDisable() {
}
public void onLoad() {
}
}

View file

@ -24,6 +24,7 @@ import org.geysermc.connector.command.GeyserCommandMap;
import org.geysermc.connector.configuration.GeyserConfiguration;
import org.geysermc.connector.console.ConsoleCommandReader;
import org.geysermc.connector.console.GeyserLogger;
import org.geysermc.connector.plugin.Loader;
import java.io.File;
import java.io.FileOutputStream;
@ -93,6 +94,9 @@ public class GeyserConnector {
logger.severe("Failed to create config.yml! Make sure it's up to date and writable!");
shutdown();
}
Loader.start();
commandMap = new GeyserCommandMap(this);
}

View file

@ -2,6 +2,7 @@ package org.geysermc.connector.plugin;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import org.geysermc.api.Geyser;
import org.geysermc.api.plugin.Plugin;
import java.io.File;
@ -58,7 +59,11 @@ public class Loader extends ClassLoader {
is.close();
((Plugin) Class.forName(yml.main, true, l).newInstance()).onEnable();
Plugin plugin = (Plugin) Class.forName(yml.main, true, l).newInstance();
plugin.onLoad();
Geyser.add(plugin);
} catch (Exception e) {
System.out.println("Error loading plugin " + f.getName());
@ -66,6 +71,9 @@ public class Loader extends ClassLoader {
}
}
}
for(Plugin p : Geyser.getPlugins()) {
p.onEnable();
}
LOADER = l;
}