Compare commits
2 commits
226f75327f
...
d32174615d
| Author | SHA1 | Date | |
|---|---|---|---|
| d32174615d | |||
| 269bb9ab43 |
1 changed files with 63 additions and 0 deletions
63
README_EN.md
Normal file
63
README_EN.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Localizations
|
||||||
|
EN | [RU](https://git.amok.dev/AmokDev/rust-discord-rpc/src/branch/master/README.md)
|
||||||
|
|
||||||
|
# Rust Discord Activity
|
||||||
|
_A lightweight Rust library to control Discord Rich Presence for Windows, Linux and MacOS_
|
||||||
|
|
||||||
|
[Author of the idea](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 |
|
||||||
Loading…
Add table
Reference in a new issue