discordgo_scm

package module
v3.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2022 License: MIT Imports: 3 Imported by: 0

README

discordgo-scm

Slash commands manager for discordgo

Go Reference

Install

go get github.com/ethanent/discordgo-scm/v3

Usage

SCM is based around the concept of a Feature. It's meant to be a somewhat futureproof way to handle all kinds of Discord interactions.

You may create Features for a number of different interaction types, including ApplicationCommand, ApplicationCommandAutocomplete, and MessageComponent.

Interaction Type Relevant Feature Properties
discordgo.InteractionApplicationCommand Type, Handler, ApplicationCommand
discordgo.InteractionApplicationCommandAutocomplete Type, Handler, ApplicationCommand
discordgo.InteractionMessageComponent Type, Handler, CustomID

Now, to actually use the library, you must create an SCM and add Features.

Create an SCM:

m := scm.NewSCM()

Add a Feature to your SCM:

m.AddFeature(myFeature)

Have your SCM handle interactions with a bot:

s.AddHandler(m.HandleInteractionCreate)

Register ApplicationCommands with your bot:

// Where s is your discordgo session

err := m.CreateCommands(s, "")
// Please handle your errors :)

Delete ApplicationCommands once bot shuts down:

m.DeleteCommands(s, "")

See the godoc for full details.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Feature

type Feature struct {
	Type discordgo.InteractionType

	// Handler function for feature interactions
	Handler func(*discordgo.Session, *discordgo.InteractionCreate)

	// ApplicationCommand if Type is discordgo.InteractionApplicationCommand
	// or discordgo.InteractionApplicationCommandAutocomplete.
	// Not needed for Type discordgo.InteractionMessageComponent.
	ApplicationCommand *discordgo.ApplicationCommand

	// CustomID if Type is discordgo.InteractionMessageComponent.
	// It is in glob format. Use "" (zero string) or "*" to match all CustomIDs
	CustomID string
	// contains filtered or unexported fields
}

Feature is a handler for various events

type SCM

type SCM struct {
	Features []*Feature
	// contains filtered or unexported fields
}

func NewSCM

func NewSCM() *SCM

func (*SCM) AddFeature

func (s *SCM) AddFeature(f *Feature) error

AddFeature adds a Feature to the SCM.

func (*SCM) AddFeatures

func (s *SCM) AddFeatures(ff []*Feature) error

func (*SCM) CreateCommands

func (s *SCM) CreateCommands(c *discordgo.Session, guildID string) error

CreateCommands registers any commands (Features with Type discordgo.InteractionApplicationCommand or discordgo.InteractionApplicationCommandAutocomplete) with the API. Leave guildID as empty string for global commands. Session must already be connected beforehand.

func (*SCM) DeleteCommands

func (s *SCM) DeleteCommands(c *discordgo.Session, guildID string) error

DeleteCommands deregisters any commands registered using CreateCommands with the API.

func (*SCM) HandleInteractionCreate

func (s *SCM) HandleInteractionCreate(c *discordgo.Session, i *discordgo.InteractionCreate)

Jump to

Keyboard shortcuts

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