• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 22181546457

19 Feb 2026 12:20PM UTC coverage: 46.183% (+0.8%) from 45.359%
22181546457

push

github

rubensworks
Merge branch 'feature/performance-tracking' into master-1.21-lts

2841 of 8850 branches covered (32.1%)

Branch coverage included in aggregate %.

12409 of 24171 relevant lines covered (51.34%)

2.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.84
/src/main/java/org/cyclops/integrateddynamics/core/TickHandler.java
1
package org.cyclops.integrateddynamics.core;
2

3
import net.neoforged.bus.api.SubscribeEvent;
4
import net.neoforged.neoforge.event.tick.ServerTickEvent;
5
import org.cyclops.cyclopscore.helper.MinecraftHelpers;
6
import org.cyclops.integrateddynamics.IntegratedDynamics;
7
import org.cyclops.integrateddynamics.api.network.IFullNetworkListener;
8
import org.cyclops.integrateddynamics.api.network.INetwork;
9
import org.cyclops.integrateddynamics.api.network.IPositionedAddonsNetworkIngredients;
10
import org.cyclops.integrateddynamics.core.helper.NetworkHelpers;
11
import org.cyclops.integrateddynamics.core.network.PartOffsetsClientNotifier;
12
import org.cyclops.integrateddynamics.core.network.diagnostics.NetworkDiagnostics;
13
import org.cyclops.integrateddynamics.core.persist.world.NetworkWorldStorage;
14

15
/**
16
 * Handles server ticks to delegate to networks.
17
 * @author rubensworks
18
 */
19
public final class TickHandler {
20

21
    private static TickHandler INSTANCE;
22
    private int tick = 0;
3✔
23
    private boolean shouldCrash = false;
3✔
24
    public boolean ticked = false;
3✔
25

26
    private TickHandler() {
2✔
27

28
    }
1✔
29

30
    public static TickHandler getInstance() {
31
        if(INSTANCE == null) {
2✔
32
            INSTANCE = new TickHandler();
4✔
33
        }
34
        return INSTANCE;
2✔
35
    }
36

37
    public void setShouldCrash() {
38
        this.shouldCrash = true;
×
39
    }
×
40

41
    @SubscribeEvent
42
    public void onTick(ServerTickEvent.Post event) {
43
        if (shouldCrash) {
3!
44
            throw new RuntimeException("Forcefully crashed the server.");
×
45
        }
46
        // Invoke update logic irrespective of safe-mode
47
        for (INetwork network : NetworkWorldStorage.getInstance(IntegratedDynamics._instance).getNetworks()) {
12✔
48
            network.updateGuaranteed();
2✔
49
        }
1✔
50

51
        // Do further network updates only when safe-mode is not enabled
52
        if (NetworkHelpers.shouldWork()) {
2!
53
            boolean isBeingDiagnozed = NetworkDiagnostics.getInstance().isBeingDiagnozed();
3✔
54
            if (isBeingDiagnozed) {
2✔
55
                tick = (tick + 1) % MinecraftHelpers.SECOND_IN_TICKS;
8✔
56
                if (tick == 0) {
3✔
57
                    NetworkDiagnostics.getInstance().accumulateMeasurements();
2✔
58
                }
59
            }
60
            boolean shouldSendTickDurationInfo = isBeingDiagnozed && tick == 0;
9✔
61
            for (INetwork network : NetworkWorldStorage.getInstance(IntegratedDynamics._instance).getNetworks()) {
12✔
62
                if (isBeingDiagnozed && (shouldSendTickDurationInfo || network.hasChanged())) {
7✔
63
                    NetworkDiagnostics.getInstance().sendNetworkUpdate(network);
3✔
64

65
                    network.resetLastSecondDurations();
2✔
66

67
                    // Also reset durations of indexes
68
                    for (IFullNetworkListener fullNetworkListener : network.getFullNetworkListeners()) {
17✔
69
                        if (fullNetworkListener instanceof IPositionedAddonsNetworkIngredients) {
3✔
70
                            IPositionedAddonsNetworkIngredients<?, ?> networkIngredients = (IPositionedAddonsNetworkIngredients<?, ?>) fullNetworkListener;
3✔
71
                            networkIngredients.resetLastSecondDurationsIndex();
2✔
72
                        }
73
                    }
74
                }
75
                try {
76
                    if (!network.isCrashed()) {
3!
77
                        network.update();
2✔
78
                    }
79
                } catch (Throwable e) {
×
80
                    network.setCrashed(true);
×
81
                    throw e;
×
82
                }
1✔
83
            }
1✔
84

85
            if (isBeingDiagnozed) {
2✔
86
                // Check if any measurements should complete
87
                NetworkDiagnostics.getInstance().checkCompleteMeasurements();
2✔
88
            }
89
        }
90

91
        ticked = true;
3✔
92

93
        PartOffsetsClientNotifier.getInstance().tick();
2✔
94
    }
1✔
95

96
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc