Documentation ¶
Index ¶
- Constants
- Variables
- type BucketContainer
- func (b *BucketContainer) CreateBucketIfNotExists(user string)
- func (b *BucketContainer) Drain(amount int8, user string) error
- func (b *BucketContainer) Get(user string) int8
- func (b *BucketContainer) HasKeys(user string) bool
- func (b *BucketContainer) Init()
- func (b *BucketContainer) Refiller()
- func (b *BucketContainer) Set(user string, value int8)
- type Handler
- func (h *Handler) Action(command string, content string, msg *discordgo.Message, ...)
- func (h *Handler) Commands() []string
- func (h *Handler) Init(session *shardmanager.Manager)
- func (h *Handler) OnChannelCreate(session *discordgo.Session, channel *discordgo.ChannelCreate)
- func (h *Handler) OnChannelDelete(session *discordgo.Session, channel *discordgo.ChannelDelete)
- func (h *Handler) OnGuildBanAdd(user *discordgo.GuildBanAdd, session *discordgo.Session)
- func (h *Handler) OnGuildBanRemove(user *discordgo.GuildBanRemove, session *discordgo.Session)
- func (h *Handler) OnGuildMemberAdd(member *discordgo.Member, session *discordgo.Session)
- func (h *Handler) OnGuildMemberRemove(member *discordgo.Member, session *discordgo.Session)
- func (h *Handler) OnGuildRoleCreate(session *discordgo.Session, role *discordgo.GuildRoleCreate)
- func (h *Handler) OnGuildRoleDelete(session *discordgo.Session, role *discordgo.GuildRoleDelete)
- func (h *Handler) OnMessage(content string, msg *discordgo.Message, session *discordgo.Session)
- func (h *Handler) OnMessageDelete(msg *discordgo.MessageDelete, session *discordgo.Session)
- func (h *Handler) OnReactionAdd(reaction *discordgo.MessageReactionAdd, session *discordgo.Session)
- func (h *Handler) OnReactionRemove(reaction *discordgo.MessageReactionRemove, session *discordgo.Session)
- func (h *Handler) Uninit(session *shardmanager.Manager)
Constants ¶
View Source
const ( // How many keys a bucket may contain when created BUCKET_INITIAL_FILL = 5 // The maximum amount of keys a user may possess BUCKET_UPPER_BOUND = 5 // How often new keys drip into the buckets DROP_INTERVAL = 15 * time.Second // How many keys may drop at a time DROP_SIZE = 1 )
Variables ¶
View Source
var Container = &BucketContainer{}
Global pointer to a container instance
Functions ¶
This section is empty.
Types ¶
type BucketContainer ¶
Container struct to lock the bucket map
func (*BucketContainer) CreateBucketIfNotExists ¶
func (b *BucketContainer) CreateBucketIfNotExists(user string)
Check if the user has a bucket. If not create one
func (*BucketContainer) Drain ¶
func (b *BucketContainer) Drain(amount int8, user string) error
Drains $amount from $user if he has enough keys left
func (*BucketContainer) Get ¶
func (b *BucketContainer) Get(user string) int8
func (*BucketContainer) HasKeys ¶
func (b *BucketContainer) HasKeys(user string) bool
Check if the user still has keys
func (*BucketContainer) Init ¶
func (b *BucketContainer) Init()
Allocates the map and starts routines
func (*BucketContainer) Refiller ¶
func (b *BucketContainer) Refiller()
Refills user buckets in a set interval
func (*BucketContainer) Set ¶
func (b *BucketContainer) Set(user string, value int8)
type Handler ¶
type Handler struct { }
func (*Handler) Init ¶
func (h *Handler) Init(session *shardmanager.Manager)
func (*Handler) OnChannelCreate ¶
func (h *Handler) OnChannelCreate(session *discordgo.Session, channel *discordgo.ChannelCreate)
func (*Handler) OnChannelDelete ¶
func (h *Handler) OnChannelDelete(session *discordgo.Session, channel *discordgo.ChannelDelete)
func (*Handler) OnGuildBanAdd ¶
func (h *Handler) OnGuildBanAdd(user *discordgo.GuildBanAdd, session *discordgo.Session)
func (*Handler) OnGuildBanRemove ¶
func (h *Handler) OnGuildBanRemove(user *discordgo.GuildBanRemove, session *discordgo.Session)
func (*Handler) OnGuildMemberAdd ¶
func (*Handler) OnGuildMemberRemove ¶
func (*Handler) OnGuildRoleCreate ¶
func (h *Handler) OnGuildRoleCreate(session *discordgo.Session, role *discordgo.GuildRoleCreate)
func (*Handler) OnGuildRoleDelete ¶
func (h *Handler) OnGuildRoleDelete(session *discordgo.Session, role *discordgo.GuildRoleDelete)
func (*Handler) OnMessageDelete ¶
func (h *Handler) OnMessageDelete(msg *discordgo.MessageDelete, session *discordgo.Session)
func (*Handler) OnReactionAdd ¶
func (h *Handler) OnReactionAdd(reaction *discordgo.MessageReactionAdd, session *discordgo.Session)
func (*Handler) OnReactionRemove ¶
func (h *Handler) OnReactionRemove(reaction *discordgo.MessageReactionRemove, session *discordgo.Session)
func (*Handler) Uninit ¶
func (h *Handler) Uninit(session *shardmanager.Manager)
Click to show internal directories.
Click to hide internal directories.