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

Complexity

Total Complexity 2

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 16
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A receive(MinecraftClient,ClientPlayNetworkHandler,PacketByteBuf,PacketSender) 0 15 2
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 lasertag game over network event
12
 *
13
 * @author Étienne Muser
14
 */
15
public class LasertagGameOverCallback 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 uiManager = gameManager.getUIStateManager();
24
            var uiState = gameManager.getSyncedState().getUIState();
25
26
            uiManager.stopGameTimer();
27
            uiState.isGameRunning = false;
28
        } catch (Exception ex) {
29
            LasertagMod.LOGGER.error("Error in LasertagGameOverCallback", ex);
30
            throw ex;
31
        }
32
    }
33
}
34