client

package
v0.0.0-...-ba62d83 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Activity

type Activity struct {
	// What the player is currently doing
	Details string
	// The user's current party status
	State string
	// The id for a large asset of the activity, usually a snowflake
	LargeImage string
	// Text displayed when hovering over the large image of the activity
	LargeText string
	// The id for a small asset of the activity, usually a snowflake
	SmallImage string
	// Text displayed when hovering over the small image of the activity
	SmallText string
	// Information for the current party of the player
	Party *Party
	// Unix timestamps for start and/or end of the game
	Timestamps *Timestamps
	// Secrets for Rich Presence joining and spectating
	Secrets *Secrets
	// Clickable buttons that open a URL in the browser
	Buttons []*Button
}

Activity holds the data for discord rich presence

type Args

type Args struct {
	Pid      int              `json:"pid"`
	Activity *PayloadActivity `json:"activity"`
}

Args is a arguments of Frame

type Button

type Button struct {
	// The label of the button
	Label string
	// The URL of the button
	URL string
}

Button holds a label and the corresponding URL that is opened on press

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a Discord client.

func NewClient

func NewClient(clientID string) (*Client, error)

NewClient returns Discord Client.

func (*Client) Login

func (c *Client) Login(clientid string) error

Login sends a handshake in the socket and returns an error or nil.

func (*Client) Logout

func (c *Client) Logout() error

Logout close socket.

func (*Client) SetActivity

func (c *Client) SetActivity(activity Activity) error

SetActivity send request to Discord for change user status.

type Error

type Error struct {
	Code    ErrorCode `json:"code"`
	Message string    `json:"message"`

	Data struct {
		Code    ErrorCode `json:"code"`
		Message string    `json:"message"`
	} `json:"data"`
}

Error is a Discord error struct. Sometimes (for example in handshake) discord can send error non in data struct

func (Error) Error

func (e Error) Error() string

type ErrorCode

type ErrorCode int

ErrorCode is a type of error.

const (
	// No errors :)
	NoErr ErrorCode = 0
)

Discord error codes.

func (ErrorCode) Error

func (e ErrorCode) Error() string

type Frame

type Frame struct {
	Cmd   string `json:"cmd"`
	Args  Args   `json:"args"`
	Nonce string `json:"nonce"`
}

Frame is a packet to Discord

type Handshake

type Handshake struct {
	V        string `json:"v"`
	ClientID string `json:"client_id"`
}

Handshake is a login request to Discord

type Party

type Party struct {
	// The ID of the party
	ID string
	// Used to show the party's current size
	Players int
	// Used to show the party's maximum size
	MaxPlayers int
}

Party holds information for the current party of the player

type PayloadActivity

type PayloadActivity struct {
	Details    string             `json:"details"`
	State      string             `json:"state"`
	Assets     PayloadAssets      `json:"assets"`
	Party      *PayloadParty      `json:"party,omitempty"`
	Timestamps *PayloadTimestamps `json:"timestamps,omitempty"`
	Secrets    *PayloadSecrets    `json:"secrets,omitempty"`
	Buttons    []*PayloadButton   `json:"buttons,omitempty"`
}

PayloadActivity is a change user activity request

type PayloadAssets

type PayloadAssets struct {
	LargeImage string `json:"large_image"`
	LargeText  string `json:"large_text"`
	SmallImage string `json:"small_image"`
	SmallText  string `json:"small_text"`
}

PayloadAssets is a images in PayloadActivity

type PayloadButton

type PayloadButton struct {
	Label string `json:"label,omitempty"`
	URL   string `json:"url,omitempty"`
}

PayloadButton is a button config in PayloadActivity

type PayloadParty

type PayloadParty struct {
	ID   string `json:"id"`
	Size [2]int `json:"size"`
}

PayloadParty is a discord party config in PayloadActivity

type PayloadSecrets

type PayloadSecrets struct {
	Match    string `json:"match,omitempty"`
	Join     string `json:"join,omitempty"`
	Spectate string `json:"spectate,omitempty"`
}

PayloadSecrets is a secrets in PayloadActivity

type PayloadTimestamps

type PayloadTimestamps struct {
	Start *uint64 `json:"start,omitempty"`
	End   *uint64 `json:"end,omitempty"`
}

PayloadTimestamps is a timestamps field in PayloadActivity

type Secrets

type Secrets struct {
	// The secret for a specific instanced match
	Match string
	// The secret for joining a party
	Join string
	// The secret for spectating a game
	Spectate string
}

Secrets holds secrets for Rich Presence joining and spectating

type Timestamps

type Timestamps struct {
	// unix time (in milliseconds) of when the activity started
	Start *time.Time
	// unix time (in milliseconds) of when the activity ends
	End *time.Time
}

Timestamps holds unix timestamps for start and/or end of the game

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL