aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJordan Byrne <draknyte1@hotmail.com>2017-12-11 17:26:38 +1000
committerJordan Byrne <draknyte1@hotmail.com>2017-12-11 17:26:38 +1000
commitd44b799f964a023d3b46a8033b2b5c37f61c89d0 (patch)
treecf2c2278c5775a70fc275af4c2a3da0b684b3635 /src
parent95ab6ec8e84f6d1bb507d563b991307fb63f65d6 (diff)
downloadGT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.tar.gz
GT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.tar.bz2
GT5-Unofficial-d44b799f964a023d3b46a8033b2b5c37f61c89d0.zip
$ Improved Analytics Scheme greatly.
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/api/analytics/BlockingFlush.java6
-rw-r--r--src/Java/gtPlusPlus/api/analytics/SegmentAnalytics.java77
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java8
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java14
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java2
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;