Compare commits
3 commits
5ea94e5453
...
226f75327f
| Author | SHA1 | Date | |
|---|---|---|---|
| 226f75327f | |||
| 938de32946 | |||
| 7eb57f59aa |
1 changed files with 63 additions and 60 deletions
123
README.md
123
README.md
|
|
@ -1,60 +1,63 @@
|
|||
# Rust Discord Activity
|
||||
_A lightweight Rust library to control Discord Rich Presence for Windows, Linux and MacOS_
|
||||
|
||||
[Author of the idea and 80% code](https://github.com/DylanCa/rust-discord-activity)
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
cargo add --git https://git.amok.dev/AmokDev/rust-discord-rpc
|
||||
```
|
||||
|
||||
## How to use
|
||||
1. Instantiate a new DiscordClient
|
||||
2. Create your Activity and set desired data using provided structs
|
||||
3. Create a new Payload with your Activity
|
||||
4. Send your Payload through the DiscordClient
|
||||
|
||||
## Example
|
||||
```rust
|
||||
let mut client = DiscordClient::new("<application_id>");
|
||||
|
||||
let _ = client.connect();
|
||||
|
||||
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);
|
||||
|
||||
```
|
||||
|
||||
This sets-up a new Activity for the current Discord user:
|
||||
|
||||
<img alt="Discord Rich Presence" src="https://imgur.com/gf9pOen.png" width="300"/>
|
||||
|
||||
# Thanks for support
|
||||
## Testers
|
||||
| Windows | MacOS | Linux |
|
||||
|---------------|-------------|----------|
|
||||
| AmokDev (me) | hellkarm | doxbiner |
|
||||
# Localizations
|
||||
[EN](https://git.amok.dev/AmokDev/rust-discord-rpc/src/branch/master/README_EN.md) | RU
|
||||
|
||||
# Rust Discord Activity
|
||||
_Простая Rust библиотека для управления Discord RPC для Windows, Linux и MacOS_
|
||||
|
||||
[Автор идеи](https://github.com/DylanCa/rust-discord-activity)
|
||||
|
||||
## Установка
|
||||
```bash
|
||||
cargo add --git https://git.amok.dev/AmokDev/rust-discord-rpc
|
||||
```
|
||||
|
||||
## Как использовать
|
||||
1. Создайте новый DiscordClient
|
||||
2. Создайте объект Activity и задайте нужные данные, используя предоставленные структуры
|
||||
3. Создайте новую полезную нагрузку с вашей активностью
|
||||
4. Отправьте вашу полезную нагрузку через DiscordClient
|
||||
|
||||
## Пример
|
||||
```rust
|
||||
let mut client = DiscordClient::new("<application_id>");
|
||||
|
||||
let _ = client.connect();
|
||||
|
||||
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("Первая кнопка".into(), "https://google.com".into()));
|
||||
button_vec.push(Button::new("Вторая кнопка".into(), "https://yahoo.com".into()));
|
||||
|
||||
let mut activity = Activity::new();
|
||||
|
||||
activity
|
||||
.set_state(Some("Это состояние".into()))
|
||||
.set_activity_type(Some(ActivityType::LISTENING))
|
||||
.set_details(Some("Это детали".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:
|
||||
|
||||
<img alt="Discord Rich Presence" src="https://imgur.com/gf9pOen.png" width="300"/>
|
||||
|
||||
# Спасибо за поддержку
|
||||
## Тестерам
|
||||
| Windows | MacOS | Linux |
|
||||
|---------------|-------------|----------|
|
||||
| AmokDev (я) | hellkarm | doxbiner |
|
||||
Loading…
Add table
Reference in a new issue