#rich-presence #discord-rich-presence #discord #activity #presence #rich #api-bindings

rust-discord-activity

一个轻量级的库,用于控制 Discord 丰富存在

5 个不稳定版本

0.3.0 2024 年 1 月 13 日
0.2.0 2024 年 1 月 13 日
0.1.2 2023 年 12 月 30 日
0.1.1 2023 年 12 月 30 日
0.1.0 2023 年 12 月 30 日

#265GUI

MIT 许可证

23KB
432

Rust Discord Activity

一个轻量级的 Rust 库,用于控制 Discord 丰富存在

安装

Rust Discord Activity 可在 crates.io 上直接使用: cargo add rust-discord-activity

如何使用

  1. 实例化一个新的 DiscordClient
  2. 使用提供的结构体创建您的 Activity 并设置所需的数据
  3. 使用您的 Activity 创建一个新的 Payload
  4. 通过 DiscordClient 发送您的 Payload

就这样!

示例

let mut client = DiscordClient::new("<application_id>");

let limg = Some(String::from("https://placehold.co/600x400/png"));
let simg = Some(String::from("https://placehold.co/200x100/png"));
let asset = Asset::new(limg, None, simg, None);
let now_in_millis = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis();
let timestamp = Timestamp::new(Some(now_in_millis - 10000), None);

let party = Party::new(None, Some((2, 4)));
let mut button_vec = vec![];
button_vec.push(Button::new("First Button".into(), "https://google.com".into()));
button_vec.push(Button::new("Second Button".into(), "https://yahoo.com".into()));

let mut activity = Activity::new();

activity
    .set_state(Some("This is State".into()))
    .set_activity_type(Some(ActivityType::LISTENING))
    .set_details(Some("This is Details".parse().unwrap()))
    .set_timestamps(Some(timestamp))
    .set_assets(Some(asset))
    .set_party(Some(party))
    .set_instance(Some(true))
    .set_buttons(Some(button_vec));

let payload = Payload::new(EventName::Activity, EventData::Activity(activity));

let _ = client.send_payload(payload);

就这样!这为当前 Discord 用户设置了一个新的 Activity

Discord Rich Presence

限制

目前,该库仅适用于 MacOS 和本地 Discord 应用程序。

下一步

  • 为该库编写适当的文档
  • 编写单元测试

依赖项

~1–1.9MB
~41K SLoC