aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2017-07-06 23:38:59 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2017-07-06 23:38:59 +1000
commitfd994517395f1db5e7cff51501649110765fac16 (patch)
tree0fefb27a8152f842d6629062eb0bad004b3c7576 /src/Java/gtPlusPlus/core/util
parent02719c54d8566366736485c4b28ff66b6020e3af (diff)
downloadGT5-Unofficial-fd994517395f1db5e7cff51501649110765fac16.tar.gz
GT5-Unofficial-fd994517395f1db5e7cff51501649110765fac16.tar.bz2
GT5-Unofficial-fd994517395f1db5e7cff51501649110765fac16.zip
^ Version Bump ready for new release.
+ Added new methods to handle more dynamic versioning.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java12
-rw-r--r--src/Java/gtPlusPlus/core/util/version/Version.java100
-rw-r--r--src/Java/gtPlusPlus/core/util/version/VersionUtils.java46
3 files changed, 146 insertions, 12 deletions
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;
+ }
+
+}