Skip to content

Commit 9cfe04e

Browse files
authored
Merge pull request #9 from ZorTik/development
getDistinctCommands()
2 parents db0a998 + 38476da commit 9cfe04e

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

src/main/java/me/zort/commandlib/CommandEntry.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import static me.zort.commandlib.util.CommandUtil.parseCommandName;
2424

2525
public class CommandEntry {
26-
private final CommandLib lib;
26+
private final CommandLib<?> lib;
2727
@Getter
2828
private final CommandEntryMeta meta;
2929
@Getter
@@ -48,7 +48,7 @@ public static class ParsingProcessData {
4848
private final Set<Class<? extends CommandArgumentRule>> passedRules;
4949
}
5050

51-
public CommandEntry(CommandLib lib, Object mappingObject, Method method) {
51+
public CommandEntry(CommandLib<?> lib, Object mappingObject, Method method) {
5252
this.lib = lib;
5353
this.mappingObject = mappingObject;
5454
this.method = method;
@@ -210,11 +210,6 @@ public boolean matchesForSuggestion(String commandName, String[] args) {
210210
continue;
211211
}
212212

213-
/*boolean last = i == args.length - 1;
214-
if((last && !syntaxArgs[i].startsWith(arg)) || (!last && !syntaxArgs[i].equals(arg))) {
215-
return false;
216-
}*/
217-
218213
if (!syntaxArgs[i].startsWith(arg)) {
219214
return false;
220215
}

src/main/java/me/zort/commandlib/CommandEntryMeta.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@NoArgsConstructor
77
@Data
8-
public class CommandEntryMeta {
8+
public class CommandEntryMeta implements CommandMeta {
99

1010
private String name;
1111
private String description = "";

src/main/java/me/zort/commandlib/CommandLib.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.stream.Collectors;
2222

2323
// S = CommandSender
24-
public abstract class CommandLib<S> {
24+
public abstract class CommandLib<S> implements Iterable<CommandMeta> {
2525
public static final Gson GSON = new Gson();
2626

2727
private final Iterable<Object> mappingObjects;
@@ -93,6 +93,10 @@ public void unregisterAll() {
9393
commands.clear();
9494
}
9595

96+
public Map<String, CommandMeta> getDistinctCommands() {
97+
return commands.stream().collect(Collectors.toMap(CommandEntry::getName, CommandEntry::getMeta));
98+
}
99+
96100
// Command name with slash.
97101
protected void invoke(Object sender, String commandName, String[] args) {
98102
if(!commandName.startsWith("/")) {
@@ -200,4 +204,8 @@ private void loadMappingObject(Object obj) {
200204
}
201205
}
202206

207+
@Override
208+
public Iterator<CommandMeta> iterator() {
209+
return getDistinctCommands().values().iterator();
210+
}
203211
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package me.zort.commandlib;
2+
3+
public interface CommandMeta {
4+
5+
String getName();
6+
String getDescription();
7+
String getUsage();
8+
9+
}

0 commit comments

Comments
 (0)