session

package
v3.0.0-rc.5 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2022 License: ISC Imports: 8 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")

ErrMFA is returned if the account requires a 2FA code to log in.

Functions

This section is empty.

Types

type Session

type Session struct {
	*api.Client
	*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(ctx context.Context, 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

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

func NewCustom

func NewCustom(id gateway.Identifier, cl *api.Client, h *handler.Handler) *Session

NewCustom constructs a bare Session from the given parameters.

func NewWithGateway

func NewWithGateway(g *gateway.Gateway, h *handler.Handler) *Session

NewWithGateway constructs a bare Session from the given UNOPENED gateway.

func NewWithIdentifier

func NewWithIdentifier(id gateway.Identifier) *Session

NewWithIdentifier creates a bare Session with the given identifier.

func NewWithIntents

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

NewWithIntents is similar to New but adds the given intents in during construction.

func (*Session) AddIntents

func (s *Session) AddIntents(intents gateway.Intents)

AddIntents adds the given intents into the gateway. Calling it after Open has already been called will result in a panic.

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. To prevent this behavior, change Gateway.AlwaysCloseGracefully.

func (*Session) Gateway

func (s *Session) Gateway() *gateway.Gateway

Gateway returns the current session's gateway. If Open has never been called or Session was never constructed with a gateway, then nil is returned.

func (*Session) HasIntents

func (s *Session) HasIntents(intents gateway.Intents) bool

HasIntents reports if the Gateway has the passed Intents.

If no intents are set, e.g. if using a user account, HasIntents will always return true.

func (*Session) Open

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

Open opens the Discord gateway and its handler, then waits until either the Ready or Resumed event gets through.

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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