Improved version detection to be more reliable.

This commit is contained in:
sk89q 2010-12-25 20:52:56 -08:00
parent d94fe00e3e
commit e67d01cbb9

View File

@ -38,6 +38,12 @@ public class WorldEdit extends Plugin {
* WorldEditLibrary instance. * WorldEditLibrary instance.
*/ */
private static final WorldEditListener listener = new WorldEditListener(); private static final WorldEditListener listener = new WorldEditListener();
/**
* WorldEdit version, fetched from the .jar's manifest. Used to print the
* WorldEdit version in various places.
*/
private String version;
/** /**
* Initializes the plugin. * Initializes the plugin.
@ -81,22 +87,32 @@ public class WorldEdit extends Plugin {
} }
/** /**
* Get the WorldEdit version. * Get the CraftBook version.
* *
* @return * @return
*/ */
private String getVersion() { public String getVersion() {
try { if (version != null) {
String classContainer = WorldEdit.class.getProtectionDomain() return version;
.getCodeSource().getLocation().toString();
URL manifestUrl = new URL("jar:" + classContainer + "!/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(manifestUrl.openStream());
Attributes attrib = manifest.getMainAttributes();
String ver = (String)attrib.getValue("WorldEdit-Version");
return ver != null ? ver : "(unavailable)";
} catch (IOException e) {
return "(unknown)";
} }
Package p = WorldEdit.class.getPackage();
if (p == null) {
p = Package.getPackage("com.sk89q.worldedit");
}
if (p == null) {
version = "(unknown)";
} else {
version = p.getImplementationVersion();
if (version == null) {
version = "(unknown)";
}
}
return version;
} }
/** /**