Issues (115)

bot/messages.go (1 issue)

Severity
1
package bot
2
3
// BotMessages contains map with key = guild ID, value = array of messages IDs
4
type BotMessages struct {
0 ignored issues
show
type name will be used as bot.BotMessages by other packages, and that stutters; consider calling this Messages
Loading history...
5
	Messages map[string][]string
6
}
7
8
// NewMessagesMap creates map of bot's messages
9
func NewMessagesMap() *BotMessages {
10
	return &BotMessages{Messages: make(map[string][]string)}
11
}
12
13
// Add adds bot message to index
14
func (m *BotMessages) Add(ctx *Context, messageID string) {
15
	m.Messages[ctx.Message.ChannelID] = append(m.Messages[ctx.Message.ChannelID], messageID)
16
	if len(m.Messages[ctx.Message.ChannelID]) > ctx.Conf.General.MessagePool {
17
		m.Messages[ctx.Message.ChannelID] = m.Messages[ctx.Message.ChannelID][1:]
18
	}
19
}
20
21
// Clear deletes bot messages
22
func (m *BotMessages) Clear(ctx *Context, from int) {
23
	channelID := ctx.Message.ChannelID
24
	if from >= len(m.Messages[channelID]) {
25
		return
26
	}
27
	if len(m.Messages[channelID][:(len(m.Messages[channelID])-1)-from]) > 0 {
28
		err := ctx.Discord.ChannelMessagesBulkDelete(ctx.Message.ChannelID, m.Messages[channelID][:(len(m.Messages[channelID])-1)-from])
29
		if err != nil {
30
			ctx.Log("Message", ctx.Guild.ID, err.Error())
31
		}
32
		m.Messages[channelID] = m.Messages[channelID][(len(m.Messages[channelID])-1)-from:]
33
	}
34
}
35