Skip to content
This repository was archived by the owner on Dec 18, 2023. It is now read-only.

Commit 6e22170

Browse files
committed
fix(tab completer) tab completer for /manhunt
1 parent c98e272 commit 6e22170

File tree

5 files changed

+41
-14
lines changed

5 files changed

+41
-14
lines changed

src/main/java/world/anhgelus/manhuntplugin/ManhuntPlugin.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@
77
import world.anhgelus.gamelibrary.commands.Subcommand;
88
import world.anhgelus.gamelibrary.game.Game;
99
import world.anhgelus.gamelibrary.game.commands.GameCommandManager;
10+
import world.anhgelus.gamelibrary.game.commands.GameCommands;
1011
import world.anhgelus.gamelibrary.game.engine.GameEngine;
1112
import world.anhgelus.gamelibrary.team.Team;
1213
import world.anhgelus.gamelibrary.util.config.ConfigAPI;
13-
import world.anhgelus.manhuntplugin.command.manhunt.GetCompassSubcommand;
14-
import world.anhgelus.manhuntplugin.command.manhunt.ManhuntCommand;
15-
import world.anhgelus.manhuntplugin.command.manhunt.TeamSubcommand;
16-
import world.anhgelus.manhuntplugin.command.manhunt.TrackerSubcommand;
14+
import world.anhgelus.manhuntplugin.command.manhunt.*;
1715
import world.anhgelus.manhuntplugin.conditions.GConditions;
1816
import world.anhgelus.manhuntplugin.conditions.SConditions;
1917
import world.anhgelus.manhuntplugin.conditions.WConditions;
@@ -46,8 +44,9 @@ public void onEnable() {
4644

4745
final PluginCommand gameCommand = getCommand("game");
4846
if (gameCommand != null) {
49-
gameCommand.setExecutor(manager.registerGameCommands());
50-
gameCommand.setTabCompleter(manager.registerGameTabCompleter());
47+
final GameCommands gameCommands = manager.registerGameCommands();
48+
gameCommand.setExecutor(gameCommands);
49+
gameCommand.setTabCompleter(gameCommands.getGenericTabCompleter());
5150
}
5251

5352
// Initialize the teams
@@ -58,7 +57,7 @@ public void onEnable() {
5857

5958
// Register the commands
6059
final List<Subcommand> manhuntSubcommands = List.of(
61-
new TeamSubcommand(), new TrackerSubcommand(), new GetCompassSubcommand()
60+
new TeamSubcommand(), new TrackerSubcommand(), new GetCompassSubcommand(), new CompassSubcommand()
6261
);
6362
final PluginCommand manhuntCommand = getCommand("manhunt");
6463
if (manhuntCommand != null) {

src/main/java/world/anhgelus/manhuntplugin/command/manhunt/CompassSubcommand.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,21 @@ public boolean onCommand(Player player, String[] args) {
2727

2828
@Override
2929
public List<String> getTabCompleter(Player player, String[] args) {
30-
return MaterialHelper.generatePossibilitiesForTab();
30+
return compassSubTab(player, args);
3131
}
3232

33+
/**
34+
* Execute the compass subcommand (/manhunt compass)
35+
* @param player The player who executed the command
36+
* @param args The arguments of the command
37+
*/
3338
public static void compassSub(Player player, String[] args) {
39+
if (args.length < 1) {
40+
return;
41+
}
3442
if (args.length == 1) {
3543
SenderHelper.sendInfo(player, "/manhunt compass|tracker set|get|track");
44+
return;
3645
}
3746
String sub = args[1];
3847
switch (sub) {
@@ -61,4 +70,24 @@ public static void compassSub(Player player, String[] args) {
6170
default -> SenderHelper.sendInfo(player, "/manhunt compass|tracker set|get|track");
6271
}
6372
}
73+
74+
/**
75+
* Get the tab completer for the compass subcommand (/manhunt compass)
76+
* @param player The player who executed the command
77+
* @param args The arguments of the command
78+
* @return The list of possible completions
79+
*/
80+
public static List<String> compassSubTab(Player player, String[] args) { // manhunt compass set|get|track <other>
81+
if (args.length == 2) {
82+
return List.of("set", "get", "track");
83+
}
84+
if (args.length != 3) {
85+
return null;
86+
}
87+
return switch (args[1]) {
88+
case "set" -> MaterialHelper.generatePossibilitiesForTab();
89+
case "track" -> Bukkit.getOnlinePlayers().stream().map(Player::getName).toList();
90+
default -> null;
91+
};
92+
}
6493
}

src/main/java/world/anhgelus/manhuntplugin/command/manhunt/ManhuntCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public ManhuntCommand(List<Subcommand> subcommands) {
1313
}
1414

1515
@Override
16-
protected boolean command(Player player, String[] args) {
17-
if (!onSubcommand(player, args)) {
16+
protected boolean command(Player player, String label, String[] args) {
17+
if (!onSubcommand(player, label, args)) {
1818
SenderHelper.sendWarning(player, "Unknown subcommand: " + args[0]);
1919
}
2020
return true;

src/main/java/world/anhgelus/manhuntplugin/command/manhunt/TeamSubcommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public boolean onCommand(Player player, String[] args) {
4141

4242
@Override
4343
public List<String> getTabCompleter(Player player, String[] args) {
44-
if (args.length == 3) {
44+
if (args.length == 4) { // /manhunt team add <team> <player>
4545
final String sub = args[1];
4646
final List<String> players = Bukkit.getOnlinePlayers().stream().map(Player::getName).toList();
4747
switch (sub) {
@@ -51,7 +51,7 @@ public List<String> getTabCompleter(Player player, String[] args) {
5151
case "list":
5252
return null;
5353
}
54-
} else if (args.length == 4 && !args[1].equals("list")) {
54+
} else if (args.length == 5 && !args[1].equals("list")) {
5555
final TeamList[] teams = TeamList.values();
5656
final String[] teamNames = new String[teams.length];
5757
for (int i = 0; i < teams.length; i++) {

src/main/java/world/anhgelus/manhuntplugin/command/manhunt/TrackerSubcommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.bukkit.entity.Player;
44
import world.anhgelus.gamelibrary.commands.Permission;
55
import world.anhgelus.gamelibrary.commands.Subcommand;
6-
import world.anhgelus.manhuntplugin.utils.MaterialHelper;
76

87
import java.util.List;
98

@@ -20,6 +19,6 @@ public boolean onCommand(Player player, String[] args) {
2019

2120
@Override
2221
public List<String> getTabCompleter(Player player, String[] args) {
23-
return MaterialHelper.generatePossibilitiesForTab();
22+
return CompassSubcommand.compassSubTab(player, args);
2423
}
2524
}

0 commit comments

Comments
 (0)