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

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 hits per line

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

0.0
/src/main/java/org/cyclops/integrateddynamics/core/network/diagnostics/NetworkDiagnostics.java
1
package org.cyclops.integrateddynamics.core.network.diagnostics;
2

3
import com.google.common.collect.Lists;
4
import net.minecraft.server.level.ServerPlayer;
5
import net.neoforged.neoforge.server.ServerLifecycleHooks;
6
import org.cyclops.integrateddynamics.IntegratedDynamics;
7
import org.cyclops.integrateddynamics.api.network.*;
8
import org.cyclops.integrateddynamics.api.part.PartPos;
9
import org.cyclops.integrateddynamics.core.persist.world.NetworkWorldStorage;
10
import org.cyclops.integrateddynamics.network.packet.NetworkDiagnosticsNetworkPacket;
11

12
import java.util.Iterator;
13
import java.util.List;
14
import java.util.Map;
15
import java.util.UUID;
16

17
/**
18
 * @author rubensworks
19
 */
20
public class NetworkDiagnostics {
21

22
    private static final NetworkDiagnostics _INSTANCE = new NetworkDiagnostics();
×
23

24
    private final List<UUID> players = Lists.newArrayList();
×
25

26
    private NetworkDiagnostics() {
×
27

28
    }
×
29

30
    public static NetworkDiagnostics getInstance() {
31
        return _INSTANCE;
×
32
    }
33

34
    protected ServerPlayer getPlayer(UUID uuid) {
35
        return ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayer(uuid);
×
36
    }
37

38
    public synchronized void registerPlayer(ServerPlayer player) {
39
        if (!players.contains(player.getUUID())) {
×
40
            players.add(player.getUUID());
×
41
            for (INetwork network : NetworkWorldStorage.Access.getInstance(IntegratedDynamics._instance).get().getNetworks()) {
×
42
                sendNetworkUpdateToPlayer(player, network);
×
43
            }
×
44

45
        }
46
    }
×
47

48
    public synchronized void unRegisterPlayer(ServerPlayer player) {
49
        players.remove(player.getUUID());
×
50
    }
×
51

52
    public void sendNetworkUpdateToPlayer(ServerPlayer player, INetwork network) {
53
        List<RawPartData> rawParts = Lists.newArrayList();
×
54
        for (INetworkElement networkElement : network.getElements()) {
×
55
            if (network.isValid(networkElement) && networkElement instanceof IPartNetworkElement) {
×
56
                IPartNetworkElement partNetworkElement = (IPartNetworkElement) networkElement;
×
57
                PartPos pos = partNetworkElement.getTarget().getCenter();
×
58
                long lastSecondDurationNs = network.getLastSecondDuration(networkElement);
×
59
                rawParts.add(new RawPartData(pos.getPos().getLevelKey(),
×
60
                        pos.getPos().getBlockPos(), pos.getSide(),
×
61
                        partNetworkElement.getPart().getTranslationKey(),
×
62
                        lastSecondDurationNs));
63
            } else {
64
                // If needed, we can send the other part types later on as well
65
            }
66
        }
×
67

68
        List<RawObserverData> rawObservers = Lists.newArrayList();
×
69
        for (IFullNetworkListener fullNetworkListener : network.getFullNetworkListeners()) {
×
70
            if (fullNetworkListener instanceof IPositionedAddonsNetworkIngredients) {
×
71
                IPositionedAddonsNetworkIngredients<?, ?> networkIngredients = (IPositionedAddonsNetworkIngredients<?, ?>) fullNetworkListener;
×
72
                Map<PartPos, Long> durations = networkIngredients.getLastSecondDurationIndex();
×
73
                for (Map.Entry<PartPos, Long> durationEntry : durations.entrySet()) {
×
74
                    PartPos pos = durationEntry.getKey();
×
75
                    rawObservers.add(new RawObserverData(pos.getPos().getLevelKey(),
×
76
                            pos.getPos().getBlockPos(), pos.getSide(),
×
77
                            networkIngredients.getComponent().getName().toString(), durationEntry.getValue()));
×
78
                }
×
79
            }
80
        }
81

82
        RawNetworkData rawNetworkData = new RawNetworkData(network.isKilled(), network.hashCode(), network.getCablesCount(), rawParts, rawObservers);
×
83
        IntegratedDynamics._instance.getPacketHandler().sendToPlayer(new NetworkDiagnosticsNetworkPacket(rawNetworkData.toNbt()), player);
×
84
    }
×
85

86
    public synchronized void sendNetworkUpdate(INetwork network) {
87
        for (Iterator<UUID> it = players.iterator(); it.hasNext();) {
×
88
            UUID uuid = it.next();
×
89
            ServerPlayer player = getPlayer(uuid);
×
90
            if (player != null) {
×
91
                sendNetworkUpdateToPlayer(player, network);
×
92
            } else {
93
                it.remove();
×
94
            }
95
        }
×
96
    }
×
97

98
    public synchronized boolean isBeingDiagnozed() {
99
        return !players.isEmpty();
×
100
    }
101

102
}
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