5 个版本 (3 个破坏性更新)
0.4.0 | 2024 年 6 月 14 日 |
---|---|
0.3.0 | 2023 年 4 月 8 日 |
0.2.1 | 2022 年 6 月 20 日 |
0.2.0 | 2022 年 2 月 18 日 |
0.1.0 | 2021 年 10 月 4 日 |
#7 in #slash-command
290KB
4.5K SLoC
Slashook
基于 webhook 的 Discord slash 命令库。
这是一个 WIP 项目。请注意,在 1.0.0 版本之前,小版本更新中可能会发生破坏性更改。
待办事项
- 完整的 API 覆盖率的 REST 方法
- 实用方法
- 更多库端验证
- 测试和基准测试
网关(以及由此扩展的语音)功能不在此项目范围内。
许可证
根据以下任一许可证授权:
- Apache 许可证 2.0 版本,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何提交给您的工作以包含在内的有意贡献,根据 Apache-2.0 许可证定义,应双重许可,如上所述,不附加任何额外的条款或条件。
lib.rs
:
基于 webhook 的 Discord slash 命令库
此库专注于使用网络服务器通过交互系统接收命令事件,而不是传统的网关 WebSocket。可以使用任何负载均衡解决方案进行扩展,无需基于公会计数进行分片。
用法
首先,前往 Discord 开发者门户,获取您的应用程序的公钥以及可选的 bot 令牌、客户端 ID 和/或客户端密钥。
以下是一个简单的示例以帮助您开始
#[macro_use] extern crate slashook;
use slashook::{ Client, Config };
use slashook::commands::{ CommandInput, CommandResponder };
#[slashook::main]
async fn main() {
let config = Config {
public_key: String::from("your_public_key"),
bot_token: Some(String::from("your.bot.token")),
client_id: Some(String::from("your_client_id")),
..Default::default()
};
#[command(name = "ping", description = "pong")]
fn ping(input: CommandInput, res: CommandResponder) {
res.send_message("Pong!").await?;
}
let mut client = Client::new(config);
client.register_command(ping);
client.sync_commands().await;
client.start().await;
}
您的 bot 现在将监听 http://0.0.0.0:3000/
。有关 IP 和端口选项,请参阅 [配置]。
您现在可以通过反向代理将其路由,并在开发者门户中设置您的交互 URL。
查看 CommandInput 和 CommandResponder,了解您在函数中可用的值和函数。
依赖项
~24–57MB
~1M SLoC