Skip to content

Commit 411f209

Browse files
committed
encapsulated command argument
1 parent c992c48 commit 411f209

18 files changed

Lines changed: 92 additions & 42 deletions

voxels-server/src/main/java/server/commands/AbstractCommand.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public abstract class AbstractCommand implements Command {
44

5-
private static final String[] EMPTY_ARGUMENT_LABELS = new String[] {};
5+
private static final CommandArgument[] EMPTY_ARGUMENT_LABELS = new CommandArgument[] {};
66

77
private static final String[] EMPTY_ALIASES = new String[] {};
88

@@ -17,14 +17,15 @@ public abstract class AbstractCommand implements Command {
1717

1818
@Override
1919
public String getSyntax() {
20-
StringBuilder builder = new StringBuilder();
21-
builder.append(getName());
22-
for (String arg : getArgumentLabels()) {
23-
builder.append(" <");
24-
builder.append(arg);
25-
builder.append(">");
26-
}
27-
return builder.toString();
20+
// StringBuilder builder = new StringBuilder();
21+
// builder.append(getName());
22+
// for (CommandArgument arg : getArgumentLabels()) {
23+
// builder.append(" <");
24+
// builder.append(arg.getName());
25+
// builder.append(">");
26+
// }
27+
// return builder.toString();
28+
return "";
2829
}
2930

3031
@Override
@@ -56,7 +57,7 @@ public String[] getAliases() {
5657
}
5758

5859
@Override
59-
public String[] getArgumentLabels() {
60+
public CommandArgument[] getArgumentLabels() {
6061
return EMPTY_ARGUMENT_LABELS;
6162
}
6263
}

voxels-server/src/main/java/server/commands/Command.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public interface Command {
1212

1313
String getPermission();
1414

15-
String[] getArgumentLabels();
15+
CommandArgument[] getArgumentLabels();
1616

1717
String getSyntax();
1818

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package server.commands;
2+
3+
public class CommandArgument {
4+
5+
private final String name;
6+
7+
private final boolean required;
8+
9+
public CommandArgument(String name, boolean required) {
10+
this.name = name;
11+
this.required = required;
12+
}
13+
14+
public String getName() {
15+
return name;
16+
}
17+
18+
public boolean isRequired() {
19+
return required;
20+
}
21+
}

voxels-server/src/main/java/server/commands/commands/BroadcastCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package server.commands.commands;
22

33
import server.commands.AbstractCommand;
4+
import server.commands.CommandArgument;
45
import server.commands.CommandContext;
56
import server.permissions.Permissions;
67

@@ -28,8 +29,8 @@ public String getDescription() {
2829
}
2930

3031
@Override
31-
public String[] getArgumentLabels() {
32-
return new String[] {"message"};
32+
public CommandArgument[] getArgumentLabels() {
33+
return new CommandArgument[] {new CommandArgument("message", true)};
3334
}
3435

3536
@Override

voxels-server/src/main/java/server/commands/commands/ChangeGameModeCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import common.game.GameMode;
88
import server.commands.AbstractCommand;
9+
import server.commands.CommandArgument;
910
import server.commands.CommandContext;
1011
import server.commands.CommandMessages;
1112
import server.gateways.MessageGateway;
@@ -77,8 +78,8 @@ public String getName() {
7778
}
7879

7980
@Override
80-
public String[] getArgumentLabels() {
81-
return new String[] {"survival|creative|0|1|s|c"};
81+
public CommandArgument[] getArgumentLabels() {
82+
return new CommandArgument[] {new CommandArgument("survival|creative|0|1|s|c", true)};
8283
}
8384

8485
@Override

voxels-server/src/main/java/server/commands/commands/ChunkCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import common.network.packets.ChunkDataPacket;
88
import common.world.ChunkData;
99
import server.commands.AbstractCommand;
10+
import server.commands.CommandArgument;
1011
import server.commands.CommandContext;
1112
import server.network.GameServer;
1213
import server.permissions.Permissions;
@@ -100,8 +101,8 @@ private void triggerNeighborUpdate(ServerWorld world, GameServer server, int cx,
100101
}
101102

102103
@Override
103-
public String[] getArgumentLabels() {
104-
return new String[] {"clear"};
104+
public CommandArgument[] getArgumentLabels() {
105+
return new CommandArgument[] {new CommandArgument("clear", true)};
105106
}
106107

107108
@Override

voxels-server/src/main/java/server/commands/commands/DeopCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.UUID;
55

66
import server.commands.AbstractCommand;
7+
import server.commands.CommandArgument;
78
import server.commands.CommandContext;
89
import server.gateways.MessageGateway;
910
import server.gateways.PermissionGateway;
@@ -59,8 +60,8 @@ public void execute(CommandContext ctx) {
5960
}
6061

6162
@Override
62-
public String[] getArgumentLabels() {
63-
return new String[] {"player"};
63+
public CommandArgument[] getArgumentLabels() {
64+
return new CommandArgument[] {new CommandArgument("player", true)};
6465
}
6566

6667
@Override

voxels-server/src/main/java/server/commands/commands/EchoCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package server.commands.commands;
22

33
import server.commands.AbstractCommand;
4+
import server.commands.CommandArgument;
45
import server.commands.CommandContext;
56
import server.permissions.Permissions;
67

@@ -24,8 +25,8 @@ public String getName() {
2425
}
2526

2627
@Override
27-
public String[] getArgumentLabels() {
28-
return new String[] {"message"};
28+
public CommandArgument[] getArgumentLabels() {
29+
return new CommandArgument[] {new CommandArgument("message", true)};
2930
}
3031

3132
@Override

voxels-server/src/main/java/server/commands/commands/HelpCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import server.commands.AbstractCommand;
66
import server.commands.Command;
7+
import server.commands.CommandArgument;
78
import server.commands.CommandContext;
89
import server.gateways.CommandGateway;
910
import server.permissions.Permissions;
@@ -49,8 +50,8 @@ private void renderDetailedHelp(CommandContext ctx, Command cmd) {
4950
sb.append("§7Description: §f").append(cmd.getDescription()).append("\n");
5051

5152
sb.append("§7Usage: §e/").append(cmd.getName());
52-
for (String label : cmd.getArgumentLabels()) {
53-
sb.append(" <").append(label).append(">");
53+
for (CommandArgument arg : cmd.getArgumentLabels()) {
54+
sb.append(" <").append(arg.getName()).append(">");
5455
}
5556
sb.append("\n");
5657

voxels-server/src/main/java/server/commands/commands/InventoryCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Locale;
44

55
import server.commands.AbstractCommand;
6+
import server.commands.CommandArgument;
67
import server.commands.CommandContext;
78
import server.gateways.MessageGateway;
89
import server.permissions.Permissions;
@@ -50,8 +51,8 @@ private void executeUseCase(CommandContext ctx) {
5051
}
5152

5253
@Override
53-
public String[] getArgumentLabels() {
54-
return new String[] {"clear"};
54+
public CommandArgument[] getArgumentLabels() {
55+
return new CommandArgument[] {new CommandArgument("clear", true)};
5556
}
5657

5758
@Override

0 commit comments

Comments
 (0)