de.pewpewproject.lasertag.networking.client.callbacks.CTFFlagHoldingUpdateCallback   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 29
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A receive(MinecraftClient,ClientPlayNetworkHandler,PacketByteBuf,PacketSender) 0 28 4
1
package de.pewpewproject.lasertag.networking.client.callbacks;
2
3
import de.pewpewproject.lasertag.LasertagMod;
4
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
5
import net.fabricmc.fabric.api.networking.v1.PacketSender;
6
import net.minecraft.client.MinecraftClient;
7
import net.minecraft.client.network.ClientPlayNetworkHandler;
8
import net.minecraft.network.PacketByteBuf;
9
10
/**
11
 * Callback to handle the capture the flag flag holding update network event
12
 *
13
 * @author Étienne Muser
14
 */
15
public class CTFFlagHoldingUpdateCallback implements ClientPlayNetworking.PlayChannelHandler {
16
    @Override
17
    public void receive(MinecraftClient client, ClientPlayNetworkHandler handler, PacketByteBuf buf, PacketSender responseSender) {
18
19
        try {
20
21
            // Get the game managers
22
            var gameManager = client.world.getClientLasertagManager();
23
            var captureTheFlagManager = gameManager.getCaptureTheFlagManager();
24
25
            // Get the player uuid
26
            var playerUuid = buf.readUuid();
27
28
            // Get the team id
29
            Integer teamId = null;
30
            var teamIdString = buf.readString();
31
            if (!teamIdString.equals("null")) {
32
                teamId = Integer.parseInt(teamIdString);
33
            }
34
35
            // Set the player holding flag
36
            if (teamId == null) {
37
                captureTheFlagManager.removeFlagHolding(playerUuid);
38
            } else {
39
                captureTheFlagManager.updateFlagHolding(playerUuid, teamId);
40
            }
41
        } catch (Exception ex) {
42
            LasertagMod.LOGGER.error("Error in CTFFlagHoldingUpdateCallback", ex);
43
            throw ex;
44
        }
45
    }
46
}
47