SettingsPresetsNameManager(ISettingsPresetsNamesState,MinecraftServer)   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
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