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

CyclopsMC / IntegratedDynamics / 24034486947

06 Apr 2026 01:51PM UTC coverage: 53.645% (-0.08%) from 53.721%
24034486947

push

github

rubensworks
Update to MC 26.1.1

3052 of 8931 branches covered (34.17%)

Branch coverage included in aggregate %.

18680 of 31580 relevant lines covered (59.15%)

3.07 hits per line

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

3.33
/src/main/java/org/cyclops/integrateddynamics/network/packet/NetworkDiagnosticsTriggerClient.java
1
package org.cyclops.integrateddynamics.network.packet;
2

3
import net.minecraft.client.Minecraft;
4
import net.minecraft.network.RegistryFriendlyByteBuf;
5
import net.minecraft.network.chat.ClickEvent;
6
import net.minecraft.network.chat.Component;
7
import net.minecraft.network.chat.Style;
8
import net.minecraft.network.codec.StreamCodec;
9
import net.minecraft.resources.Identifier;
10
import net.minecraft.server.level.ServerPlayer;
11
import net.minecraft.util.Util;
12
import net.minecraft.world.entity.player.Player;
13
import net.minecraft.world.level.Level;
14
import org.cyclops.cyclopscore.network.CodecField;
15
import org.cyclops.cyclopscore.network.PacketCodec;
16
import org.cyclops.integrateddynamics.IntegratedDynamics;
17
import org.cyclops.integrateddynamics.Reference;
18
import org.cyclops.integrateddynamics.core.network.diagnostics.NetworkDataClient;
19
import org.cyclops.integrateddynamics.core.network.diagnostics.NetworkDiagnosticsPartOverlayRenderer;
20
import org.cyclops.integrateddynamics.core.network.diagnostics.http.DiagnosticsWebServer;
21
import org.cyclops.integrateddynamics.proxy.ClientProxy;
22

23
import java.net.URISyntaxException;
24

25
/**
26
 * Packet for opening or closing network diagnostics at a client.
27
 * @author rubensworks
28
 *
29
 */
30
public class NetworkDiagnosticsTriggerClient extends PacketCodec {
31

32
    public static final Type<NetworkDiagnosticsTriggerClient> ID = new Type<>(Identifier.fromNamespaceAndPath(Reference.MOD_ID, "network_diagnostics_trigger"));
7✔
33
    public static final StreamCodec<RegistryFriendlyByteBuf, NetworkDiagnosticsTriggerClient> CODEC = getCodec(NetworkDiagnosticsTriggerClient::new);
4✔
34

35
    @CodecField
36
    private boolean start;
37
    @CodecField
38
    private int port;
39

40
    public NetworkDiagnosticsTriggerClient(boolean start, int port) {
41
        super(ID);
×
42
        this.start = start;
×
43
        this.port = port;
×
44
    }
×
45

46
    public NetworkDiagnosticsTriggerClient() {
47
        this(true, 0);
×
48
    }
×
49

50
    @Override
51
    public boolean isAsync() {
52
        return false;
×
53
    }
54

55
    @Override
56
    public void actionClient(Level world, Player player) {
57
        if (start) {
×
58
            if (ClientProxy.DIAGNOSTICS_SERVER == null) {
×
59
                IntegratedDynamics._instance.getPacketHandler().sendToServer(NetworkDiagnosticsSubscribePacket.subscribe());
×
60
                new Thread(() -> {
×
61
                    ClientProxy.DIAGNOSTICS_SERVER = new DiagnosticsWebServer(port);
×
62
                    ClientProxy.DIAGNOSTICS_SERVER.initialize();
×
63
                    Minecraft.getInstance().execute(() -> {
×
64
                        try {
65
                            player.sendOverlayMessage(
×
66
                                    Component.literal("Diagnostics server has been started on ")
×
67
                                            .append(Component.literal(ClientProxy.DIAGNOSTICS_SERVER.getUrl())
×
68
                                                    .setStyle(Style.EMPTY
×
69
                                                            .withUnderlined(true)
×
70
                                                            .withClickEvent(new ClickEvent.OpenUrl(Util.parseAndValidateUntrustedUri(ClientProxy.DIAGNOSTICS_SERVER.getUrl())))))
×
71
                            );
72
                        } catch (URISyntaxException e) {
×
73
                            throw new RuntimeException(e);
×
74
                        }
×
75
                    });
×
76
                }).start();
×
77
            } else {
78
                Minecraft.getInstance().execute(() -> {
×
79
                    try {
80
                        player.sendOverlayMessage(
×
81
                                Component.literal("Diagnostics server is already running on ")
×
82
                                        .append(Component.literal(ClientProxy.DIAGNOSTICS_SERVER.getUrl())
×
83
                                                .setStyle(Style.EMPTY
×
84
                                                        .withUnderlined(true)
×
85
                                                        .withClickEvent(new ClickEvent.OpenUrl(Util.parseAndValidateUntrustedUri(ClientProxy.DIAGNOSTICS_SERVER.getUrl())))))
×
86
                        );
87
                    } catch (URISyntaxException e) {
×
88
                        throw new RuntimeException(e);
×
89
                    }
×
90
                });
×
91
            }
92
        } else {
93
            if (ClientProxy.DIAGNOSTICS_SERVER != null) {
×
94
                IntegratedDynamics._instance.getPacketHandler().sendToServer(NetworkDiagnosticsSubscribePacket.unsubscribe());
×
95
                new Thread(() -> {
×
96
                    NetworkDiagnosticsPartOverlayRenderer.getInstance().clearPositions();
×
97
                    NetworkDataClient.clearNetworkData();
×
98
                    ClientProxy.DIAGNOSTICS_SERVER.deinitialize();
×
99
                    ClientProxy.DIAGNOSTICS_SERVER = null;
×
100
                    Minecraft.getInstance().execute(() -> {
×
101
                        player.sendOverlayMessage(Component.literal("Stopped diagnostics server"));
×
102
                    });
×
103
                }).start();
×
104
            } else {
105
                Minecraft.getInstance().execute(() -> {
×
106
                    player.sendOverlayMessage(Component.literal("No diagnostics server is running"));
×
107
                });
×
108
            }
109
        }
110
    }
×
111

112
    @Override
113
    public void actionServer(Level world, ServerPlayer player) {
114

115
    }
×
116

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