diff --git a/Artifacts/SubServers.Bungee.jar b/Artifacts/SubServers.Bungee.jar index 2f3b70cf..c7551bcc 100644 Binary files a/Artifacts/SubServers.Bungee.jar and b/Artifacts/SubServers.Bungee.jar differ diff --git a/Artifacts/SubServers.Client.Bukkit.jar b/Artifacts/SubServers.Client.Bukkit.jar index eeac0661..853e2f0f 100644 Binary files a/Artifacts/SubServers.Client.Bukkit.jar and b/Artifacts/SubServers.Client.Bukkit.jar differ diff --git a/Artifacts/SubServers.Host.jar b/Artifacts/SubServers.Host.jar index 847fa9ba..12e808fa 100644 Binary files a/Artifacts/SubServers.Host.jar and b/Artifacts/SubServers.Host.jar differ diff --git a/Artifacts/SubServers.Sync.jar b/Artifacts/SubServers.Sync.jar index b2023193..8357f9e1 100644 Binary files a/Artifacts/SubServers.Sync.jar and b/Artifacts/SubServers.Sync.jar differ diff --git a/Javadoc/SubServers.Bungee.jar b/Javadoc/SubServers.Bungee.jar index 26be25ad..5ef966e7 100644 Binary files a/Javadoc/SubServers.Bungee.jar and b/Javadoc/SubServers.Bungee.jar differ diff --git a/Javadoc/SubServers.Bungee/index-all.html b/Javadoc/SubServers.Bungee/index-all.html index 50b999c2..c24b6404 100644 --- a/Javadoc/SubServers.Bungee/index-all.html +++ b/Javadoc/SubServers.Bungee/index-all.html @@ -710,6 +710,10 @@
forceRemoveSubServer(UUID, String) - Method in class net.ME1312.SubServers.Bungee.Host.Internal.InternalHost
 
+
fromString(String) - Static method in class net.ME1312.SubServers.Bungee.Library.Version.Version
+
+
Parse a Version from a string
+
diff --git a/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/Library/Version/Version.html b/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/Library/Version/Version.html index a5ab15b7..0873a1bb 100644 --- a/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/Library/Version/Version.html +++ b/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/Library/Version/Version.html @@ -17,7 +17,7 @@ catch(err) { } //--> -var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10}; +var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -249,6 +249,12 @@ implements java.io.Serializable, java.lang.Comparable< +static Version +fromString(java.lang.String string) +
Parse a Version from a string
+ + + java.lang.String toExtendedString()
The extended toString() method
@@ -257,7 +263,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullExtendedString()
The full extended toString() method
@@ -266,7 +272,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullString()
The full toString() method
@@ -275,7 +281,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toString()
The default toString() method
@@ -442,6 +448,22 @@ implements java.io.Serializable, java.lang.Comparable< + + +
    +
  • +

    fromString

    +
    public static Version fromString(java.lang.String string)
    +
    Parse a Version from a string
    +
    +
    Parameters:
    +
    string - String to parse
    +
    See Also:
    +
    for a valid string value
    +
    +
  • +
diff --git a/Javadoc/SubServers.Client.Bukkit.jar b/Javadoc/SubServers.Client.Bukkit.jar index 9f970563..3f11d7f5 100644 Binary files a/Javadoc/SubServers.Client.Bukkit.jar and b/Javadoc/SubServers.Client.Bukkit.jar differ diff --git a/Javadoc/SubServers.Client.Bukkit/index-all.html b/Javadoc/SubServers.Client.Bukkit/index-all.html index c42dfc22..960d9363 100644 --- a/Javadoc/SubServers.Client.Bukkit/index-all.html +++ b/Javadoc/SubServers.Client.Bukkit/index-all.html @@ -425,6 +425,10 @@
Forward Packet to Client
+
fromString(String) - Static method in class net.ME1312.SubServers.Client.Bukkit.Library.Version.Version
+
+
Parse a Version from a string
+
diff --git a/Javadoc/SubServers.Client.Bukkit/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.html b/Javadoc/SubServers.Client.Bukkit/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.html index 1498573d..4e1d94f6 100644 --- a/Javadoc/SubServers.Client.Bukkit/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.html +++ b/Javadoc/SubServers.Client.Bukkit/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.html @@ -17,7 +17,7 @@ catch(err) { } //--> -var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10}; +var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -249,6 +249,12 @@ implements java.io.Serializable, java.lang.Comparable< +static Version +fromString(java.lang.String string) +
Parse a Version from a string
+ + + java.lang.String toExtendedString()
The extended toString() method
@@ -257,7 +263,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullExtendedString()
The full extended toString() method
@@ -266,7 +272,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullString()
The full toString() method
@@ -275,7 +281,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toString()
The default toString() method
@@ -442,6 +448,22 @@ implements java.io.Serializable, java.lang.Comparable< + + +
    +
  • +

    fromString

    +
    public static Version fromString(java.lang.String string)
    +
    Parse a Version from a string
    +
    +
    Parameters:
    +
    string - String to parse
    +
    See Also:
    +
    for a valid string value
    +
    +
  • +
