de.pewpewproject.lasertag.networking.server.callbacks.ClientTriggerPlayerJoinTeamCallback   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 23
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A receive(MinecraftServer,ServerPlayerEntity,ServerPlayNetworkHandler,PacketByteBuf,PacketSender) 0 22 2
1
package de.pewpewproject.lasertag.networking.server.callbacks;
2
3
import de.pewpewproject.lasertag.LasertagMod;
4
import net.fabricmc.fabric.api.networking.v1.PacketSender;
5
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
6
import net.minecraft.network.PacketByteBuf;
7
import net.minecraft.server.MinecraftServer;
8
import net.minecraft.server.network.ServerPlayNetworkHandler;
9
import net.minecraft.server.network.ServerPlayerEntity;
10
11
/**
12
 * Callback for the client triggered player join team network event
13
 *
14
 * @author Étienne Muser
15
 */
16
public class ClientTriggerPlayerJoinTeamCallback implements ServerPlayNetworking.PlayChannelHandler {
17
    @Override
18
    public void receive(MinecraftServer server, ServerPlayerEntity player, ServerPlayNetworkHandler handler, PacketByteBuf buf, PacketSender responseSender) {
19
20
        try {
21
22
            // Get the game managers
23
            var gameManager = server.getOverworld().getServerLasertagManager();
24
            var teamsManager = gameManager.getTeamsManager();
25
            var syncedState = gameManager.getSyncedState();
26
            var teamsConfigState = syncedState.getTeamsConfigState();
27
28
            // Read team id
29
            var teamId = buf.readInt();
30
31
            // Get the team
32
            var teamOptional = teamsConfigState.getTeamOfId(teamId);
33
34
            // Join team
35
            teamOptional.ifPresent(teamDto -> teamsManager.playerJoinTeam(player, teamDto));
36
        } catch (Exception ex) {
37
            LasertagMod.LOGGER.error("Error in ClientTriggerPlayerJoinTeamCallback", ex);
38
            throw ex;
39
        }
40
    }
41
}
42