From fd994517395f1db5e7cff51501649110765fac16 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Thu, 6 Jul 2017 23:38:59 +1000 Subject: ^ Version Bump ready for new release. + Added new methods to handle more dynamic versioning. --- src/Java/gtPlusPlus/core/util/Utils.java | 12 --- src/Java/gtPlusPlus/core/util/version/Version.java | 100 +++++++++++++++++++++ .../gtPlusPlus/core/util/version/VersionUtils.java | 46 ++++++++++ 3 files changed, 146 insertions(+), 12 deletions(-) create mode 100644 src/Java/gtPlusPlus/core/util/version/Version.java create mode 100644 src/Java/gtPlusPlus/core/util/version/VersionUtils.java (limited to 'src/Java/gtPlusPlus/core/util') diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index b31c248e22..23f5ab5507 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -51,18 +51,6 @@ public class Utils { } } - public static boolean isModUpToDate(){ - - if (CORE.MASTER_VERSION.toLowerCase().equals("offline")){ - return false; - } - - if (CORE.MASTER_VERSION.equals(CORE.VERSION.toLowerCase())){ - return true; - } - return false; - } - public static TC_AspectStack getTcAspectStack (final TC_Aspects aspect, final long size){ return getTcAspectStack(aspect.name(), (int) size); } diff --git a/src/Java/gtPlusPlus/core/util/version/Version.java b/src/Java/gtPlusPlus/core/util/version/Version.java new file mode 100644 index 0000000000..592ad3445e --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/version/Version.java @@ -0,0 +1,100 @@ +package gtPlusPlus.core.util.version; + +public class Version { + + final int Major; + final int Minor; + final int Minor2; + final String Suffix; + final int SuffixID; + + public Version(int Major, int Minor, int Minor2, SUFFIX Suffix){ + this.Major = Major; + this.Minor = Minor; + this.Minor2 = Minor2; + this.Suffix = Suffix.getSuffix(); + this.SuffixID = Suffix.ordinal(); + } + + public boolean isCurrentVersionNewer(Version this, Version comparingTo){ + + if (this.Major > comparingTo.Major){ + return true; + } + else if (this.Major < comparingTo.Major){ + return false; + } + else { + if (this.Minor > comparingTo.Minor){ + return true; + } + else if (this.Minor < comparingTo.Minor){ + return false; + } + else { + if (this.Minor2 > comparingTo.Minor2){ + return true; + } + else if (this.Minor2 < comparingTo.Minor2){ + return false; + } + else { + if (this.SuffixID > comparingTo.SuffixID){ + return true; + } + else if (this.SuffixID < comparingTo.SuffixID){ + return false; + } + else { + return false; + } + } + } + } + } + + public boolean isVersionSame(Version comparingTo){ + if (this.SuffixID == comparingTo.SuffixID){ + return true; + } + else { + return false; + } + } + + public boolean isUpdateRequired(Version comparingTo){ + if (isVersionSame(comparingTo)){ + return false; + } + else if (isCurrentVersionNewer(comparingTo)){ + return false; + } + else { + return true; + } + } + + public String getVersionAsString(){ + return (this.Major+"."+this.Minor+"."+this.Minor2+"-"+this.Suffix); + } + + + public static enum SUFFIX { + Alpha("Alpha"), + Beta("Beta"), + Prerelease("Pre-Release"), + Release("Release"); + + private String nameSuffix; + private SUFFIX (final String suffix){ + this.nameSuffix = suffix; + } + + public String getSuffix(){ + return this.nameSuffix; + } + + } + +} + diff --git a/src/Java/gtPlusPlus/core/util/version/VersionUtils.java b/src/Java/gtPlusPlus/core/util/version/VersionUtils.java new file mode 100644 index 0000000000..69de4a927d --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/version/VersionUtils.java @@ -0,0 +1,46 @@ +package gtPlusPlus.core.util.version; + +import java.util.Arrays; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.networking.NetworkUtils; +import gtPlusPlus.core.util.version.Version.SUFFIX; + +public class VersionUtils { + + public static Version getVersionObjectFromGithub(){ + String str = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase(); + String versionNumber = str.substring(0, str.indexOf('-')); + Object[] version = Arrays.stream(versionNumber.split("\\.")).map(Integer::parseInt).toArray(size -> new Object[size]); + String versionType = str.substring(str.indexOf('-') + 1, str.length()).toLowerCase(); + + SUFFIX suffix; + if (versionType.toLowerCase().equals("alpha")){ + suffix = SUFFIX.Alpha; + } + else if (versionType.toLowerCase().equals("beta")){ + suffix = SUFFIX.Beta; + } + else if (versionType.toLowerCase().equals("prerelease")){ + suffix = SUFFIX.Prerelease; + } + else { + suffix = SUFFIX.Release; + } + Utils.LOG_INFO("Recommended Version of GT++ [According to Master Version File] is "+version[0]+"."+version[1]+"."+version[2]+"-"+suffix.getSuffix()+"."); + return new Version((int)version[0], (int)version[1], (int)version[2], suffix); + } + + public static String getVersionObjectAsString(Version version){ + return (version.Major+"."+version.Minor+"."+version.Minor2+"-"+version.Suffix); + } + + public static boolean isModUpToDate(){ + if (CORE.VERSION.isUpdateRequired(CORE.MASTER_VERSION)){ + return false; + } + return true; + } + +} -- cgit