discordgo_scm

package module
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2021 License: MIT Imports: 2 Imported by: 0

README

discordgo-scm

Slash commands manager for discordgo

Go Reference

Install

go get github.com/ethanent/discordgo-scm

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)

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 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
	CustomID string
}

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)

AddFeature adds a Feature to the SCM.

func (*SCM) AddFeatures added in v1.1.0

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

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. NOTE: Bot must already be started 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) HandleInteraction

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

Jump to

Keyboard shortcuts

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