session

package
v3.0.0-...-04a954d Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2021 License: ISC Imports: 7 Imported by: 0

Documentation

Overview

Package session abstracts around the REST API and the Gateway, managing both at once. It offers a handler interface similar to that in discordgo for Gateway events.

Index

Constants

This section is empty.

Variables

View Source
var ErrMFA = errors.New("account has 2FA enabled")

Functions

func NewShardFunc

func NewShardFunc(f func(m *shard.Manager, s *Session)) shard.NewShardFunc

NewShardFunc creates a shard constructor for a session. Accessing any shard and adding a handler will add a handler for all shards.

Types

type Closed

type Closed struct {
	Error error
}

Closed is an event that's sent to Session's command handler. This works by using (*Gateway).AfterClose. If the user sets this callback, no Closed events would be sent.

Usage

ses.AddHandler(func(*session.Closed) {})

type Session

type Session struct {
	*api.Client
	*gateway.Gateway

	// Command handler with inherited methods.
	*handler.Handler
	// contains filtered or unexported fields
}

Session manages both the API and Gateway. As such, Session inherits all of API's methods, as well has the Handler used for Gateway.

func Login

func Login(email, password, mfa string) (*Session, error)

Login tries to log in as a normal user account; MFA is optional.

func New

func New(token string) (*Session, error)

New creates a new session from a given token. Most bots should be using NewWithIntents instead.

func NewCustomSession

func NewCustomSession(gw *gateway.Gateway, cl *api.Client, h *handler.Handler) *Session

NewCustomSession constructs a bare Session from the given parameters.

func NewCustomShard

func NewCustomShard(m *shard.Manager, id *gateway.Identifier) *Session

NewCustomShard creates a new session from the given shard manager and other parameters.

func NewWithGateway

func NewWithGateway(gw *gateway.Gateway) *Session

NewWithGateway creates a new Session with the given Gateway.

func NewWithIntents

func NewWithIntents(token string, intents ...gateway.Intents) (*Session, error)

func (*Session) Close

func (s *Session) Close() error

Close closes the underlying Websocket connection, invalidating the session ID.

It will send a closing frame before ending the connection, closing it gracefully. This will cause the bot to appear as offline instantly.

func (*Session) Open

func (s *Session) Open(ctx context.Context) error

func (*Session) Pause

func (s *Session) Pause() error

Pause pauses the Gateway connection, by ending the connection without sending a closing frame. This allows the connection to be resumed at a later point.

func (*Session) WithContext

func (s *Session) WithContext(ctx context.Context) *Session

WithContext returns a shallow copy of Session with the context replaced in the API client. All methods called on the returned Session will use this given context.

This method is thread-safe only after Open and before Close are called. Open and Close should not be called on the returned Session.

Jump to

Keyboard shortcuts

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