
Enhances command experience in Guilded by offering a versatile framework. Supports delegated arguments, command execution, and integration with Guilded Bot API while lacking platform-specific types.
A simple and versatile command framework to improve command experience in Guilded elegantly.
The default and built-in implementation of the common module is :bot, which uses deck to communicate with Guilded's Bot API.
There's no official documentation, but you can find some examples below.
This module contains the main functionalities of the framework, being less powerful than the others:
(NEW!) Delegated arguments syntax:
// Possible patterns of execution: <command> [message] [times] | [times]
val command = genericCommand("repeat", "repeattask") {
val message by optionalArgument("message", quote())
val times by requiredArgument("times", integer())
executor {
repeat(times) { count ->
send("${message ?: "No message specified."} (x${count+1})")
}
}
}Normal syntax:
val command = genericCommand("repeat", "repeattask") {
argument("times", integer()) { times ->
executor {
repeat(times.infer()) { count ->
send("No message specified (x$count)")
}
}
argument("message", phrase()) { message ->
executor {
repeat(times.infer()) { count ->
send(message.infer())
}
}
}
}
}This module can't operate on its own, since it does not have a command handler. In other words, it doesn't have a bridge to send AND/OR receive content.
This module is a Clubs implementation that uses the official Guilded Bot API. Usage:
val command = command("say") {
val message by delegateArgument("message", quote())
executor {
channel.sendMessage(message)
}
literal("embed") {
executor {
channel.sendEmbed {
description = message
}
}
}
}Example usage: say "Hello, World!" embed.
Unfortunately, this module doesn't support specific-platform types, such as channels, users or roles due to the early stage of the bot API (at the time I developed this project).
To use clubs you just need to add the desired artifact inside your dependencies scope, for example:
dependencies {
implementation("io.github.srgaabriel.clubs:clubs-bot:$clubsVersion")
}Here you can replace clubsVersion with the latest version (1.4).
Note: If you wish to use the common module alone, you can just replace clubs-bot with clubs-common.
A simple and versatile command framework to improve command experience in Guilded elegantly.
The default and built-in implementation of the common module is :bot, which uses deck to communicate with Guilded's Bot API.
There's no official documentation, but you can find some examples below.
This module contains the main functionalities of the framework, being less powerful than the others:
(NEW!) Delegated arguments syntax:
// Possible patterns of execution: <command> [message] [times] | [times]
val command = genericCommand("repeat", "repeattask") {
val message by optionalArgument("message", quote())
val times by requiredArgument("times", integer())
executor {
repeat(times) { count ->
send("${message ?: "No message specified."} (x${count+1})")
}
}
}Normal syntax:
val command = genericCommand("repeat", "repeattask") {
argument("times", integer()) { times ->
executor {
repeat(times.infer()) { count ->
send("No message specified (x$count)")
}
}
argument("message", phrase()) { message ->
executor {
repeat(times.infer()) { count ->
send(message.infer())
}
}
}
}
}This module can't operate on its own, since it does not have a command handler. In other words, it doesn't have a bridge to send AND/OR receive content.
This module is a Clubs implementation that uses the official Guilded Bot API. Usage:
val command = command("say") {
val message by delegateArgument("message", quote())
executor {
channel.sendMessage(message)
}
literal("embed") {
executor {
channel.sendEmbed {
description = message
}
}
}
}Example usage: say "Hello, World!" embed.
Unfortunately, this module doesn't support specific-platform types, such as channels, users or roles due to the early stage of the bot API (at the time I developed this project).
To use clubs you just need to add the desired artifact inside your dependencies scope, for example:
dependencies {
implementation("io.github.srgaabriel.clubs:clubs-bot:$clubsVersion")
}Here you can replace clubsVersion with the latest version (1.4).
Note: If you wish to use the common module alone, you can just replace clubs-bot with clubs-common.