#discord #discord-api #game

discord-sdk

Discord游戏SDK的开源实现

16个版本

0.3.7 2024年7月26日
0.3.6 2024年3月5日
0.3.5 2023年10月4日
0.3.4 2023年3月31日
0.1.1 2021年7月28日

#180 in 网络编程

Download history 122/week @ 2024-04-29 139/week @ 2024-05-06 187/week @ 2024-05-13 171/week @ 2024-05-20 145/week @ 2024-05-27 123/week @ 2024-06-03 146/week @ 2024-06-10 182/week @ 2024-06-17 166/week @ 2024-06-24 132/week @ 2024-07-01 171/week @ 2024-07-08 147/week @ 2024-07-15 233/week @ 2024-07-22 279/week @ 2024-07-29 193/week @ 2024-08-05 170/week @ 2024-08-12

每月890次下载
4 crates 中使用

MIT/Apache

195KB
4K SLoC

⚔️ discord-sdk

Discord游戏SDK的(非官方)开源Rust实现。

Embark Embark Crates.io Docs dependency status Build status

为什么不使用这个呢?

  • 此项目不是官方的,并且使用了一个大部分未记录的协议,Discord可以在未来的任何时间改变/破坏。
  • 已经有一个官方游戏SDK的Rust包装器
  • 您的项目不是用Rust编写的。我们可能会在未来为这个crate添加C API,但到目前为止,这是一个仅限Rust的项目。

为什么要使用这个?

  • 您使用Rust进行项目开发,并希望集成Discord提供的诸如丰富存在/活动等功能。
  • 您不想依赖一个闭源共享库。
  • 您喜欢冒险(尽管这个库也有一些自动测试!)

实现的功能

待办事项: 成就

活动(丰富存在)

命令

事件

其他

待办事项: 应用程序

⚠️ 语音

命令

事件

  • VOICE_SETTINGS_UPDATE_2 - 未记录,但此事件会在所有语音设置更改时触发, "设置本地音量" 之外。

待办事项: 图像

⚠️ 大厅

命令

事件

其他

⚠️ 网络

覆盖层

注意:这些只在协议(可能)正确的情况下进行了测试,然而,覆盖层目前极其有限,因此我们无法测试覆盖层命令是否实际上能正确工作,因为我们的主要项目是Vulkan。

注意,还有其他一些情况下覆盖层无法工作。目前不支持Mac、支持Vulkan的游戏以及一般的老游戏。

另外注意,SDK及其文档在讨论覆盖层时使用了极其混乱的术语“解锁/锁定”,而此crate使用Visibility,即VisibleHidden

命令

事件

关系

命令

  • 获取关系 - 注意:此命令并非直接从常规Game SDK暴露,而是在SDK初始化期间隐式执行。

事件

待办事项:存储

待办事项?商店

用户

命令

事件

⚠️ 弃用

这尚未由Discord官方宣布,但语音大厅网络功能将在未来的某个时间被弃用并移除。由于迄今为止仅实现了大厅功能,一旦官方公布,我们将将其标记为deprecated

测试

不幸的是,Discord没有提供方便的自动化测试方法,因为它需要一个实际运行的Discord应用程序并登录,这使得自动化(尤其是无头)测试...令人烦恼。

目前,您需要手动启动2个不同的Discord应用程序(例如,Stable和Canary),并在同一台机器上使用不同的账户登录,然后一次运行一个测试。

活动

cargo test --features local-testing test_activity

大厅

注意:这没有测试大厅的search功能,因为该命令似乎无法正常工作,并且从未返回结果,即使REST等效命令确实返回了预期的结果。

cargo test --features local-testing test_lobbies

贡献

Contributor Covenant

我们欢迎社区为此项目做出贡献。

请阅读我们的贡献指南以获取有关如何开始的更多信息。在您做出任何贡献之前,请阅读我们的贡献条款

任何有意提交给Embark Studios项目包括在内的贡献,必须遵守Rust标准许可模型(MIT或Apache 2.0),因此将按照以下描述双重许可,不附加任何额外条款或条件。

许可

此贡献可以在以下两者中选择其一进行双重许可:

由您选择。

为明确起见,“您”指Embark或任何其他贡献许可人/用户。

依赖项

~6–19MB
~224K SLoC