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
|
|
|
|