de.pewpewproject.lasertag.lasertaggame.state.synced.implementation.PlayerNamesState   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 20
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A forEachPlayer(Consumer) 0 6 2
A savePlayerUsername(UUID,String) 0 3 1
A getPlayerUsername(UUID) 0 3 1
1
package de.pewpewproject.lasertag.lasertaggame.state.synced.implementation;
2
3
import de.pewpewproject.lasertag.lasertaggame.state.synced.IPlayerNamesState;
4
5
import java.util.HashMap;
6
import java.util.UUID;
7
import java.util.function.Consumer;
8
9
/**
10
 * Implementation of IPlayerNamesState for the lasertag game.
11
 *
12
 * @author Étienne Muser
13
 */
14
public class PlayerNamesState implements IPlayerNamesState {
15
16
    private final HashMap<UUID, String> playerUsernameCache = new HashMap<>();
17
18
    @Override
19
    public synchronized void savePlayerUsername(UUID playerUuid, String playerUsername) {
20
        playerUsernameCache.put(playerUuid, playerUsername);
21
    }
22
23
    @Override
24
    public synchronized String getPlayerUsername(UUID playerUuid) {
25
        return playerUsernameCache.get(playerUuid);
26
    }
27
28
    @Override
29
    public synchronized void forEachPlayer(Consumer<UUID> consumer) {
30
31
        for (var playerUuid : playerUsernameCache.keySet()) {
32
33
            consumer.accept(playerUuid);
34
        }
35
    }
36
}
37