diff --git a/Javadoc/SubServers.Host.jar b/Javadoc/SubServers.Host.jar index abb70aea..3e5170f9 100644 Binary files a/Javadoc/SubServers.Host.jar and b/Javadoc/SubServers.Host.jar differ diff --git a/Javadoc/SubServers.Host/index-all.html b/Javadoc/SubServers.Host/index-all.html index a5269cbf..94694329 100644 --- a/Javadoc/SubServers.Host/index-all.html +++ b/Javadoc/SubServers.Host/index-all.html @@ -527,6 +527,10 @@
Forward Packet to Server
+
fromString(String) - Static method in class net.ME1312.SubServers.Host.Library.Version.Version
+
+
Parse a Version from a string
+
diff --git a/Javadoc/SubServers.Host/net/ME1312/SubServers/Host/Library/Version/Version.html b/Javadoc/SubServers.Host/net/ME1312/SubServers/Host/Library/Version/Version.html index a0404d50..88c6aad0 100644 --- a/Javadoc/SubServers.Host/net/ME1312/SubServers/Host/Library/Version/Version.html +++ b/Javadoc/SubServers.Host/net/ME1312/SubServers/Host/Library/Version/Version.html @@ -17,7 +17,7 @@ catch(err) { } //--> -var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10}; +var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -249,6 +249,12 @@ implements java.io.Serializable, java.lang.Comparable< +static Version +fromString(java.lang.String string) +
Parse a Version from a string
+ + + java.lang.String toExtendedString()
The extended toString() method
@@ -257,7 +263,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullExtendedString()
The full extended toString() method
@@ -266,7 +272,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullString()
The full toString() method
@@ -275,7 +281,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toString()
The default toString() method
@@ -442,6 +448,22 @@ implements java.io.Serializable, java.lang.Comparable< + + +
    +
  • +

    fromString

    +
    public static Version fromString(java.lang.String string)
    +
    Parse a Version from a string
    +
    +
    Parameters:
    +
    string - String to parse
    +
    See Also:
    +
    for a valid string value
    +
    +
  • +
diff --git a/Javadoc/SubServers.Sync.jar b/Javadoc/SubServers.Sync.jar index 533a31a1..b259dbfc 100644 Binary files a/Javadoc/SubServers.Sync.jar and b/Javadoc/SubServers.Sync.jar differ diff --git a/Javadoc/SubServers.Sync/index-all.html b/Javadoc/SubServers.Sync/index-all.html index d568f1c5..fcfda519 100644 --- a/Javadoc/SubServers.Sync/index-all.html +++ b/Javadoc/SubServers.Sync/index-all.html @@ -423,6 +423,10 @@
Forward Packet to Client
+
fromString(String) - Static method in class net.ME1312.SubServers.Sync.Library.Version.Version
+
+
Parse a Version from a string
+
diff --git a/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/Library/Version/Version.html b/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/Library/Version/Version.html index 4f92ef42..213aee5a 100644 --- a/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/Library/Version/Version.html +++ b/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/Library/Version/Version.html @@ -17,7 +17,7 @@ catch(err) { } //--> -var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10}; +var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -249,6 +249,12 @@ implements java.io.Serializable, java.lang.Comparable< +static Version +fromString(java.lang.String string) +
Parse a Version from a string
+ + + java.lang.String toExtendedString()
The extended toString() method
@@ -257,7 +263,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullExtendedString()
The full extended toString() method
@@ -266,7 +272,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toFullString()
The full toString() method
@@ -275,7 +281,7 @@ implements java.io.Serializable, java.lang.Comparable< + java.lang.String toString()
The default toString() method
@@ -442,6 +448,22 @@ implements java.io.Serializable, java.lang.Comparable< + + +
    +
  • +

    fromString

    +
    public static Version fromString(java.lang.String string)
    +
    Parse a Version from a string
    +
    +
    Parameters:
    +
    string - String to parse
    +
    See Also:
    +
    for a valid string value
    +
    +
  • +
