aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/GT_PlayerActivityLogger.java
blob: c60378ca5e75dd5402008ffe1b471a3fe681a1a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package gregtech.common;

import java.util.ArrayList;

import gregtech.GT_Mod;
import gregtech.api.util.GT_Log;

public class GT_PlayerActivityLogger implements Runnable {

    @Override
    public void run() {
        try {
            ArrayList<String> buffer = new ArrayList<>();
            for (;;) {
                if (GT_Log.pal == null) {
                    return;
                }
                String tLastOutput = "";
                // Block on first element for efficiency
                buffer.add(GT_Mod.gregtechproxy.mBufferedPlayerActivity.take());
                GT_Mod.gregtechproxy.mBufferedPlayerActivity.drainTo(buffer);
                for (String output : buffer) {
                    if (!output.equals(tLastOutput)) {
                        GT_Log.pal.println(output);
                        tLastOutput = output;
                    }
                }
                buffer.clear();
                // TODO: swap from sleep to event bus
                Thread.sleep(10000L);
            }
        } catch (Throwable ignored) {}
    }
}