diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-11 17:26:38 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-11 17:26:38 +1000 |
commit | d44b799f964a023d3b46a8033b2b5c37f61c89d0 (patch) | |
tree | cf2c2278c5775a70fc275af4c2a3da0b684b3635 /src | |
parent | 95ab6ec8e84f6d1bb507d563b991307fb63f65d6 (diff) | |
download | GT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.tar.gz GT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.tar.bz2 GT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.zip |
$ Improved Analytics Scheme greatly.
Diffstat (limited to 'src')
5 files changed, 34 insertions, 73 deletions
diff --git a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java b/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java index cff4c84cce..dddb37fefb 100644 --- a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java +++ b/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java @@ -15,15 +15,15 @@ import java.util.concurrent.Phaser; * * <pre><code> * BlockingFlush mBlockingFlush = BlockingFlush.create(); - * Analytics mAnalytics = Analytics.builder(writeKey) + * Analytics mHelper = Analytics.builder(writeKey) * .plugin(mBlockingFlush) * .build(); * * // Do some work. * - * mAnalytics.flush(); // Trigger a flush. + * mHelper.flush(); // Trigger a flush. * mBlockingFlush.block(); // Block until the flush completes. - * mAnalytics.shutdown(); // Shut down after the flush is complete. + * mHelper.shutdown(); // Shut down after the flush is complete. * </code></pre> */ public class BlockingFlush { diff --git a/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java b/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java index 90381bc5cb..17be43f5d0 100644 --- a/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java +++ b/src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java @@ -10,13 +10,6 @@ import java.util.concurrent.Phaser; import com.mojang.authlib.GameProfile; import com.segment.analytics.Analytics; -import com.segment.analytics.Callback; -import com.segment.analytics.Log; -import com.segment.analytics.MessageInterceptor; -import com.segment.analytics.messages.IdentifyMessage; -import com.segment.analytics.messages.Message; -import com.segment.analytics.messages.TrackMessage; - import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; @@ -41,7 +34,7 @@ public class SegmentAnalytics { //Set some Vars final BlockingFlush mBlockingFlush; - final Analytics mAnalytics; + final SegmentHelper mHelper; final UUIDGenerator mUuidGenerator; public final GameProfile mLocalProfile; @@ -53,7 +46,7 @@ public class SegmentAnalytics { //Build a new instance of this class public SegmentAnalytics(EntityPlayer mPlayer){ - LOG("Generating a new instance of Segment Analytics Handler 2.1.0 for "+mPlayer.getDisplayName()); + LOG("Initializing Segment for "+mPlayer.getDisplayName()); //Give this Object an ID int currentID = sAnalyticsMapID; @@ -78,31 +71,7 @@ public class SegmentAnalytics { //Use Segment Analytics instead of plain Google Analytics. this.mBlockingFlush = BlockingFlush.create(); - this.mAnalytics = Analytics.builder("API_KEY_GOES_HERE") - .log(Log.NONE) //Try enable http logging? - .plugin(mBlockingFlush.plugin()) - .plugin(new AnalyticsLoggingPlugin()) - .callback(new Callback() { - @Override - public void success(Message message) { - mPhaser.arrive(); - } - - @Override - public void failure(Message message, Throwable throwable) { - mPhaser.arrive(); - } - }) - .messageInterceptor(new MessageInterceptor() { - @Override - public Message intercept(Message message) { - mPhaser.register(); - return message; - } - }) - .build(); - - + this.mHelper = SegmentHelper.getInstance(); initTimer(mPlayer); } @@ -138,14 +107,16 @@ public class SegmentAnalytics { properties.put("country_code", CORE.USER_COUNTRY); properties.put("gtnh", CORE.GTNH); - LOG("Created new Data packet, queued for submission."); - mAnalytics.enqueue(IdentifyMessage.builder() + LOG("Created new Data packet, queued for submission."); + + //Old Code, now passed to Helper Class + /*mHelper.enqueue(IdentifyMessage.builder() .userId(mUserName) //Save Username as UUID, for future sessions to attach to. .traits(properties) //.anonymousId(mAnonymousId) //Save Random Session UUID - ); + );*/ - flushData(); + mHelper.addUser(this.mUserName, properties); } public void submitTrackingData(String aActionPerformed){ @@ -156,35 +127,39 @@ public class SegmentAnalytics { if (!canProcess()){ return; } - + Map<String, Object> properties = new LinkedHashMap<>(); properties.put("blockType", aObject); String mObjectAsString = "Unknown"; - + if (aObject != null){ mObjectAsString = aObject.toString(); } - + LOG("Queued submission of data for event "+aActionPerformed+". This was performed on "+mObjectAsString+"."); - mAnalytics.enqueue(TrackMessage.builder(aActionPerformed) // + + mHelper.trackUser(this.mUserName, aActionPerformed, properties); + + //Old Code, now passed to Helper Class + /*mHelper.enqueue(TrackMessage.builder(aActionPerformed) // .userId(mUserName) // Save Username as UUID, for future sessions to attach to. .properties(properties) //Save Stats //.anonymousId(mAnonymousId) //Save Random Session UUID ); - flushData(); + */ } public void flushData(){ - mAnalytics.flush(); + getAnalyticObject().flush(); } public void flushDataFinal(){ LOG("Flushing all data from Queue to Segment Analytics database."); - mAnalytics.flush(); - mBlockingFlush.block(); + getAnalyticObject().flush(); + mBlockingFlush.block(); mPhaser.arriveAndAwaitAdvance(); - mAnalytics.shutdown(); + getAnalyticObject().shutdown(); /*try { this.finalize(); } @@ -227,7 +202,9 @@ public class SegmentAnalytics { // Non-Dev Comments public static void LOG(final String s) { - Utils.getLogger().info("[Analytics] "+s); + if (CORE.DEBUG){ + Utils.getLogger().info("[Analytics] "+s); + } } public static SegmentAnalytics getAnalyticsForPlayer(EntityPlayer mPlayer){ @@ -252,14 +229,14 @@ public class SegmentAnalytics { } public final Analytics getAnalyticObject() { - return mAnalytics; + return mHelper.getAnalyticsClient(); } public Timer initTimer(EntityPlayer mPlayer) { Timer timer; timer = new Timer(); - timer.schedule(new initPlayer(mPlayer), 5 * 1000); + timer.schedule(new initPlayer(mPlayer), 2 * 1000); return timer; } diff --git a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java index b8acf1a704..93786b1b3f 100644 --- a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java @@ -165,12 +165,8 @@ public class BlockEventHandler { } //Try submit some data for this event. - //SegmentAnalytics.getAnalyticsForPlayer(event.harvester).submitTrackingData("Action_Block_Broken", event.block.getLocalizedName()); - Map<String, Object> properties = new LinkedHashMap<>(); - properties.put("blockType", event.block.getLocalizedName()); - SegmentHelper.getInstance().trackUser(event.harvester.getUniqueID().toString(), "Action_Block_Broken", properties); - - + SegmentAnalytics.getAnalyticsForPlayer(event.harvester).submitTrackingData("Action_Block_Broken", event.block.getLocalizedName()); + } catch (Throwable r){ Utils.LOG_INFO("Block Event Handler Failed. Please Report this to Alkalus."); diff --git a/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java index 33ee16a91a..7629c98eb4 100644 --- a/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java @@ -35,19 +35,7 @@ public class LoginEventHandler { } try { - //new SegmentAnalytics(event.player); - - - Map<String, Object> properties = new LinkedHashMap<>(); - properties.put("username", this.localPlayersName); - properties.put("gt_version", Utils.getGregtechVersionAsString()); - if (LoadedMods.IndustrialCraft2){ - properties.put("ic2_version", IC2.VERSION); - } - properties.put("country_code", CORE.USER_COUNTRY); - properties.put("gtnh", CORE.GTNH); - SegmentHelper.getInstance().addUser(this.localPlayersUUID.toString(), properties); - + new SegmentAnalytics(event.player); } catch (Throwable t){ SegmentAnalytics.LOG("Failed to create Analytics submission during log in process."); diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 9c1133f1c9..9b14e38527 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -31,7 +31,7 @@ public class CORE { //import cpw.mods.fml.common.Optional; //Analytics handler - //public static SegmentAnalytics mAnalytics; + //public static SegmentAnalytics mHelper; public static Map PlayerCache; |