diff --git a/SubServers.Bungee/src.jar b/SubServers.Bungee/src.jar index 195ec7a7..30305a5c 100644 Binary files a/SubServers.Bungee/src.jar and b/SubServers.Bungee/src.jar differ diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/lang.yml b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/lang.yml index c6c235f2..dedca774 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/lang.yml +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/lang.yml @@ -31,7 +31,7 @@ Lang: 'Command.Help.SubServer.Terminate': ' &7Terminate Server:&f $str$' 'Command.Help.SubServer.Command': ' &7Command Server:&f $str$' 'Command.Version': '&7SubServers &8&l\u00BB&7 $name$ is running version &f$str$' - 'Command.Version.Outdated': '&7You are $int$ version(s) behind.' + 'Command.Version.Outdated': '&7$name$ &f$str$ &7is available. You are $int$ version(s) behind.' 'Command.Version.Latest': '&7You are on the latest version.' 'Command.List.Group-Header': '&7SubServers &8&l\u00BB&7 Group/Server List:' 'Command.List.Host-Header': '&7SubServers &8&l\u00BB&7 Host/SubServer List:' diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Version/Version.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Version/Version.java index 526306b4..b4dfd65e 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Version/Version.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Version/Version.java @@ -3,6 +3,10 @@ package net.ME1312.SubServers.Bungee.Library.Version; import net.ME1312.SubServers.Bungee.Library.Util; import java.io.Serializable; +import java.util.Collections; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Version Class @@ -22,10 +26,10 @@ public class Version implements Serializable, Comparable { PRE_RELEASE(4, "pr", "pre-release"), RELEASE(5, "r", "release"); - private final int id; + private final short stageid; private final String shortname, longname; - VersionType(int id, String shortname, String longname) { - this.id = id; + VersionType(int stageid, String shortname, String longname) { + this.stageid = (short) stageid; this.shortname = shortname; this.longname = longname; } @@ -125,6 +129,42 @@ public class Version implements Serializable, Comparable { this.string = string; } + /** + * Parse a Version from a string + * + * @param string String to parse + * @see #toFullString() for a valid string value + */ + public static Version fromString(String string) { + Matcher regex = Pattern.compile("(p?[abr])?([^/]+)").matcher(string); + Version current = null; + while (regex.find()) { + try { + VersionType type = VersionType.RELEASE; + if (regex.group(1) != null) switch (regex.group(1).toLowerCase()) { + case "pa": + type = VersionType.PRE_ALPHA; + break; + case "a": + type = VersionType.ALPHA; + break; + case "pb": + type = VersionType.PRE_BETA; + break; + case "b": + type = VersionType.BETA; + break; + case "pr": + type = VersionType.PRE_RELEASE; + break; + } + current = new Version(current, type, regex.group(2)); + } catch (Throwable e) {} + } + if (current == null) throw new IllegalArgumentException("Could not find version in string: " + string); + return current; + } + /** * The default toString() method
*
@@ -212,21 +252,82 @@ public class Version implements Serializable, Comparable { * @param version The version to compare to */ public int compareTo(Version version) { - // Compare parent versions first - if (this.parent != null || version.parent != null) { - int parent = ((this.parent == null)?this:this.parent).compareTo((version.parent == null)?version:version.parent); - if (parent != 0) return parent; + return compare(this, version); + } + + /** + * See if Versions are Equal + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + * @return + */ + public static boolean equals(Version ver1, Version ver2) { + return compare(ver1, ver2) == 0; + } + + /* + * Returns 1 if Greater than + * Returns 0 if Equal + * Returns -1 if Less than + *//** + * Compare Versions + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + */ + public static int compare(Version ver1, Version ver2) { + LinkedList stack1 = new LinkedList(), stack2 = new LinkedList(); + if (ver1 != null) { + stack1.add(ver1); + while (ver1.parent != null) { + ver1 = ver1.parent; + stack1.add(ver1); + } + Collections.reverse(stack1); + } + if (ver2 != null) { + stack2.add(ver2); + while (ver2.parent != null) { + ver2 = ver2.parent; + stack2.add(ver2); + } + Collections.reverse(stack2); } - if (this.parent != null && version.parent == null) { - // Version one has a parent version and version two does not, making version two the official version - return -1; - } + int id; + for (id = 0; id < stack1.size(); id++) { + if (id >= stack2.size()) { + // Version one still has children when version two does not, making version two the official version + return -1; + } - if (this.parent == null && version.parent != null) { - // Version one does not have a parent version and version two does, making version one the official version + int result = stack1.get(id).compare(stack2.get(id)); + if (result != 0) { + // Versions are not the same, return the result + return result; + } + } + if (id < stack2.size()) { + // Version one does not children when version two still does, making version one the official version return 1; } + return 0; + } + + /* + * Compares versions ignoring parent/child relationships + */ + private int compare(Version version) { + if (this.type.stageid > version.type.stageid) { + // Version one has a type of a later stage than version two + return 1; + } + + if (this.type.stageid < version.type.stageid) { + // Version one has a type of an earlier stage than version two + return -1; + } VersionTokenizer tokenizer1 = new VersionTokenizer(string); VersionTokenizer tokenizer2 = new VersionTokenizer(version.string); @@ -292,29 +393,4 @@ public class Version implements Serializable, Comparable { } return 0; } - - /** - * See if Versions are Equal - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - * @return - */ - public static boolean equals(Version ver1, Version ver2) { - return compare(ver1, ver2) == 0; - } - - /* - * Returns 1 if Greater than - * Returns 0 if Equal - * Returns -1 if Less than - *//** - * Compare Versions - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - */ - public static int compare(Version ver1, Version ver2) { - return ver1.compareTo(ver2); - } } \ No newline at end of file diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java index d4b82bfd..0ce293b0 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java @@ -77,8 +77,8 @@ public final class SubCommand extends CommandX { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } @@ -86,7 +86,7 @@ public final class SubCommand extends CommandX { if (updcount == 0) { sender.sendMessage("You are on the latest version."); } else { - sender.sendMessage("You are " + updcount + " version" + ((updcount == 1)?"":"s") + " behind."); + sender.sendMessage("SubServers.Bungee v" + updversion + " is available. You are " + updcount + " version" + ((updcount == 1)?"":"s") + " behind."); } } catch (Exception e) {} }).start(); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java index 99f87f21..9570c624 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java @@ -58,7 +58,8 @@ public final class SubPlugin extends BungeeCord implements Listener { public SubDataServer subdata = null; public SubServer sudo = null; //public static final Version version = new Version("2.13a"); - public static final Version version = new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 1); + //public static final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting + public static final Version version = new Version(new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 2), Version.VersionType.BETA, 1); // TODO Beta Version Setting public boolean redis = false; public long resetDate = 0; @@ -502,8 +503,8 @@ public final class SubPlugin extends BungeeCord implements Listener { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } diff --git a/SubServers.Client/Bukkit/src.jar b/SubServers.Client/Bukkit/src.jar index d2302587..a474d0a1 100644 Binary files a/SubServers.Client/Bukkit/src.jar and b/SubServers.Client/Bukkit/src.jar differ diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.java index 94d599e9..204527fc 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Library/Version/Version.java @@ -3,6 +3,10 @@ package net.ME1312.SubServers.Client.Bukkit.Library.Version; import net.ME1312.SubServers.Client.Bukkit.Library.Util; import java.io.Serializable; +import java.util.Collections; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Version Class @@ -11,10 +15,10 @@ import java.io.Serializable; public class Version implements Serializable, Comparable { private final Version parent; private final VersionType type; - private final String string; + private final String string; - public enum VersionType { - PRE_ALPHA(0, "pa", "pre-alpha"), + public enum VersionType { + PRE_ALPHA(0, "pa", "pre-alpha"), ALPHA(1, "a", "alpha"), PREVIEW(2, "pb", "preview"), PRE_BETA(2, "pb", "pre-beta"), @@ -22,12 +26,12 @@ public class Version implements Serializable, Comparable { PRE_RELEASE(4, "pr", "pre-release"), RELEASE(5, "r", "release"); - private final int id; - private final String shortname, longname; - VersionType(int id, String shortname, String longname) { - this.id = id; - this.shortname = shortname; - this.longname = longname; + private final short stageid; + private final String shortname, longname; + VersionType(int stageid, String shortname, String longname) { + this.stageid = (short) stageid; + this.shortname = shortname; + this.longname = longname; } } @@ -36,9 +40,9 @@ public class Version implements Serializable, Comparable { * * @param string Version String */ - public Version(String string) { - this(VersionType.RELEASE, string); - } + public Version(String string) { + this(VersionType.RELEASE, string); + } /** * Creates a Version @@ -46,8 +50,8 @@ public class Version implements Serializable, Comparable { * @param type Version Type * @param string Version String */ - public Version(VersionType type, String string) { - this(null, type, string); + public Version(VersionType type, String string) { + this(null, type, string); } /** @@ -125,6 +129,42 @@ public class Version implements Serializable, Comparable { this.string = string; } + /** + * Parse a Version from a string + * + * @param string String to parse + * @see #toFullString() for a valid string value + */ + public static Version fromString(String string) { + Matcher regex = Pattern.compile("(p?[abr])?([^/]+)").matcher(string); + Version current = null; + while (regex.find()) { + try { + VersionType type = VersionType.RELEASE; + if (regex.group(1) != null) switch (regex.group(1).toLowerCase()) { + case "pa": + type = VersionType.PRE_ALPHA; + break; + case "a": + type = VersionType.ALPHA; + break; + case "pb": + type = VersionType.PRE_BETA; + break; + case "b": + type = VersionType.BETA; + break; + case "pr": + type = VersionType.PRE_RELEASE; + break; + } + current = new Version(current, type, regex.group(2)); + } catch (Throwable e) {} + } + if (current == null) throw new IllegalArgumentException("Could not find version in string: " + string); + return current; + } + /** * The default toString() method
*
@@ -212,21 +252,82 @@ public class Version implements Serializable, Comparable { * @param version The version to compare to */ public int compareTo(Version version) { - // Compare parent versions first - if (this.parent != null || version.parent != null) { - int parent = ((this.parent == null)?this:this.parent).compareTo((version.parent == null)?version:version.parent); - if (parent != 0) return parent; + return compare(this, version); + } + + /** + * See if Versions are Equal + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + * @return + */ + public static boolean equals(Version ver1, Version ver2) { + return compare(ver1, ver2) == 0; + } + + /* + * Returns 1 if Greater than + * Returns 0 if Equal + * Returns -1 if Less than + *//** + * Compare Versions + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + */ + public static int compare(Version ver1, Version ver2) { + LinkedList stack1 = new LinkedList(), stack2 = new LinkedList(); + if (ver1 != null) { + stack1.add(ver1); + while (ver1.parent != null) { + ver1 = ver1.parent; + stack1.add(ver1); + } + Collections.reverse(stack1); + } + if (ver2 != null) { + stack2.add(ver2); + while (ver2.parent != null) { + ver2 = ver2.parent; + stack2.add(ver2); + } + Collections.reverse(stack2); } - if (this.parent != null && version.parent == null) { - // Version one has a parent version and version two does not, making version two the official version - return -1; - } + int id; + for (id = 0; id < stack1.size(); id++) { + if (id >= stack2.size()) { + // Version one still has children when version two does not, making version two the official version + return -1; + } - if (this.parent == null && version.parent != null) { - // Version one does not have a parent version and version two does, making version one the official version + int result = stack1.get(id).compare(stack2.get(id)); + if (result != 0) { + // Versions are not the same, return the result + return result; + } + } + if (id < stack2.size()) { + // Version one does not children when version two still does, making version one the official version return 1; } + return 0; + } + + /* + * Compares versions ignoring parent/child relationships + */ + private int compare(Version version) { + if (this.type.stageid > version.type.stageid) { + // Version one has a type of a later stage than version two + return 1; + } + + if (this.type.stageid < version.type.stageid) { + // Version one has a type of an earlier stage than version two + return -1; + } VersionTokenizer tokenizer1 = new VersionTokenizer(string); VersionTokenizer tokenizer2 = new VersionTokenizer(version.string); @@ -292,29 +393,4 @@ public class Version implements Serializable, Comparable { } return 0; } - - /** - * See if Versions are Equal - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - * @return - */ - public static boolean equals(Version ver1, Version ver2) { - return compare(ver1, ver2) == 0; - } - - /* - * Returns 1 if Greater than - * Returns 0 if Equal - * Returns -1 if Less than - *//** - * Compare Versions - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - */ - public static int compare(Version ver1, Version ver2) { - return ver1.compareTo(ver2); - } } \ No newline at end of file diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java index 12bba391..f88a2efa 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java @@ -59,8 +59,8 @@ public final class SubCommand implements CommandExecutor { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } @@ -68,7 +68,7 @@ public final class SubCommand implements CommandExecutor { if (updcount == 0) { sender.sendMessage(plugin.api.getLang("SubServers", "Command.Version.Latest")); } else { - sender.sendMessage(plugin.api.getLang("SubServers", "Command.Version.Outdated").replace("$int$", Integer.toString(updcount))); + sender.sendMessage(plugin.api.getLang("SubServers", "Command.Version.Outdated").replace("$name$", "SubServers.Client.Bukkit").replace("$str$", updversion.toString()).replace("$int$", Integer.toString(updcount))); } } catch (Exception e) {} }); diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java index ebce8284..b212990b 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java @@ -45,7 +45,8 @@ public final class SubPlugin extends JavaPlugin { public SubPlugin() { super(); //version = new Version(getDescription().getVersion()); - version = new Version(new Version(getDescription().getVersion()), Version.VersionType.PRE_RELEASE, 1); + //version = new Version(new Version(getDescription().getVersion()), Version.VersionType.BETA, 1); // TODO Beta Version Setting + version = new Version(new Version(new Version(getDescription().getVersion()), Version.VersionType.PRE_RELEASE, 2), Version.VersionType.BETA, 1); // TODO Beta Version Setting } /** @@ -98,8 +99,8 @@ public final class SubPlugin extends JavaPlugin { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } diff --git a/SubServers.Host/src.jar b/SubServers.Host/src.jar index 8cd9f63b..a5b3f156 100644 Binary files a/SubServers.Host/src.jar and b/SubServers.Host/src.jar differ diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java index f4ace10d..197a4d0a 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java @@ -58,7 +58,8 @@ public final class ExHost { public SubDataClient subdata = null; //public final Version version = new Version("2.13a"); - public final Version version = new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 1); + //public final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting + public final Version version = new Version(new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 2), Version.VersionType.BETA, 1); // TODO Beta Version Setting public final SubAPI api = new SubAPI(this); private ConsoleReader jline; @@ -391,8 +392,8 @@ public final class ExHost { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Library/Version/Version.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Library/Version/Version.java index 44aff088..10b42721 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Library/Version/Version.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Library/Version/Version.java @@ -3,6 +3,10 @@ package net.ME1312.SubServers.Host.Library.Version; import net.ME1312.SubServers.Host.Library.Util; import java.io.Serializable; +import java.util.Collections; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Version Class @@ -11,10 +15,10 @@ import java.io.Serializable; public class Version implements Serializable, Comparable { private final Version parent; private final VersionType type; - private final String string; + private final String string; - public enum VersionType { - PRE_ALPHA(0, "pa", "pre-alpha"), + public enum VersionType { + PRE_ALPHA(0, "pa", "pre-alpha"), ALPHA(1, "a", "alpha"), PREVIEW(2, "pb", "preview"), PRE_BETA(2, "pb", "pre-beta"), @@ -22,12 +26,12 @@ public class Version implements Serializable, Comparable { PRE_RELEASE(4, "pr", "pre-release"), RELEASE(5, "r", "release"); - private final int id; - private final String shortname, longname; - VersionType(int id, String shortname, String longname) { - this.id = id; - this.shortname = shortname; - this.longname = longname; + private final short stageid; + private final String shortname, longname; + VersionType(int stageid, String shortname, String longname) { + this.stageid = (short) stageid; + this.shortname = shortname; + this.longname = longname; } } @@ -36,9 +40,9 @@ public class Version implements Serializable, Comparable { * * @param string Version String */ - public Version(String string) { - this(VersionType.RELEASE, string); - } + public Version(String string) { + this(VersionType.RELEASE, string); + } /** * Creates a Version @@ -46,8 +50,8 @@ public class Version implements Serializable, Comparable { * @param type Version Type * @param string Version String */ - public Version(VersionType type, String string) { - this(null, type, string); + public Version(VersionType type, String string) { + this(null, type, string); } /** @@ -125,6 +129,42 @@ public class Version implements Serializable, Comparable { this.string = string; } + /** + * Parse a Version from a string + * + * @param string String to parse + * @see #toFullString() for a valid string value + */ + public static Version fromString(String string) { + Matcher regex = Pattern.compile("(p?[abr])?([^/]+)").matcher(string); + Version current = null; + while (regex.find()) { + try { + VersionType type = VersionType.RELEASE; + if (regex.group(1) != null) switch (regex.group(1).toLowerCase()) { + case "pa": + type = VersionType.PRE_ALPHA; + break; + case "a": + type = VersionType.ALPHA; + break; + case "pb": + type = VersionType.PRE_BETA; + break; + case "b": + type = VersionType.BETA; + break; + case "pr": + type = VersionType.PRE_RELEASE; + break; + } + current = new Version(current, type, regex.group(2)); + } catch (Throwable e) {} + } + if (current == null) throw new IllegalArgumentException("Could not find version in string: " + string); + return current; + } + /** * The default toString() method
*
@@ -212,21 +252,82 @@ public class Version implements Serializable, Comparable { * @param version The version to compare to */ public int compareTo(Version version) { - // Compare parent versions first - if (this.parent != null || version.parent != null) { - int parent = ((this.parent == null)?this:this.parent).compareTo((version.parent == null)?version:version.parent); - if (parent != 0) return parent; + return compare(this, version); + } + + /** + * See if Versions are Equal + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + * @return + */ + public static boolean equals(Version ver1, Version ver2) { + return compare(ver1, ver2) == 0; + } + + /* + * Returns 1 if Greater than + * Returns 0 if Equal + * Returns -1 if Less than + *//** + * Compare Versions + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + */ + public static int compare(Version ver1, Version ver2) { + LinkedList stack1 = new LinkedList(), stack2 = new LinkedList(); + if (ver1 != null) { + stack1.add(ver1); + while (ver1.parent != null) { + ver1 = ver1.parent; + stack1.add(ver1); + } + Collections.reverse(stack1); + } + if (ver2 != null) { + stack2.add(ver2); + while (ver2.parent != null) { + ver2 = ver2.parent; + stack2.add(ver2); + } + Collections.reverse(stack2); } - if (this.parent != null && version.parent == null) { - // Version one has a parent version and version two does not, making version two the official version - return -1; - } + int id; + for (id = 0; id < stack1.size(); id++) { + if (id >= stack2.size()) { + // Version one still has children when version two does not, making version two the official version + return -1; + } - if (this.parent == null && version.parent != null) { - // Version one does not have a parent version and version two does, making version one the official version + int result = stack1.get(id).compare(stack2.get(id)); + if (result != 0) { + // Versions are not the same, return the result + return result; + } + } + if (id < stack2.size()) { + // Version one does not children when version two still does, making version one the official version return 1; } + return 0; + } + + /* + * Compares versions ignoring parent/child relationships + */ + private int compare(Version version) { + if (this.type.stageid > version.type.stageid) { + // Version one has a type of a later stage than version two + return 1; + } + + if (this.type.stageid < version.type.stageid) { + // Version one has a type of an earlier stage than version two + return -1; + } VersionTokenizer tokenizer1 = new VersionTokenizer(string); VersionTokenizer tokenizer2 = new VersionTokenizer(version.string); @@ -292,29 +393,4 @@ public class Version implements Serializable, Comparable { } return 0; } - - /** - * See if Versions are Equal - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - * @return - */ - public static boolean equals(Version ver1, Version ver2) { - return compare(ver1, ver2) == 0; - } - - /* - * Returns 1 if Greater than - * Returns 0 if Equal - * Returns -1 if Less than - *//** - * Compare Versions - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - */ - public static int compare(Version ver1, Version ver2) { - return ver1.compareTo(ver2); - } } \ No newline at end of file diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java index 5e5b0d71..f7b390a6 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java @@ -44,8 +44,8 @@ public class SubCommand { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(host.version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(host.version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } @@ -53,7 +53,7 @@ public class SubCommand { if (updcount == 0) { host.log.message.println("You are on the latest version."); } else { - host.log.message.println("You are " + updcount + " version" + ((updcount == 1) ? "" : "s") + " behind."); + host.log.message.println("SubServers.Host v" + updversion + " is available. You are " + updcount + " version" + ((updcount == 1)?"":"s") + " behind."); } } catch (Exception e) { } diff --git a/SubServers.Sync/src.jar b/SubServers.Sync/src.jar index bb02781e..5e7f9b92 100644 Binary files a/SubServers.Sync/src.jar and b/SubServers.Sync/src.jar differ diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Version/Version.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Version/Version.java index e052520e..5759724f 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Version/Version.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Version/Version.java @@ -3,6 +3,10 @@ package net.ME1312.SubServers.Sync.Library.Version; import net.ME1312.SubServers.Sync.Library.Util; import java.io.Serializable; +import java.util.Collections; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Version Class @@ -11,10 +15,10 @@ import java.io.Serializable; public class Version implements Serializable, Comparable { private final Version parent; private final VersionType type; - private final String string; + private final String string; - public enum VersionType { - PRE_ALPHA(0, "pa", "pre-alpha"), + public enum VersionType { + PRE_ALPHA(0, "pa", "pre-alpha"), ALPHA(1, "a", "alpha"), PREVIEW(2, "pb", "preview"), PRE_BETA(2, "pb", "pre-beta"), @@ -22,12 +26,12 @@ public class Version implements Serializable, Comparable { PRE_RELEASE(4, "pr", "pre-release"), RELEASE(5, "r", "release"); - private final int id; - private final String shortname, longname; - VersionType(int id, String shortname, String longname) { - this.id = id; - this.shortname = shortname; - this.longname = longname; + private final short stageid; + private final String shortname, longname; + VersionType(int stageid, String shortname, String longname) { + this.stageid = (short) stageid; + this.shortname = shortname; + this.longname = longname; } } @@ -36,9 +40,9 @@ public class Version implements Serializable, Comparable { * * @param string Version String */ - public Version(String string) { - this(VersionType.RELEASE, string); - } + public Version(String string) { + this(VersionType.RELEASE, string); + } /** * Creates a Version @@ -46,8 +50,8 @@ public class Version implements Serializable, Comparable { * @param type Version Type * @param string Version String */ - public Version(VersionType type, String string) { - this(null, type, string); + public Version(VersionType type, String string) { + this(null, type, string); } /** @@ -125,6 +129,42 @@ public class Version implements Serializable, Comparable { this.string = string; } + /** + * Parse a Version from a string + * + * @param string String to parse + * @see #toFullString() for a valid string value + */ + public static Version fromString(String string) { + Matcher regex = Pattern.compile("(p?[abr])?([^/]+)").matcher(string); + Version current = null; + while (regex.find()) { + try { + VersionType type = VersionType.RELEASE; + if (regex.group(1) != null) switch (regex.group(1).toLowerCase()) { + case "pa": + type = VersionType.PRE_ALPHA; + break; + case "a": + type = VersionType.ALPHA; + break; + case "pb": + type = VersionType.PRE_BETA; + break; + case "b": + type = VersionType.BETA; + break; + case "pr": + type = VersionType.PRE_RELEASE; + break; + } + current = new Version(current, type, regex.group(2)); + } catch (Throwable e) {} + } + if (current == null) throw new IllegalArgumentException("Could not find version in string: " + string); + return current; + } + /** * The default toString() method
*
@@ -212,21 +252,82 @@ public class Version implements Serializable, Comparable { * @param version The version to compare to */ public int compareTo(Version version) { - // Compare parent versions first - if (this.parent != null || version.parent != null) { - int parent = ((this.parent == null)?this:this.parent).compareTo((version.parent == null)?version:version.parent); - if (parent != 0) return parent; + return compare(this, version); + } + + /** + * See if Versions are Equal + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + * @return + */ + public static boolean equals(Version ver1, Version ver2) { + return compare(ver1, ver2) == 0; + } + + /* + * Returns 1 if Greater than + * Returns 0 if Equal + * Returns -1 if Less than + *//** + * Compare Versions + * + * @param ver1 Version to Compare + * @param ver2 Version to Compare + */ + public static int compare(Version ver1, Version ver2) { + LinkedList stack1 = new LinkedList(), stack2 = new LinkedList(); + if (ver1 != null) { + stack1.add(ver1); + while (ver1.parent != null) { + ver1 = ver1.parent; + stack1.add(ver1); + } + Collections.reverse(stack1); + } + if (ver2 != null) { + stack2.add(ver2); + while (ver2.parent != null) { + ver2 = ver2.parent; + stack2.add(ver2); + } + Collections.reverse(stack2); } - if (this.parent != null && version.parent == null) { - // Version one has a parent version and version two does not, making version two the official version - return -1; - } + int id; + for (id = 0; id < stack1.size(); id++) { + if (id >= stack2.size()) { + // Version one still has children when version two does not, making version two the official version + return -1; + } - if (this.parent == null && version.parent != null) { - // Version one does not have a parent version and version two does, making version one the official version + int result = stack1.get(id).compare(stack2.get(id)); + if (result != 0) { + // Versions are not the same, return the result + return result; + } + } + if (id < stack2.size()) { + // Version one does not children when version two still does, making version one the official version return 1; } + return 0; + } + + /* + * Compares versions ignoring parent/child relationships + */ + private int compare(Version version) { + if (this.type.stageid > version.type.stageid) { + // Version one has a type of a later stage than version two + return 1; + } + + if (this.type.stageid < version.type.stageid) { + // Version one has a type of an earlier stage than version two + return -1; + } VersionTokenizer tokenizer1 = new VersionTokenizer(string); VersionTokenizer tokenizer2 = new VersionTokenizer(version.string); @@ -292,29 +393,4 @@ public class Version implements Serializable, Comparable { } return 0; } - - /** - * See if Versions are Equal - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - * @return - */ - public static boolean equals(Version ver1, Version ver2) { - return compare(ver1, ver2) == 0; - } - - /* - * Returns 1 if Greater than - * Returns 0 if Equal - * Returns -1 if Less than - *//** - * Compare Versions - * - * @param ver1 Version to Compare - * @param ver2 Version to Compare - */ - public static int compare(Version ver1, Version ver2) { - return ver1.compareTo(ver2); - } } \ No newline at end of file diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java index 32aa1669..2db195c7 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java @@ -77,8 +77,8 @@ public final class SubCommand extends CommandX { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(plugin.version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } } @@ -86,7 +86,7 @@ public final class SubCommand extends CommandX { if (updcount == 0) { sender.sendMessage("You are on the latest version."); } else { - sender.sendMessage("You are " + updcount + " version" + ((updcount == 1) ? "" : "s") + " behind."); + sender.sendMessage("SubServers.Sync v" + updversion + " is available. You are " + updcount + " version" + ((updcount == 1)?"":"s") + " behind."); } } catch (Exception e) { } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java index 9ede4c73..03a3fe2a 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java @@ -49,7 +49,8 @@ public final class SubPlugin extends BungeeCord implements Listener { public final SubAPI api = new SubAPI(this); public SubDataClient subdata = null; //public static final Version version = new Version("2.13a"); - public static final Version version = new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 1); + //public static final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting + public static final Version version = new Version(new Version(new Version("2.13a"), Version.VersionType.PRE_RELEASE, 2), Version.VersionType.BETA, 1); // TODO Beta Version Setting public long lastReload = -1; @@ -139,8 +140,8 @@ public final class SubPlugin extends BungeeCord implements Listener { for (int i = 0; i < updnodeList.getLength(); i++) { Node node = updnodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && new Version(node.getTextContent()).compareTo(updversion) > 0) { - updversion = new Version(node.getTextContent()); + if (!node.getTextContent().startsWith("-") && !node.getTextContent().equals(version.toString()) && Version.fromString(node.getTextContent()).compareTo(updversion) > 0) { + updversion = Version.fromString(node.getTextContent()); updcount++; } }