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 continue
} }
localizer := message.NewLocalizer(g.Server.Lang) localizer := message.NewLocalizer(g.Server.Lang)
lostVillagesMsg := &discord.MessageEmbed{} lostVillagesMsg := &discord.MessageEmbedFieldBuilder{}
conqueredVillagesMsg := &discord.MessageEmbed{} conqueredVillagesMsg := &discord.MessageEmbedFieldBuilder{}
for _, obs := range g.Observations { for _, obs := range g.Observations {
enblmnts, ok := ennoblementsByServerKey[obs.Server] enblmnts, ok := ennoblementsByServerKey[obs.Server]
version := twutil.FindVersionByCode(versions, twmodel.VersionCodeFromServerKey(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 return
} }
msg := &MessageEmbed{} msg := &MessageEmbedFieldBuilder{}
for _, village := range list.Items { for _, village := range list.Items {
villageURL := twurlbuilder.BuildVillageURL(ctx.server.CoordsTranslation, version.Host, village.ID) villageURL := twurlbuilder.BuildVillageURL(ctx.server.CoordsTranslation, version.Host, village.ID)
playerName := "-" playerName := "-"

View File

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

View File

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

View File

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