GodModeCommand.java 1.47 KB
Newer Older
KingRainbow44's avatar
KingRainbow44 committed
1
2
3
4
package emu.grasscutter.command.commands;

import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler;
Melledy's avatar
Melledy committed
5
import emu.grasscutter.game.player.Player;
KingRainbow44's avatar
KingRainbow44 committed
6
7
8

import java.util.List;

9
10
import static emu.grasscutter.utils.Language.translate;

11
@Command(label = "godmode", usage = "godmode [on|off|toggle]", permission = "player.godmode")
KingRainbow44's avatar
KingRainbow44 committed
12
13
public final class GodModeCommand implements CommandHandler {

14
15
16
17
18
    @Override
    public String description() {
        return translate("commands.godmode.description");
    }

KingRainbow44's avatar
KingRainbow44 committed
19
    @Override
AnimeGitB's avatar
AnimeGitB committed
20
    public void execute(Player sender, Player targetPlayer, List<String> args) {
AnimeGitB's avatar
AnimeGitB committed
21
        if (targetPlayer == null) {
22
            CommandHandler.sendMessage(sender, translate("commands.execution.need_target"));
AnimeGitB's avatar
AnimeGitB committed
23
            return;
KingRainbow44's avatar
KingRainbow44 committed
24
        }
xtaodada's avatar
xtaodada committed
25

AnimeGitB's avatar
AnimeGitB committed
26
        boolean enabled = !targetPlayer.inGodmode();
xtaodada's avatar
xtaodada committed
27
        if (args.size() == 1) {
AnimeGitB's avatar
AnimeGitB committed
28
29
30
31
32
33
34
35
36
37
            switch (args.get(0).toLowerCase()) {
                case "on":
                    enabled = true;
                    break;
                case "off":
                    enabled = false;
                    break;
                case "toggle":
                    break;  // Already toggled
                default:
38
                    break;
xtaodada's avatar
xtaodada committed
39
40
41
            }
        }

AnimeGitB's avatar
AnimeGitB committed
42
        targetPlayer.setGodmode(enabled);
43
        CommandHandler.sendMessage(sender, translate("commands.godmode.success", (enabled ? translate("commands.status.enabled") : translate("commands.status.disabled")), targetPlayer.getNickname()));
KingRainbow44's avatar
KingRainbow44 committed
44
45
    }
}