With this Javacord extension you can create Slash Commands on your Discord server within 1 minute with built-in
- input validating,
StringArgument<Integer> stringArgument = new StringArgument<>("number", "A number", Integer.class);
stringArgument.getArgumentValidator().when(RegexPredicate.notValidFor("\\d+")).thenRespond(event -> {
event.getResponder().respondNow()
.setContent("The input is not a number!")
.respond();
});
- value converting,
stringArgument.convertResult(value -> Integer.parseInt(value));
- autocompleting and
StringArgument<String> searchArgument = new StringArgument<>("search", "Start typing", String.class);
SearchAutocomplete searchAutocomplete = new SearchAutocomplete(SearchAutocomplete.SearchType.CONTAINS, Arrays.asList(
"just some words like hello world"
.split(" ")
))
.ignoreCase();
searchArgument.addAutocomplete(searchAutocomplete);
- concatenating
command.addConcatenator(new StringConcatenator<>(" ", String.class), stringArgument, searchArgument);
There are so many useful pre-written argument types that can be used while creating a command.
This command is created just with about 50 lines of code including the response and error handling. It has a validated argument with regex, an argument that has two different values that the user can choose from, a number argument that has a range validation, a normal user mention argument, a normal channel mention argument and an optional attachment argument with size and extension validation.
You can find the full code here that runs a bot with the example command above.
You can find all the information about how to use JCommands
on the Wiki
page.
This is a Javacord extension. Javacord is a Discord bot framework and it so much easier to create bots with it.
Replace {VERSION} with one of the released versions from 6.0.0 (the latest recommended)
<dependency>
<groupId>io.github.s3ns3iw00</groupId>
<artifactId>jcommands</artifactId>
<version>{VERSION}</version>
</dependency>
dependencies {
implementation 'io.github.s3ns3iw00.jcommands:{VERSION}'
}
If you found a bug, or you just want a new feature in the next version, don't hesitate to report it on the issues page or feel free to open a pull request. You can contact me through discord: senseydev