diff options
author | draknyte1 <draknyte1@hotmail.com> | 2017-03-12 12:38:33 +1000 |
---|---|---|
committer | draknyte1 <draknyte1@hotmail.com> | 2017-03-12 12:38:33 +1000 |
commit | adf8992495faeb47255f4257ad82bf127884a16b (patch) | |
tree | eb5fca83b49dd8096379a00718bef2f4ac5c237a | |
parent | 5f404e0b67eb9eac808590f358e3abbc3070c850 (diff) | |
download | GT5-Unofficial-adf8992495faeb47255f4257ad82bf127884a16b.tar.gz GT5-Unofficial-adf8992495faeb47255f4257ad82bf127884a16b.tar.bz2 GT5-Unofficial-adf8992495faeb47255f4257ad82bf127884a16b.zip |
% Changed the Logger to stop using FML and to start using GT++.
+ Added some analytic code.
-rw-r--r-- | src/Java/gtPlusPlus/GTplusplus.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/lib/CORE.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/Utils.java | 20 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/geo/GeoUtils.java | 100 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java | 12 |
5 files changed, 132 insertions, 4 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 045e0a535b..9f367388a6 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -162,6 +162,8 @@ implements ActionListener { Utils.LOG_INFO("Loading "+CORE.name+" V"+CORE.VERSION); Utils.LOG_INFO("Latest is "+CORE.MASTER_VERSION+". Updated? "+Utils.isModUpToDate()); + Utils.LOG_INFO("User's Country: "+CORE.USER_COUNTRY); + //FirstCall(); FMLCommonHandler.instance().bus().register(new LoginEventHandler()); Utils.LOG_INFO("Login Handler Initialized"); diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 9e049c475f..e4370accc4 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -4,6 +4,7 @@ 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.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; @@ -28,6 +29,7 @@ public class CORE { public static final String MODID = "miscutils"; public static final String VERSION = "1.4.9.86-Beta"; public static final String MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase(); + public static final String USER_COUNTRY = GeoUtils.determineUsersCountry(); public static boolean isModUpToDate = Utils.isModUpToDate(); public static boolean DEBUG = false; public static final boolean LOAD_ALL_CONTENT = false; diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index db8ed87231..79dd93a2f1 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -32,6 +32,8 @@ import net.minecraftforge.fluids.*; import net.minecraftforge.oredict.OreDictionary; import org.apache.commons.lang3.EnumUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; @@ -157,32 +159,42 @@ public class Utils { } return (target.getItem() == input.getItem() && ((target.getItemDamage() == WILDCARD_VALUE && !strict) || target.getItemDamage() == input.getItemDamage())); } + + //Logging Functions + private static final Logger modLogger = makeLogger(); + + //Generate GT++ Logger + public static Logger makeLogger(){ + Logger gtPlusPlusLogger = LogManager.getLogger("GT++"); + return gtPlusPlusLogger; + } + //Non-Dev Comments public static void LOG_INFO(String s){ //if (CORE.DEBUG){ - FMLLog.info("GT++: "+s); + modLogger.info(s); //} } //Non-Dev Comments public static void LOG_MACHINE_INFO(String s){ if (CORE.configSwitches.MACHINE_INFO || ClientProxy.playerName.toLowerCase().contains("draknyte1")){ - FMLLog.info("GT++: Machine Info: "+s); + modLogger.info("Machine Info: "+s); } } //Developer Comments public static void LOG_WARNING(String s){ if (CORE.DEBUG){ - FMLLog.warning("GT++: "+s); + modLogger.warn(s); } } //Errors public static void LOG_ERROR(String s){ if (CORE.DEBUG){ - FMLLog.severe("GT++: "+s); + modLogger.fatal(s); } } diff --git a/src/Java/gtPlusPlus/core/util/geo/GeoUtils.java b/src/Java/gtPlusPlus/core/util/geo/GeoUtils.java new file mode 100644 index 0000000000..9a7a16a8ab --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/geo/GeoUtils.java @@ -0,0 +1,100 @@ +package gtPlusPlus.core.util.geo; + +import java.io.*; +import java.net.*; + +import org.apache.http.client.utils.URIBuilder; + +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.networking.NetworkUtils; + +public class GeoUtils { + + public static String determineUsersCountry(){ + if (NetworkUtils.checkNetworkIsAvailableWithValidInterface()){ + return getUsersCountry(); + } + else { + return "Offline."; + } + } + + private static String getUsersIPAddress() { + try { + String webPage = "http://checkip.amazonaws.com/"; + URL url = new URL(webPage); + URLConnection urlConnection = url.openConnection(); + InputStream is = urlConnection.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + int numCharsRead; + char[] charArray = new char[1024]; + StringBuffer sb = new StringBuffer(); + while ((numCharsRead = isr.read(charArray)) > 0) { + sb.append(charArray, 0, numCharsRead); + } + String result = sb.toString(); + return result; + } catch (IOException e) {} + return "Error getting users IP."; + } + + private static String getUsersCountry() { + + //Get the IP + String ipAddress = getUsersIPAddress(); + + //Build a URL + URIBuilder builder = new URIBuilder() + .setScheme("http") + .setHost("ipinfo.io") + .setPath("/"+ipAddress+"/country/"); + + URI uri; + try { + //Convert the URI Builder to a URI, then to a URL + uri = builder.build(); + URL url = uri.toURL(); + + //Main Check method + try { + URLConnection urlConnection = url.openConnection(); + InputStream is = urlConnection.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + int numCharsRead; + char[] charArray = new char[1024]; + StringBuffer sb = new StringBuffer(); + while ((numCharsRead = isr.read(charArray)) > 0) { + sb.append(charArray, 0, numCharsRead); + } + String temp = sb.toString(); + String result = temp.replaceAll("(\\r|\\n)", ""); + return result; + //Catch block for bad connection + } catch (IOException e) { + Utils.LOG_INFO("Method 1 - Failed."); + } + + //Secondary method + try (java.util.Scanner s = new java.util.Scanner(url.openStream(), "UTF-8").useDelimiter("\\A")) { + String r = s.next(); + return r.replaceAll("(\\r|\\n)", ""); + //Catch block for bad connection + } catch (java.io.IOException e) { + Utils.LOG_INFO("Method 2 - Failed."); + } + + } + //Catch block for all the Bad URI/URL building + catch (URISyntaxException | MalformedURLException e1) { + if (e1 instanceof URISyntaxException){ + Utils.LOG_INFO("Bad URI Syntax for builder."); + } + else { + Utils.LOG_INFO("Malformed URL."); + } + Utils.LOG_INFO("Country Check - Failed."); + } + return "Error getting users Country. "+ipAddress; + } + +} diff --git a/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java b/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java index b02b50bbfd..84234382d9 100644 --- a/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java +++ b/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java @@ -33,6 +33,18 @@ public class NetworkUtils { return "offline"; } + public static boolean checkNetworkIsAvailableWithValidInterface(){ + try { + if (hasValidNetworkInterface()){ + if (netIsAvailableGithub() || netIsAvailableOther() || netIsAvailableBaidu() || netIsAvailableGoogle()){ + return true; + } + } + } + catch (SocketException e) {} + return false; + } + private static boolean netIsAvailableGoogle() { try { final URL url = new URL("http://www.google.com"); |