rolecommands

package
v1.6.2 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2018 License: MIT Imports: 26 Imported by: 0

README

Plugin that allows users to assign roles to themsleves

  • role options

    • names
    • group
    • require-roles
    • ignore-roles
    • allow-take-off-role
  • group options

    • name
    • require-roles
    • ignore-roles
    • mode
      • single
        • auto-take-away
        • require-one
      • multi
        • max-amount
        • min-amount
      • none

Documentation

Overview

rolecommands is a plugin which allows users to assign roles to themselves

Index

Constants

View Source
const (
	GroupModeNone = iota
	GroupModeSingle
	GroupModeMultiple
)
View Source
const (
	RoleMenuStateSettingUp = 0
	RoleMenuStateDone      = 1
)
View Source
const DBSchema = `` /* 1841-byte string literal not displayed */

Variables

This section is empty.

Functions

func AssignRole

func AssignRole(ctx context.Context, guildID int64, ms *dstate.MemberState, cmd *CommandGroupPair) (gaveRole bool, err error)

AssignRole attempts to assign the given role command, returns an error if the role does not exists or is unable to receie said role

func CanAssignRoleCmdTo

func CanAssignRoleCmdTo(r *models.RoleCommand, memberRoles []int64) error

func CheckIgnoredRoles

func CheckIgnoredRoles(ignore []int64, has []int64) error

func CheckRequiredRoles

func CheckRequiredRoles(requireOneOf []int64, has []int64) bool

func CmdFuncListCommands

func CmdFuncListCommands(parsed *dcmd.Data) (interface{}, error)

func CmdFuncRole

func CmdFuncRole(parsed *dcmd.Data) (interface{}, error)

func CmdFuncRoleMenu

func CmdFuncRoleMenu(parsed *dcmd.Data) (interface{}, error)

func ContinueRoleMenuSetup

func ContinueRoleMenuSetup(ctx context.Context, rm *models.RoleMenu, ra *discordgo.MessageReactionAdd) (resp string, err error)

func FindAssignRole

func FindAssignRole(ctx context.Context, guildID int64, ms *dstate.MemberState, name string) (gaveRole bool, err error)

func GetAllRoleCommandsSorted

func GetAllRoleCommandsSorted(ctx context.Context, guildID int64) (groups []*models.RoleGroup, grouped map[*models.RoleGroup][]*models.RoleCommand, unGrouped []*models.RoleCommand, err error)

func GroupAssignRoleToMember

func GroupAssignRoleToMember(ctx context.Context, rg *models.RoleGroup, guildID int64, ms *dstate.MemberState, targetRole *models.RoleCommand) (gaveRole bool, err error)

AssignRoleToMember attempts to assign the given role command, part of this group to the member

func HandleGetGroup added in v1.4.1

func HandleGetGroup(groupID int64, w http.ResponseWriter, r *http.Request) (tmpl web.TemplateData, err error)

func HandleGetIndex added in v1.4.1

func HandleGetIndex(w http.ResponseWriter, r *http.Request) (tmpl web.TemplateData, err error)

func HandleMoveCommand

func HandleMoveCommand(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)

func HandleNewCommand

func HandleNewCommand(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)

func HandleNewGroup

func HandleNewGroup(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)

func HandleRemoveCommand

func HandleRemoveCommand(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)

func HandleRemoveGroup

func HandleRemoveGroup(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)

func HandleUpdateCommand

func HandleUpdateCommand(w http.ResponseWriter, r *http.Request) (tmpl web.TemplateData, err error)

func HandleUpdateGroup

func HandleUpdateGroup(w http.ResponseWriter, r *http.Request) (tmpl web.TemplateData, err error)

func HumanizeAssignError

func HumanizeAssignError(guild *dstate.GuildState, err error) (string, error)

func IsRoleCommandError

func IsRoleCommandError(err error) bool

func MemberChooseOption

func MemberChooseOption(ctx context.Context, rm *models.RoleMenu, ra *discordgo.MessageReactionAdd, gs *dstate.GuildState, option *models.RoleMenuOption) (resp string, err error)

func NewGroupError

func NewGroupError(msg string, group *models.RoleGroup) error

func NewLmitError

func NewLmitError(msg string, limit int) error

func NewRoleError

func NewRoleError(msg string, role int64) error

func NewSimpleError

func NewSimpleError(format string, args ...interface{}) error

func NextRoleMenuSetupStep

func NextRoleMenuSetupStep(ctx context.Context, rm *models.RoleMenu, opts []*models.RoleMenuOption, first bool) (resp string, err error)

func OptionCommandPairLessFunc

func OptionCommandPairLessFunc(slice []*OptionCommandPair) func(int, int) bool

func RegisterPlugin

func RegisterPlugin()

func RoleCommandsLessFunc

func RoleCommandsLessFunc(slice []*models.RoleCommand) func(int, int) bool

func StringCommands

func StringCommands(cmds []*models.RoleCommand) string

StringCommands pretty formats a bunch of commands into a string

func ToggleRole

func ToggleRole(guildID int64, ms *dstate.MemberState, role int64) (gaveRole bool, err error)

ToggleRole toggles the role of a guildmember, adding it if the member does not have the role and removing it if they do

func UpdateMenu

func UpdateMenu(parsed *dcmd.Data, existing *models.RoleMenu) (interface{}, error)

func UpdateRoleMenuMessage

func UpdateRoleMenuMessage(ctx context.Context, rm *models.RoleMenu, opts []*models.RoleMenuOption) error

Types

type CommandGroupPair

type CommandGroupPair struct {
	Command *models.RoleCommand
	Group   *models.RoleGroup
}

type FormCommand

type FormCommand struct {
	ID           int64
	Name         string `valid:",1,100,trimspace"`
	Role         int64  `valid:"role,false"`
	Group        int64
	RequireRoles []int64 `valid:"role,true"`
	IgnoreRoles  []int64 `valid:"role,true"`
}

type FormGroup

type FormGroup struct {
	ID           int64
	Name         string  `valid:",1,100,trimspace"`
	RequireRoles []int64 `valid:"role,true"`
	IgnoreRoles  []int64 `valid:"role,true"`

	Mode int

	MultipleMax int
	MultipleMin int

	SingleAutoToggleOff bool
	SingleRequireOne    bool
}

type GroupError

type GroupError struct {
	Group   *models.RoleGroup
	Message string
}

func (*GroupError) Error

func (r *GroupError) Error() string

type LmitError

type LmitError struct {
	Limit   int
	Message string
}

func (*LmitError) Error

func (r *LmitError) Error() string

type OptionCommandPair

type OptionCommandPair struct {
	Option  *models.RoleMenuOption
	Command *models.RoleCommand
}

type Plugin

type Plugin struct {
}

func (*Plugin) AddCommands added in v1.4.1

func (p *Plugin) AddCommands()

func (*Plugin) BotInit added in v1.4.1

func (p *Plugin) BotInit()

func (*Plugin) InitWeb

func (p *Plugin) InitWeb()

func (*Plugin) Name

func (p *Plugin) Name() string

type RoleError

type RoleError struct {
	Role    int64
	Message string
}

func (*RoleError) Error

func (r *RoleError) Error() string

func (*RoleError) PrettyError

func (r *RoleError) PrettyError(roles []*discordgo.Role) string

Uses the role name from one of the passed roles with matching id instead of the id

type SimpleError

type SimpleError string

Just a simple type but distinguishable from errors.Error

func (SimpleError) Error

func (s SimpleError) Error() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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