Documentation
¶
Index ¶
- Constants
- func CheckSessionPermissions(s *discordgo.Session, guildid, memberid string, required Permission) bool
- type ClientWrapper
- type Command
- type CommandContext
- type CommandMeta
- type CommandType
- type EmbedBuilder
- func (e *EmbedBuilder) AddField(name, value string) *EmbedBuilder
- func (e *EmbedBuilder) AddInlineField(name, value string) *EmbedBuilder
- func (e *EmbedBuilder) Build() *discordgo.MessageEmbed
- func (e *EmbedBuilder) InlineAllFields() *EmbedBuilder
- func (e *EmbedBuilder) SetAuthor(args ...string) *EmbedBuilder
- func (e *EmbedBuilder) SetColor(clr int) *EmbedBuilder
- func (e *EmbedBuilder) SetDescription(description string) *EmbedBuilder
- func (e *EmbedBuilder) SetFooter(args ...string) *EmbedBuilder
- func (e *EmbedBuilder) SetImage(args ...string) *EmbedBuilder
- func (e *EmbedBuilder) SetThumbnail(args ...string) *EmbedBuilder
- func (e *EmbedBuilder) SetTitle(name string) *EmbedBuilder
- func (e *EmbedBuilder) SetURL(URL string) *EmbedBuilder
- func (e *EmbedBuilder) Truncate() *EmbedBuilder
- func (e *EmbedBuilder) TruncateDescription() *EmbedBuilder
- func (e *EmbedBuilder) TruncateFields() *EmbedBuilder
- func (e *EmbedBuilder) TruncateFooter() *EmbedBuilder
- func (e *EmbedBuilder) TruncateTitle() *EmbedBuilder
- type Event
- type EventMeta
- type Log
- type LogLevel
- type Mod
- type Module
- type ModuleContext
- type ModuleMeta
- type Permission
Constants ¶
View Source
const ( EmbedLimitTitle = 256 EmbedLimitDescription = 2048 EmbedLimitFieldValue = 1024 EmbedLimitFieldName = 256 EmbedLimitField = 25 EmbedLimit = 4000 )
Constants for message embed character limits
View Source
const ( PluginsDir = "./plugins" ModSymbolName = "Mod" )
View Source
const Version string = "0.1.0"
Variables ¶
This section is empty.
Functions ¶
func CheckSessionPermissions ¶
func CheckSessionPermissions(s *discordgo.Session, guildid, memberid string, required Permission) bool
Types ¶
type ClientWrapper ¶
type ClientWrapper interface {
AddPrefix(string)
RemovePrefix(string)
SetPrefixes([]string)
GetPrefixes() []string
RegisterModule(Mod) error
Modz() *[]*Mod
RegisterCommand(Command)
GetCommand(string) (cmd Command, exists bool, index int)
UnregisterCommand(string)
IsOwner(string) bool
GetLogger() Log
GetSession() *discordgo.Session
}
type Command ¶
type Command interface {
Meta() *CommandMeta
Exec(context CommandContext, args []string) error
}
type CommandContext ¶
type CommandContext interface {
Client() ClientWrapper
Message() *discordgo.Message
User() *discordgo.User
Channel() *discordgo.Channel
Guild() *discordgo.Guild
Member() *discordgo.Member
Reply(string) (*discordgo.Message, error)
ReplyEmbed(*discordgo.MessageEmbed) (*discordgo.Message, error)
ReplyEmbedBuilder(EmbedBuilder) (*discordgo.Message, error)
ReplyFile(filename string, file io.Reader) (*discordgo.Message, error)
ReplyTTS(string) (*discordgo.Message, error)
PurgeMessages(int) error
}
type CommandMeta ¶
type CommandMeta struct {
Name string
Aliases []string
Description string
OwnerOnly bool
Hidden bool
UserPermissions Permission
BotPermissions Permission
Type CommandType
}
type CommandType ¶
type CommandType int
const ( CommandTypePM CommandType = iota CommandTypeGuild CommandTypeEverywhere )
type EmbedBuilder ¶
type EmbedBuilder struct {
*discordgo.MessageEmbed
}
EmbedBuilder ...
func (*EmbedBuilder) AddField ¶
func (e *EmbedBuilder) AddField(name, value string) *EmbedBuilder
AddField [name] [value]
func (*EmbedBuilder) AddInlineField ¶
func (e *EmbedBuilder) AddInlineField(name, value string) *EmbedBuilder
AddInlineField [name] [value]
func (*EmbedBuilder) InlineAllFields ¶
func (e *EmbedBuilder) InlineAllFields() *EmbedBuilder
InlineAllFields sets all fields in the embed to be inline
func (*EmbedBuilder) SetAuthor ¶
func (e *EmbedBuilder) SetAuthor(args ...string) *EmbedBuilder
SetAuthor ...
func (*EmbedBuilder) SetDescription ¶
func (e *EmbedBuilder) SetDescription(description string) *EmbedBuilder
SetDescription [desc]
func (*EmbedBuilder) SetFooter ¶
func (e *EmbedBuilder) SetFooter(args ...string) *EmbedBuilder
SetFooter [Text] [iconURL]
func (*EmbedBuilder) SetImage ¶
func (e *EmbedBuilder) SetImage(args ...string) *EmbedBuilder
SetImage ...
func (*EmbedBuilder) SetThumbnail ¶
func (e *EmbedBuilder) SetThumbnail(args ...string) *EmbedBuilder
SetThumbnail ...
func (*EmbedBuilder) SetTitle ¶
func (e *EmbedBuilder) SetTitle(name string) *EmbedBuilder
SetTitle ...
func (*EmbedBuilder) Truncate ¶
func (e *EmbedBuilder) Truncate() *EmbedBuilder
Truncate truncates any embed value over the character limit.
func (*EmbedBuilder) TruncateDescription ¶
func (e *EmbedBuilder) TruncateDescription() *EmbedBuilder
TruncateDescription ...
func (*EmbedBuilder) TruncateFields ¶
func (e *EmbedBuilder) TruncateFields() *EmbedBuilder
TruncateFields truncates fields that are too long
func (*EmbedBuilder) TruncateFooter ¶
func (e *EmbedBuilder) TruncateFooter() *EmbedBuilder
TruncateFooter ...
func (*EmbedBuilder) TruncateTitle ¶
func (e *EmbedBuilder) TruncateTitle() *EmbedBuilder
TruncateTitle ...
type Log ¶
type Log interface {
Trace(...interface{})
Debug(...interface{})
Info(...interface{})
Warn(...interface{})
Error(...interface{})
Fatal(...interface{})
Panic(...interface{})
/// Formatted logs
Tracef(string, ...interface{})
Debugf(string, ...interface{})
Infof(string, ...interface{})
Warnf(string, ...interface{})
Errorf(string, ...interface{})
Fatalf(string, ...interface{})
Panicf(string, ...interface{})
SetLevel(LogLevel)
GetLevel() LogLevel
}
type Mod ¶
type Mod interface {
Meta() *ModuleMeta
Module
}
type Module ¶
type Module interface {
Init(ModuleContext) error
DeInit(ModuleContext) error
}
type ModuleContext ¶
type ModuleContext interface {
Client() ClientWrapper
Logger() Log
}
type ModuleMeta ¶
type Permission ¶
type Permission int
const ( PermissionAdministrator Permission = 8 PermissionViewAuditLog Permission = 128 PermissionViewServerInsights Permission = 524288 PermissionManageServer Permission = 32 PermissionManageRoles Permission = 268435456 PermissionManageChannels Permission = 16 PermissionKickMembers Permission = 2 PermissionBanMembers Permission = 4 PermissionCreateInstantInvite Permission = 1 PermissionChangeNickname Permission = 67108864 PermissionManageNicknames Permission = 134217728 PermissionManageEmojis Permission = 1073741824 PermissionManageWebhooks Permission = 536870912 PermissionViewChannels Permission = 1024 PermissionMessagesSend Permission = 2048 PermissionMessagesSendTTS Permission = 4096 PermissionMessagesManage Permission = 8192 PermissionMessagesEmbedLinks Permission = 16384 PermissionMessagesAttachFiles Permission = 32768 PermissionMessagesReadHistory Permission = 65536 PermissionMessagesMentionEveryone Permission = 131072 PermissionMessagesUseExternalEmojis Permission = 262144 PermissionMessagesAddReactions Permission = 64 PermissionVoiceConnect Permission = 1048576 PermissionVoiceSpeak Permission = 2097152 PermissionVoiceMuteMembers Permission = 4194304 PermissionVoiceDeafenMembers Permission = 8388608 PermissionVoiceUseMembers Permission = 16777216 PermissionVoiceUseActivity Permission = 33554432 PermissionVoicePrioritySpeaker Permission = 256 )
Click to show internal directories.
Click to hide internal directories.