Commit Graph

5 Commits

Author SHA1 Message Date
Ophestra Umiker a985e2b9df
library: io: make connection private and implement Close method
Since some of the state of the connection is tracked by the Client struct and the Raw method is sufficient for any low-level interaction with the Discord RPC, users of the API should not and does not have any reason to interact with the underlying connection.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
2024-06-19 23:32:51 +09:00
Ophestra Umiker a8dc09e90c
library: rpc: activity data types and set method
Activity data types come from Discord documentation examples as the documented field optionality is inaccurate.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
2024-06-19 23:21:52 +09:00
Ophestra Umiker 7074a1a950
library: rpc: many RPC data types and client handshake activation
Add a few internal validation functions to make validation cleaner, activation function is called as needed so explicit client activation is not required.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
2024-06-19 23:16:43 +09:00
Ophestra Umiker 4e1e343081
library: io: implement client type and I/O methods
Path discovery is ported directly from Discord's C++ example, Windows has a crazy looking socket path that needs special syscall magic to dial, so we'll put that off for the time being.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
2024-06-19 23:11:44 +09:00
Ophestra Umiker 078092bc4c
go: initialise go module
Add github.com/google/uuid as a dependency as well since it will be required for nonce generation. Exclude files based on template from GitHub.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
2024-06-19 23:07:05 +09:00