Skip to content

Commit 22c5401

Browse files
committed
GH-187 Separate commands to a different classes
1 parent 30948ac commit 22c5401

File tree

5 files changed

+69
-37
lines changed

5 files changed

+69
-37
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.eternalcode.combat.command;
2+
3+
import com.eternalcode.combat.config.implementation.PluginConfig;
4+
import com.eternalcode.combat.fight.FightManager;
5+
import com.eternalcode.combat.notification.NotificationAnnouncer;
6+
import dev.rollczi.litecommands.annotations.argument.Arg;
7+
import dev.rollczi.litecommands.annotations.command.Command;
8+
import dev.rollczi.litecommands.annotations.context.Context;
9+
import dev.rollczi.litecommands.annotations.execute.Execute;
10+
import dev.rollczi.litecommands.annotations.permission.Permission;
11+
import java.util.UUID;
12+
import org.bukkit.command.CommandSender;
13+
import org.bukkit.entity.Player;
14+
import panda.utilities.text.Formatter;
15+
16+
@Command(name = "combatlog", aliases = "combat")
17+
public class CombatStatusCommand {
18+
19+
private final FightManager fightManager;
20+
private final NotificationAnnouncer announcer;
21+
private final PluginConfig config;
22+
23+
public CombatStatusCommand(FightManager fightManager, NotificationAnnouncer announcer, PluginConfig config) {
24+
this.fightManager = fightManager;
25+
this.announcer = announcer;
26+
this.config = config;
27+
}
28+
29+
@Execute(name = "status")
30+
@Permission("eternalcombat.status")
31+
void status(@Context CommandSender sender, @Arg Player target) {
32+
UUID targetUniqueId = target.getUniqueId();
33+
PluginConfig.Messages messages = this.config.messages;
34+
35+
Formatter formatter = new Formatter()
36+
.register("{PLAYER}", target.getName());
37+
38+
this.announcer.sendMessage(sender, this.fightManager.isInCombat(targetUniqueId)
39+
? formatter.format(messages.admin.playerInCombat)
40+
: formatter.format(messages.admin.playerNotInCombat));
41+
}
42+
}

eternalcombat-api/src/main/java/com/eternalcode/combat/fight/tagout/TagOutCommand.java renamed to eternalcombat-api/src/main/java/com/eternalcode/combat/command/CombatTagImmunityCommand.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
1-
package com.eternalcode.combat.fight.tagout;
1+
package com.eternalcode.combat.command;
22

33
import com.eternalcode.combat.config.implementation.PluginConfig;
4+
import com.eternalcode.combat.fight.tagout.FightTagOutService;
45
import com.eternalcode.combat.notification.NotificationAnnouncer;
56
import com.eternalcode.combat.util.DurationUtil;
6-
import dev.rollczi.litecommands.argument.Arg;
7-
import dev.rollczi.litecommands.command.execute.Execute;
8-
import dev.rollczi.litecommands.command.permission.Permission;
9-
import dev.rollczi.litecommands.command.route.Route;
10-
import org.bukkit.entity.Player;
11-
import panda.utilities.text.Formatter;
12-
7+
import dev.rollczi.litecommands.annotations.argument.Arg;
8+
import dev.rollczi.litecommands.annotations.command.Command;
9+
import dev.rollczi.litecommands.annotations.execute.Execute;
10+
import dev.rollczi.litecommands.annotations.permission.Permission;
1311
import java.time.Duration;
1412
import java.time.Instant;
1513
import java.util.UUID;
14+
import org.bukkit.entity.Player;
15+
import panda.utilities.text.Formatter;
1616

