common

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CmdPlaceHolder      = "{{cmd}}"
	NumErrorPlaceHolder = "{{numError}}"
	RolePlaceHolder     = "{{role}}"
	GroupPlaceHolder    = "{{group}}"
)
View Source
const MemberCallLimit = 1000

max number of members returned by Discord API (as stated in Session.GuildMembers documentation)

Variables

This section is empty.

Functions

func AddNonEmpty

func AddNonEmpty[T any](m map[string]T, name string, value T)

func AuthorizedCmd added in v1.4.0

func AuthorizedCmd(s *discordgo.Session, i *discordgo.InteractionCreate, infos GuildAndConfInfo, cmdEffect func() string)

func BuildMsgWithNameValueList

func BuildMsgWithNameValueList(baseMsg string, nameToValue map[string]string) string

func CleanMessage added in v1.4.0

func CleanMessage(msg string) string

Remove "{{cmd}}" place holder and replace multiple space in row by one space

func ExtractNick

func ExtractNick(member *discordgo.Member) (nick string)

func IdInSet

func IdInSet(ids []string, idSet StringSet) bool

func IdMatch added in v1.7.0

func IdMatch(ids []string, idToValue map[string]string, targetValue string) bool

func InitChecker

func InitChecker(rule string) func(string) bool

func LaunchTickers

func LaunchTickers(number int, interval time.Duration) []chan time.Time

func LogBeforeShutdown added in v1.4.0

func LogBeforeShutdown()

func MembersCmd

func MembersCmd(s *discordgo.Session, i *discordgo.InteractionCreate, messageSender chan<- MultipartMessage, infos GuildAndConfInfo, msgs Messages, cmdEffect func(*discordgo.Member))

func ProcessMembers added in v1.4.0

func ProcessMembers(guildMembers []*discordgo.Member, cmdEffect func(*discordgo.Member) int) int

func SendTick

func SendTick(tickSender chan<- bool, interval time.Duration)

func UpdateGameStatus

func UpdateGameStatus(session *discordgo.Session, games []string, interval time.Duration)

Types

type ChannelSenderManager

type ChannelSenderManager struct {
	// contains filtered or unexported fields
}

func MakeChannelSenderManager

func MakeChannelSenderManager(session *discordgo.Session) ChannelSenderManager

func (ChannelSenderManager) AddChannel

func (m ChannelSenderManager) AddChannel(channelId string)

func (ChannelSenderManager) Get

func (m ChannelSenderManager) Get(channelId string) chan<- MultipartMessage

type Empty

type Empty = struct{}

type GuildAndConfInfo

type GuildAndConfInfo struct {
	GuildId                    string
	OwnerId                    string
	DefaultRoleId              string
	AuthorizedRoleIds          StringSet
	ForbiddenRoleIds           StringSet
	IgnoredRoleIds             StringSet
	ForbiddenAndignoredRoleIds StringSet
	AdminitrativeRoleIds       StringSet
	CmdRoleIds                 StringSet
	SpecialRoleIds             StringSet
	RoleIdToPrefix             map[string]string
	Prefixes                   []string
	RoleIdToDisplayName        map[string]string
	Msgs                       Messages
}

type Messages added in v1.4.0

type Messages struct {
	Ok              string
	ErrUnauthorized string
	ErrGlobalCmd    string
	ErrPartialCmd   string
	Count           string
	Prefix          string
	NoChange        string
	EndedCmd        string
	Owner           string
	ErrGlobal       string
	ErrPartial      string
}

func (Messages) ReplaceCmdPlaceHolder added in v1.4.0

func (m Messages) ReplaceCmdPlaceHolder(cmdName string) Messages

type MultipartMessage

type MultipartMessage struct {
	Message    string
	FileName   string
	FileData   string
	ErrorMsg   string
	AllowMerge bool
}

type StringSet

type StringSet = map[string]Empty

func InitIdSet

func InitIdSet(names []string, nameToId map[string]string) StringSet

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