de.pewpewproject.lasertag.lasertaggame.state.management.server.synced.implementation.SettingsPresetsNameManager   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 21
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A addPresetName(String) 0 4 1
A SettingsPresetsNameManager(ISettingsPresetsNamesState,MinecraftServer) 0 3 1
A sendNetworkEvent(Identifier,String) 0 7 1
A getSettingsPresetNames() 0 3 1
A removePresetName(String) 0 4 1
1
package de.pewpewproject.lasertag.lasertaggame.state.management.server.synced.implementation;
2
3
import de.pewpewproject.lasertag.lasertaggame.state.management.server.synced.ISettingsPresetsNameManager;
4
import de.pewpewproject.lasertag.lasertaggame.state.synced.ISettingsPresetsNamesState;
5
import de.pewpewproject.lasertag.networking.NetworkingConstants;
6
import de.pewpewproject.lasertag.networking.server.ServerEventSending;
7
import io.netty.buffer.Unpooled;
8
import net.minecraft.network.PacketByteBuf;
9
import net.minecraft.server.MinecraftServer;
10
import net.minecraft.util.Identifier;
11
12
import java.util.List;
13
14
/**
15
 * Implementation of the ISettingsPresetsNameManager for the lasertag game
16
 *
17
 * @author Étienne Muser
18
 */
19
public class SettingsPresetsNameManager implements ISettingsPresetsNameManager {
20
21
    private final MinecraftServer server;
22
    private final ISettingsPresetsNamesState settingsPresetsNamesState;
23
24
    public SettingsPresetsNameManager(ISettingsPresetsNamesState settingsPresetsNamesState, MinecraftServer server) {
25
        this.settingsPresetsNamesState = settingsPresetsNamesState;
26
        this.server = server;
27
    }
28
29
    @Override
30
    public void addPresetName(String name) {
31
        settingsPresetsNamesState.addPresetName(name);
32
        sendNetworkEvent(NetworkingConstants.SETTINGS_PRESET_ADDED, name);
33
    }
34
35
    @Override
36
    public void removePresetName(String name) {
37
        settingsPresetsNamesState.removePresetName(name);
38
        sendNetworkEvent(NetworkingConstants.SETTINGS_PRESET_REMOVED, name);
39
    }
40
41
    @Override
42
    public List<String> getSettingsPresetNames() {
43
        return settingsPresetsNamesState.getAllPresetNames();
44
    }
45
46
    private void sendNetworkEvent(Identifier networkEventId, String presetName) {
47
48
        var buf = new PacketByteBuf(Unpooled.buffer());
49
50
        buf.writeString(presetName);
51
52
        ServerEventSending.sendToEveryone(server, networkEventId, buf);
53
    }
54
}
55