MCPcopy Create free account
hub / github.com/Frontrooms/3.0-GC / BanCommand

Class BanCommand

src/main/java/emu/grasscutter/command/commands/BanCommand.java:11–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9import emu.grasscutter.server.game.GameSession;
10
11@Command(
12 label = "ban",
13 usage = "ban <@player> [time] [reason]",
14 description = "commands.ban.description",
15 permission = "server.ban",
16 targetRequirement = Command.TargetRequirement.PLAYER
17)
18public final class BanCommand implements CommandHandler {
19
20 private boolean banAccount(Player targetPlayer, int time, String reason) {
21 Account account = targetPlayer.getAccount();
22
23 if (account == null) {
24 return false;
25 }
26
27 account.setBanReason(reason);
28 account.setBanEndTime(time);
29 account.setBanStartTime((int) System.currentTimeMillis() / 1000);
30 account.setBanned(true);
31 account.save();
32
33 GameSession session = targetPlayer.getSession();
34 if (session != null) {
35 session.close();
36 }
37 return true;
38 }
39
40 @Override
41 public void execute(Player sender, Player targetPlayer, List<String> args) {
42 int time = 2051190000;
43 String reason = "Reason not specified.";
44
45 switch (args.size()) {
46 case 2:
47 reason = args.get(1); // Fall-through
48 case 1:
49 try {
50 time = Integer.parseInt(args.get(0));
51 } catch (NumberFormatException ignored) {
52 CommandHandler.sendTranslatedMessage(sender, "commands.ban.invalid_time");
53 return;
54 } // Fall-through, unimportant
55 default:
56 break;
57 }
58
59 if (banAccount(targetPlayer, time, reason)) {
60 CommandHandler.sendTranslatedMessage(sender, "commands.ban.success");
61 } else {
62 CommandHandler.sendTranslatedMessage(sender, "commands.ban.failure");
63 }
64 }
65}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected