summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorErik Broes <erikbroes@grum.nl>2011-04-03 16:12:44 +0200
committerErik Broes <erikbroes@grum.nl>2011-04-03 16:12:44 +0200
commit5fd890208fef07fef007c8dec7f86d97f145effc (patch)
tree9b6f9a863f98e8bb187e686143b8c5709e5681fe /src
parent3d0781c8bf8d863c4a86bb4ef2a2c181f9abfda2 (diff)
downloadbukkit-5fd890208fef07fef007c8dec7f86d97f145effc.tar
bukkit-5fd890208fef07fef007c8dec7f86d97f145effc.tar.gz
bukkit-5fd890208fef07fef007c8dec7f86d97f145effc.tar.lz
bukkit-5fd890208fef07fef007c8dec7f86d97f145effc.tar.xz
bukkit-5fd890208fef07fef007c8dec7f86d97f145effc.zip
Plugin's datafolders are now named after the plugin's name (from config.yml)
The code will automagically rename the old data folder to the new format (if it can) or else throw a fatal error you better solve :D
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/plugin/SimplePluginManager.java6
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java35
2 files changed, 37 insertions, 4 deletions
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index ff9e3e89..6f9f71eb 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -107,16 +107,16 @@ public final class SimplePluginManager implements PluginManager {
itr.remove();
} catch (UnknownDependencyException ex) {
if(finalPass) {
- server.getLogger().log(Level.SEVERE, "Could not load " + file.getPath() + " in " + directory.getPath() + ": " + ex.getMessage(), ex);
+ server.getLogger().log(Level.SEVERE, "Could not load '" + file.getPath() + "' in folder '" + directory.getPath() + "': " + ex.getMessage(), ex);
itr.remove();
} else {
plugin = null;
}
} catch (InvalidPluginException ex) {
- server.getLogger().log(Level.SEVERE, "Could not load " + file.getPath() + " in " + directory.getPath() + ": " + ex.getMessage(), ex);
+ server.getLogger().log(Level.SEVERE, "Could not load '" + file.getPath() + "' in folder '" + directory.getPath() + "': ", ex.getCause());
itr.remove();
} catch (InvalidDescriptionException ex) {
- server.getLogger().log(Level.SEVERE, "Could not load " + file.getPath() + " in " + directory.getPath() + ": " + ex.getMessage(), ex);
+ server.getLogger().log(Level.SEVERE, "Could not load '" + file.getPath() + "' in folder '" + directory.getPath() + "': " + ex.getMessage(), ex);
itr.remove();
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 017076c7..2018d0af 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -12,6 +12,7 @@ import java.util.Set;
import java.util.ArrayList;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import java.util.logging.Level;
import java.util.regex.Pattern;
import org.bukkit.Server;
import org.bukkit.event.CustomEventListener;
@@ -67,7 +68,39 @@ public final class JavaPluginLoader implements PluginLoader {
throw new InvalidPluginException(ex);
}
- File dataFolder = getDataFolder(file);
+ File dataFolder = new File(file.getParentFile(), description.getName());
+ File oldDataFolder = getDataFolder(file);
+
+ // Found old data folder
+ if (dataFolder.isDirectory() && oldDataFolder.isDirectory()) {
+ server.getLogger().log( Level.INFO, String.format(
+ "While loading %s (%s) found old-data folder: %s next to the new one: %s",
+ description.getName(),
+ file,
+ oldDataFolder,
+ dataFolder
+ ));
+ } else if (oldDataFolder.isDirectory() && !dataFolder.exists()) {
+ if (!oldDataFolder.renameTo(dataFolder)) {
+ throw new InvalidPluginException(new Exception("Unable to rename old data folder: '" + oldDataFolder + "' to: '" + dataFolder + "'"));
+ }
+ server.getLogger().log( Level.INFO, String.format(
+ "While loading %s (%s) renamed data folder: '%s' to '%s'",
+ description.getName(),
+ file,
+ oldDataFolder,
+ dataFolder
+ ));
+ }
+
+ if (dataFolder.exists() && !dataFolder.isDirectory()) {
+ throw new InvalidPluginException(new Exception(String.format(
+ "Projected datafolder: '%s' for %s (%s) exists and is not a directory",
+ dataFolder,
+ description.getName(),
+ file
+ )));
+ }
ArrayList<String> depend;
try {