17-
@Route(name = "tagout", aliases = "tagimmunity")
18-
public class TagOutCommand {
17+
@Command(name = "tagout", aliases = "tagimmunity")
18+
public class CombatTagImmunityCommand {
1919

2020
private final FightTagOutService fightTagOutService;
2121
private final NotificationAnnouncer announcer;
2222
private final PluginConfig config;
2323

24-
public TagOutCommand(FightTagOutService fightTagOutService, NotificationAnnouncer announcer, PluginConfig config) {
24+
public CombatTagImmunityCommand(
25+
FightTagOutService fightTagOutService,
26+
NotificationAnnouncer announcer,
27+
PluginConfig config
28+
) {
2529
this.fightTagOutService = fightTagOutService;
2630
this.announcer = announcer;
2731
this.config = config;
2832
}
2933

30-
@Execute(required = 1)
34+
@Execute
3135
@Permission("eternalcombat.tagout")
3236
void tagout(Player sender, @Arg Duration time) {
3337
UUID targetUniqueId = sender.getUniqueId();
@@ -42,7 +46,7 @@ void tagout(Player sender, @Arg Duration time) {
4246
this.announcer.sendMessage(sender, format);
4347
}
4448

45-
@Execute(required = 2)
49+
@Execute
4650
@Permission("eternalcombat.tagout")
4751
void tagout(Player sender, @Arg Player target, @Arg Duration time) {
4852
UUID targetUniqueId = target.getUniqueId();
@@ -63,7 +67,7 @@ void tagout(Player sender, @Arg Player target, @Arg Duration time) {
6367
this.announcer.sendMessage(target, playerTagOutFormat);
6468
}
6569

66-
@Execute(route = "remove", required = 1)
70+
@Execute(name = "remove")
6771
@Permission("eternalcombat.tagout")
6872
void untagout(Player sender, @Arg Player target) {
6973
UUID targetUniqueId = target.getUniqueId();
@@ -81,7 +85,7 @@ void untagout(Player sender, @Arg Player target) {
8185
this.announcer.sendMessage(target, this.config.messages.admin.playerTagOutOff);
8286
}
8387

84-
@Execute(route = "remove", required = 0)
88+
@Execute(name = "remove")
8589
@Permission("eternalcombat.tagout")
8690
void untagout(Player sender) {
8791
UUID senderUniqueId = sender.getUniqueId();

eternalcombat-api/src/main/java/com/eternalcode/combat/command/CombatCommand.java renamed to eternalcombat-api/src/main/java/com/eternalcode/combat/command/CombatTagUntagCommand.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,18 @@
2020
import java.util.UUID;
2121

2222
@Command(name = "combatlog", aliases = "combat")
23-
public class CombatCommand {
23+
public class CombatTagUntagCommand {
2424

2525
private final FightManager fightManager;
2626
private final NotificationAnnouncer announcer;
2727
private final PluginConfig config;
2828

29-
public CombatCommand(FightManager fightManager, NotificationAnnouncer announcer, PluginConfig config) {
29+
public CombatTagUntagCommand(FightManager fightManager, NotificationAnnouncer announcer, PluginConfig config) {
3030
this.fightManager = fightManager;
3131
this.announcer = announcer;
3232
this.config = config;
3333
}
3434

35-
@Execute(name = "status")
36-
@Permission("eternalcombat.status")
37-
void status(@Context CommandSender sender, @Arg Player target) {
38-
UUID targetUniqueId = target.getUniqueId();
39-
PluginConfig.Messages messages = this.config.messages;
40-
41-
Formatter formatter = new Formatter()
42-
.register("{PLAYER}", target.getName());
43-
44-
this.announcer.sendMessage(sender, this.fightManager.isInCombat(targetUniqueId)
45-
? formatter.format(messages.admin.playerInCombat)
46-
: formatter.format(messages.admin.playerNotInCombat));
47-
}
48-
4935
@Execute(name = "tag")
5036
@Permission("eternalcombat.tag")
5137
void tag(@Context CommandSender sender, @Arg Player target) {

eternalcombat-api/src/main/java/com/eternalcode/combat/command/ReloadCommand.java renamed to eternalcombat-api/src/main/java/com/eternalcode/combat/command/CommandReloadCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414

1515
@Command(name = "combatlog", aliases = "combat")
1616
@Permission("eternalcombat.reload")
17-
public class ReloadCommand {
17+
public class CommandReloadCommand {
1818

1919
private static final String RELOAD_MESSAGE = "<b><gradient:#8a1212:#fc6b03>EternalCombat:</gradient></b> Reloaded EternalCombat in <color:#fce303>{TIME}ms!</color>";
2020

2121
private final ConfigService configService;
2222
private final NotificationAnnouncer announcer;
2323

24-
public ReloadCommand(ConfigService configService, NotificationAnnouncer announcer) {
24+
public CommandReloadCommand(ConfigService configService, NotificationAnnouncer announcer) {
2525
this.configService = configService;
2626
this.announcer = announcer;
2727
}

eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.eternalcode.combat;
22

33
import com.eternalcode.combat.bridge.BridgeService;
4-
import com.eternalcode.combat.command.CombatCommand;
4+
import com.eternalcode.combat.command.CombatTagUntagCommand;
55
import com.eternalcode.combat.command.handler.InvalidUsageHandlerImpl;
66
import com.eternalcode.combat.command.handler.MissingPermissionHandlerImpl;
77
import com.eternalcode.combat.config.ConfigService;
@@ -27,7 +27,7 @@
2727
import com.eternalcode.combat.fight.pearl.FightPearlManager;
2828
import com.eternalcode.combat.fight.tagout.FightTagOutController;
2929
import com.eternalcode.combat.fight.tagout.FightTagOutService;
30-
import com.eternalcode.combat.fight.tagout.TagOutCommand;
30+
import com.eternalcode.combat.command.CombatTagImmunityCommand;
3131
import com.eternalcode.combat.notification.NotificationAnnouncer;
3232
import com.eternalcode.combat.region.RegionController;
3333
import com.eternalcode.combat.region.RegionProvider;
@@ -118,8 +118,8 @@ public void onEnable() {
118118
.missingPermission(new MissingPermissionHandlerImpl(this.pluginConfig, notificationAnnouncer))
119119

120120
.commands(
121-
new CombatCommand(this.fightManager, notificationAnnouncer, this.pluginConfig),
122-
new TagOutCommand(this.fightTagOutService, notificationAnnouncer, this.pluginConfig)
121+
new CombatTagUntagCommand(this.fightManager, notificationAnnouncer, this.pluginConfig),
122+
new CombatTagImmunityCommand(this.fightTagOutService, notificationAnnouncer, this.pluginConfig)
123123
)
124124

125125
.build();

0 commit comments

Comments
 (0)