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
introduced
by
![]() |
|||
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 |