summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorDinnerbone <dinnerbone@dinnerbone.com>2011-06-22 17:46:12 +0100
committerDinnerbone <dinnerbone@dinnerbone.com>2011-06-22 18:27:51 +0100
commitd647e2098eb48c51fff9d200be1d71b94b2ade6b (patch)
tree19c6f5714accd8e9f3a8a831b26c1af6338e0a2a /src/main
parentff67eda4c4d1018dd956010918645cecd35c2854 (diff)
downloadcraftbukkit-d647e2098eb48c51fff9d200be1d71b94b2ade6b.tar
craftbukkit-d647e2098eb48c51fff9d200be1d71b94b2ade6b.tar.gz
craftbukkit-d647e2098eb48c51fff9d200be1d71b94b2ade6b.tar.lz
craftbukkit-d647e2098eb48c51fff9d200be1d71b94b2ade6b.tar.xz
craftbukkit-d647e2098eb48c51fff9d200be1d71b94b2ade6b.zip
Implemented startup plugin loading
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/minecraft/server/MinecraftServer.java3
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftServer.java33
2 files changed, 22 insertions, 14 deletions
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 549e337c..81e36680 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -25,6 +25,7 @@ import org.bukkit.craftbukkit.command.ColouredConsoleSender;
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
import org.bukkit.craftbukkit.util.ServerShutdownThread;
import org.bukkit.event.world.WorldSaveEvent;
+import org.bukkit.plugin.PluginLoadOrder;
// CraftBukkit
public class MinecraftServer implements Runnable, ICommandListener {
@@ -263,7 +264,7 @@ public class MinecraftServer implements Runnable, ICommandListener {
this.i = null;
this.j = 0;
- server.loadPlugins(); // CraftBukkit
+ server.enablePlugins(PluginLoadOrder.POSTWORLD);
}
void saveChunks() { // CraftBukkit - private -> default
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1da14352..a7cc8e4c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -58,6 +58,7 @@ import org.bukkit.craftbukkit.command.ServerCommandListener;
import org.bukkit.scheduler.BukkitWorker;
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
import org.bukkit.event.world.WorldInitEvent;
+import org.bukkit.plugin.PluginLoadOrder;
import org.bukkit.util.config.Configuration;
import org.bukkit.util.config.ConfigurationNode;
@@ -87,6 +88,8 @@ public final class CraftServer implements Server {
configuration.load();
loadConfigDefaults();
configuration.save();
+ loadPlugins();
+ enablePlugins(PluginLoadOrder.STARTUP);
}
private void loadConfigDefaults() {
@@ -110,20 +113,13 @@ public final class CraftServer implements Server {
File pluginFolder = (File) console.options.valueOf("plugins");
if (pluginFolder.exists()) {
- try {
- Plugin[] plugins = pluginManager.loadPlugins(pluginFolder);
- for (Plugin plugin : plugins) {
- try {
- plugin.onLoad();
- } catch (Throwable ex) {
- Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " initializing " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
- }
+ Plugin[] plugins = pluginManager.loadPlugins(pluginFolder);
+ for (Plugin plugin : plugins) {
+ try {
+ plugin.onLoad();
+ } catch (Throwable ex) {
+ Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " initializing " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
}
- for (Plugin plugin : plugins) {
- loadPlugin(plugin);
- }
- } catch (Throwable ex) {
- Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " (Is it up to date?)", ex);
}
} else {
pluginFolder.mkdir();
@@ -132,6 +128,15 @@ public final class CraftServer implements Server {
commandMap.registerServerAliases();
}
+ public void enablePlugins(PluginLoadOrder type) {
+ Plugin[] plugins = pluginManager.getPlugins();
+ for (Plugin plugin : plugins) {
+ if ((!plugin.isEnabled()) && (plugin.getDescription().getLoad() == type)) {
+ loadPlugin(plugin);
+ }
+ }
+ }
+
public void disablePlugins() {
pluginManager.disablePlugins();
}
@@ -349,6 +354,8 @@ public final class CraftServer implements Server {
));
}
loadPlugins();
+ enablePlugins(PluginLoadOrder.STARTUP);
+ enablePlugins(PluginLoadOrder.POSTWORLD);
}
@Override