de.pewpewproject.lasertag.command.lasertag.game.presets.LoadPresetCommand   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 24
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A execute(CommandContext) 0 16 2
A register(LiteralArgumentBuilder) 0 4 1
1
package de.pewpewproject.lasertag.command.lasertag.game.presets;
2
3
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
4
import com.mojang.brigadier.context.CommandContext;
5
import de.pewpewproject.lasertag.command.CommandFeedback;
6
import de.pewpewproject.lasertag.command.ServerFeedbackCommand;
7
import net.minecraft.server.command.ServerCommandSource;
8
import net.minecraft.text.Text;
9
import net.minecraft.util.Formatting;
10
11
import java.util.Optional;
12
13
import static com.mojang.brigadier.arguments.StringArgumentType.getString;
14
import static com.mojang.brigadier.arguments.StringArgumentType.string;
15
import static net.minecraft.server.command.CommandManager.argument;
16
import static net.minecraft.server.command.CommandManager.literal;
17
18
/**
19
 * The load preset command
20
 *
21
 * @author Étienne Muser
22
 */
23
public class LoadPresetCommand extends ServerFeedbackCommand {
24
    @Override
25
    protected Optional<CommandFeedback> execute(CommandContext<ServerCommandSource> context) {
26
27
        // Get the game managers
28
        var gameManager = context.getSource().getWorld().getServerLasertagManager();
29
        var settingsPresetsManager = gameManager.getSettingsPresetsManager();
30
31
        var presetName = getString(context, "name");
32
        var server = context.getSource().getServer();
33
34
        var successful = settingsPresetsManager.loadPreset(presetName);
35
36
        if (successful) {
37
            return Optional.of(new CommandFeedback(Text.literal("Loaded settings preset '" + presetName + "'"), true, true));
38
        } else {
39
            return Optional.of(new CommandFeedback(Text.literal("Settings preset '" + presetName + "' does not exist").formatted(Formatting.RED), true, false));
40
        }
41
    }
42
43
    public static void register(LiteralArgumentBuilder<ServerCommandSource> lab) {
44
        lab.then(literal("load")
45
                .then(argument("name", string())
46
                        .executes(new LoadPresetCommand())));
47
    }
48
}
49