diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Java/gtPlusPlus/GTplusplus.java | 5 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/GTplusplus_Secondary.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java | 5 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/lib/CORE.java | 14 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/Utils.java | 12 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/version/Version.java | 100 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/version/VersionUtils.java | 46 | ||||
-rw-r--r-- | src/resources/mcmod.info | 2 |
8 files changed, 162 insertions, 24 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index afed638161..bf9e0b39ed 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -25,13 +25,14 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.core.util.version.VersionUtils; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools; import net.minecraft.launchwrapper.Launch; import net.minecraftforge.common.config.Configuration; -@Mod(modid = CORE.MODID, name = CORE.name, version = CORE.VERSION, dependencies = "required-after:Forge; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO;") +@Mod(modid = CORE.MODID, name = CORE.name, version = "The Version to play. ;)", dependencies = "required-after:Forge; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO;") public class GTplusplus implements ActionListener { @Mod.Instance(CORE.MODID) @@ -164,7 +165,7 @@ public class GTplusplus implements ActionListener { public void preInit(final FMLPreInitializationEvent event) { Utils.LOG_INFO("Loading " + CORE.name + " V" + CORE.VERSION); CORE.DEVENV = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); - Utils.LOG_INFO("Latest is " + CORE.MASTER_VERSION + ". Updated? " + Utils.isModUpToDate()); + Utils.LOG_INFO("Latest is " + CORE.MASTER_VERSION + ". Updated? " + VersionUtils.isModUpToDate()); Utils.LOG_INFO("User's Country: " + CORE.USER_COUNTRY); // FirstCall(); diff --git a/src/Java/gtPlusPlus/GTplusplus_Secondary.java b/src/Java/gtPlusPlus/GTplusplus_Secondary.java index e9888ded70..f032b67688 100644 --- a/src/Java/gtPlusPlus/GTplusplus_Secondary.java +++ b/src/Java/gtPlusPlus/GTplusplus_Secondary.java @@ -21,7 +21,7 @@ import net.minecraft.world.chunk.IChunkProvider; @ChildMod(parent = CORE.MODID, mod = @Mod(modid = "GT++DarkWorld", name = "GT++ Dark World", -version = CORE.VERSION, +version = "The Version to play. ;)", dependencies = "after:Miscutils;after:Gregtech", customProperties = @CustomProperty(k = "cofhversion", v = "true"))) public class GTplusplus_Secondary implements IFuelHandler, IWorldGenerator{ diff --git a/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java index b787acd02d..e12608d488 100644 --- a/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java @@ -9,6 +9,7 @@ import gtPlusPlus.core.proxy.ClientProxy; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.player.PlayerCache; import gtPlusPlus.core.util.player.PlayerUtils; +import gtPlusPlus.core.util.version.VersionUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -41,9 +42,7 @@ public class LoginEventHandler { if (!CORE.isModUpToDate){ Utils.LOG_INFO("You're not using the latest recommended version of GT++, consider updating."); - if (!CORE.MASTER_VERSION.toLowerCase().equals("offline")) { - Utils.LOG_INFO("Latest version is: "+CORE.MASTER_VERSION); - } + Utils.LOG_INFO("Latest version is: "+VersionUtils.getVersionObjectAsString(CORE.MASTER_VERSION)); Utils.LOG_INFO("You currently have: "+CORE.VERSION); ShortTimer(this.localPlayerRef, 20); } diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index d0e767ef3d..3d243b44ff 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -3,10 +3,10 @@ package gtPlusPlus.core.lib; import java.util.*; import gregtech.api.GregTech_API; -import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.geo.GeoUtils; import gtPlusPlus.core.util.gregtech.recipehandlers.GregtechRecipe; -import gtPlusPlus.core.util.networking.NetworkUtils; +import gtPlusPlus.core.util.version.Version; +import gtPlusPlus.core.util.version.VersionUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder; import gtPlusPlus.xmod.gregtech.api.objects.XSTR; @@ -29,10 +29,14 @@ public class CORE { public static final String name = "GT++"; public static final String MODID = "miscutils"; - public static final String VERSION = "1.5.0-Beta"; - public static final String MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase(); + + //Version Objects + public static final Version VERSION = new Version(1, 5, 5, Version.SUFFIX.Release); + public static final Version MASTER_VERSION = VersionUtils.getVersionObjectFromGithub(); + public static final String VERSION_STRING = VersionUtils.getVersionObjectAsString(VERSION); + public static final String USER_COUNTRY = GeoUtils.determineUsersCountry(); - public static boolean isModUpToDate = Utils.isModUpToDate(); + public static boolean isModUpToDate = VersionUtils.isModUpToDate(); public static boolean DEBUG = false; public static final boolean LOAD_ALL_CONTENT = false; public static final int GREG_FIRST_ID = 760; 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; + } + +} diff --git a/src/resources/mcmod.info b/src/resources/mcmod.info index 0f0384a41c..c1a58fc343 100644 --- a/src/resources/mcmod.info +++ b/src/resources/mcmod.info @@ -5,7 +5,7 @@ "description": "Adds a few various Multiblocks, Machines, etc to Gregtech and a plethora of other mods (Nearly 30!)", "credits": "", "logoFile": "", - "version": "1.5.0-Beta", + "version": "1.5.5-Release", "mcversion": "1.7.10", "url": "https://github.com/draknyte1/GTplusplus/wiki", "updateUrl": "https://github.com/draknyte1/GTplusplus/releases/latest", |