aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/GTPlayerActivityLogger.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/GTPlayerActivityLogger.java')
-rw-r--r--src/main/java/gregtech/common/GTPlayerActivityLogger.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/GTPlayerActivityLogger.java b/src/main/java/gregtech/common/GTPlayerActivityLogger.java
new file mode 100644
index 0000000000..7bd5ba508e
--- /dev/null
+++ b/src/main/java/gregtech/common/GTPlayerActivityLogger.java
@@ -0,0 +1,34 @@
+package gregtech.common;
+
+import java.util.ArrayList;
+
+import gregtech.GTMod;
+import gregtech.api.util.GTLog;
+
+public class GTPlayerActivityLogger implements Runnable {
+
+ @Override
+ public void run() {
+ try {
+ ArrayList<String> buffer = new ArrayList<>();
+ for (;;) {
+ if (GTLog.pal == null) {
+ return;
+ }
+ String tLastOutput = "";
+ // Block on first element for efficiency
+ buffer.add(GTMod.gregtechproxy.mBufferedPlayerActivity.take());
+ GTMod.gregtechproxy.mBufferedPlayerActivity.drainTo(buffer);
+ for (String output : buffer) {
+ if (!output.equals(tLastOutput)) {
+ GTLog.pal.println(output);
+ tLastOutput = output;
+ }
+ }
+ buffer.clear();
+ // TODO: swap from sleep to event bus
+ Thread.sleep(10000L);
+ }
+ } catch (Throwable ignored) {}
+ }
+}