rename MessageEmbed -> MessageEmbedFieldBuilder

This commit is contained in:
Dawid Wysokiński 2021-07-18 07:25:16 +02:00
parent 438cca1146
commit 704928d9b4
5 changed files with 34 additions and 23 deletions

View File

@ -161,8 +161,8 @@ func (h *handler) checkEnnoblements() {
continue
}
localizer := message.NewLocalizer(g.Server.Lang)
lostVillagesMsg := &discord.MessageEmbed{}
conqueredVillagesMsg := &discord.MessageEmbed{}
lostVillagesMsg := &discord.MessageEmbedFieldBuilder{}
conqueredVillagesMsg := &discord.MessageEmbedFieldBuilder{}
for _, obs := range g.Observations {
enblmnts, ok := ennoblementsByServerKey[obs.Server]
version := twutil.FindVersionByCode(versions, twmodel.VersionCodeFromServerKey(obs.Server))

View File

@ -112,7 +112,7 @@ func (s *Session) translateCoords(ctx *commandCtx, m *discordgo.MessageCreate) {
return
}
msg := &MessageEmbed{}
msg := &MessageEmbedFieldBuilder{}
for _, village := range list.Items {
villageURL := twurlbuilder.BuildVillageURL(ctx.server.CoordsTranslation, version.Host, village.ID)
playerName := "-"

View File

@ -1,6 +1,7 @@
package discord
import (
"strconv"
"sync"
"github.com/bwmarrin/discordgo"
@ -61,7 +62,6 @@ func (e *Embed) AddField(name, value string) *Embed {
})
return e
}
func (e *Embed) SetFields(fields []*discordgo.MessageEmbedField) *Embed {
@ -235,39 +235,50 @@ func (e *Embed) TruncateFooter() *Embed {
return e
}
type MessageEmbed struct {
type MessageEmbedFieldBuilder struct {
chunks []string
index int
name string
mutex sync.Mutex
}
func (msg *MessageEmbed) IsEmpty() bool {
return len(msg.chunks) == 0
func (b *MessageEmbedFieldBuilder) SetName(name string) {
b.mutex.Lock()
defer b.mutex.Unlock()
b.name = name
}
func (msg *MessageEmbed) Append(m string) {
msg.mutex.Lock()
defer msg.mutex.Unlock()
for len(msg.chunks) < msg.index+1 {
msg.chunks = append(msg.chunks, "")
func (b *MessageEmbedFieldBuilder) IsEmpty() bool {
return len(b.chunks) == 0
}
func (b *MessageEmbedFieldBuilder) Append(m string) {
b.mutex.Lock()
defer b.mutex.Unlock()
for len(b.chunks) < b.index+1 {
b.chunks = append(b.chunks, "")
}
if len(m)+len(msg.chunks[msg.index]) > EmbedLimitFieldValue {
msg.chunks = append(msg.chunks, m)
msg.index++
if len(m)+len(b.chunks[b.index]) > EmbedLimitFieldValue {
b.chunks = append(b.chunks, m)
b.index++
return
}
msg.chunks[msg.index] += m
b.chunks[b.index] += m
}
func (msg *MessageEmbed) ToMessageEmbedFields() []*discordgo.MessageEmbedField {
msg.mutex.Lock()
defer msg.mutex.Unlock()
func (b *MessageEmbedFieldBuilder) ToMessageEmbedFields() []*discordgo.MessageEmbedField {
b.mutex.Lock()
defer b.mutex.Unlock()
var fields []*discordgo.MessageEmbedField
for _, chunk := range msg.chunks {
name := b.name
if name == "" {
name = "Field"
}
for i, chunk := range b.chunks {
fields = append(fields, &discordgo.MessageEmbedField{
Name: "-",
Name: name + strconv.Itoa(i+1),
Value: chunk,
})
}

View File

@ -732,7 +732,7 @@ func (s *Session) handleObservationsCommand(ctx *commandCtx, m *discordgo.Messag
Code: versionCodes,
})
msg := &MessageEmbed{}
msg := &MessageEmbedFieldBuilder{}
if len(observations) <= 0 || err != nil || versionList == nil || versionList.Items == nil {
msg.Append("-")
} else {

View File

@ -428,7 +428,7 @@ func (s *Session) handleTribeCommand(ctx *commandCtx, m *discordgo.MessageCreate
return
}
msg := &MessageEmbed{}
msg := &MessageEmbedFieldBuilder{}
for i, player := range playerList.Items {
if player == nil {
continue