diff --git a/cron/handler.go b/cron/handler.go index 1bf278e..35ede14 100644 --- a/cron/handler.go +++ b/cron/handler.go @@ -9,6 +9,7 @@ import ( "github.com/tribalwarshelp/dcbot/message" "github.com/pkg/errors" + "github.com/tribalwarshelp/shared/mode" shared_models "github.com/tribalwarshelp/shared/models" "github.com/tribalwarshelp/dcbot/discord" @@ -52,6 +53,9 @@ func (h *handler) loadEnnoblements(servers []string) map[string]ennoblements { lastEnnoblementAt, ok := h.lastEnnoblementAt[w] if !ok { + lastEnnoblementAt = time.Now().Add(-1 * time.Minute) + } + if mode.Get() == mode.DevelopmentMode { lastEnnoblementAt = time.Now().Add(-60 * time.Minute) } @@ -164,33 +168,56 @@ func (h *handler) checkEnnoblements() { } if group.ConqueredVillagesChannelID != "" && !conqueredVillagesMsg.IsEmpty() { - h.discord.SendEmbed(group.ConqueredVillagesChannelID, - discord. - NewEmbed(). - SetTitle(localizer.MustLocalize(&i18n.LocalizeConfig{ - MessageID: "cron.conqueredVillages.title", - DefaultMessage: message.FallbackMsg("cron.conqueredVillages.title", - "Conquered villages"), - })). - SetColor(colorConqueredVillage). - SetFields(conqueredVillagesMsg.ToMessageEmbedFields()). - SetTimestamp(formatDateOfConquest(time.Now())). - MessageEmbed) + fields := conqueredVillagesMsg.ToMessageEmbedFields() + title := localizer.MustLocalize(&i18n.LocalizeConfig{ + MessageID: "cron.conqueredVillages.title", + DefaultMessage: message.FallbackMsg("cron.conqueredVillages.title", + "Conquered villages"), + }) + timestamp := formatDateOfConquest(time.Now()) + + for i := 0; i < len(fields); i += discord.EmbedLimitField { + end := i + discord.EmbedLimitField + + if end > len(fields) { + end = len(fields) + } + + h.discord.SendEmbed(group.ConqueredVillagesChannelID, + discord. + NewEmbed(). + SetTitle(title). + SetColor(colorConqueredVillage). + SetFields(fields[i:end]). + SetTimestamp(timestamp). + MessageEmbed) + } } if group.LostVillagesChannelID != "" && !lostVillagesMsg.IsEmpty() { - h.discord.SendEmbed(group.LostVillagesChannelID, - discord. - NewEmbed(). - SetTitle(localizer.MustLocalize(&i18n.LocalizeConfig{ - MessageID: "cron.lostVillages.title", - DefaultMessage: message.FallbackMsg("cron.lostVillages.title", - "Lost villages"), - })). - SetColor(colorLostVillage). - SetFields(lostVillagesMsg.ToMessageEmbedFields()). - SetTimestamp(formatDateOfConquest(time.Now())). - MessageEmbed) + fields := lostVillagesMsg.ToMessageEmbedFields() + title := localizer.MustLocalize(&i18n.LocalizeConfig{ + MessageID: "cron.lostVillages.title", + DefaultMessage: message.FallbackMsg("cron.lostVillages.title", + "Lost villages"), + }) + timestamp := formatDateOfConquest(time.Now()) + for i := 0; i < len(fields); i += discord.EmbedLimitField { + end := i + discord.EmbedLimitField + + if end > len(fields) { + end = len(fields) + } + + h.discord.SendEmbed(group.LostVillagesChannelID, + discord. + NewEmbed(). + SetTitle(title). + SetColor(colorLostVillage). + SetFields(fields[i:end]). + SetTimestamp(timestamp). + MessageEmbed) + } } } diff --git a/go.mod b/go.mod index c3f0bbd..35b8b02 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 github.com/segmentio/encoding v0.1.14 // indirect github.com/tribalwarshelp/golang-sdk v0.0.0-20200721095058-9ee3513a54a9 - github.com/tribalwarshelp/shared v0.0.0-20200721094728-9ea33a732990 + github.com/tribalwarshelp/shared v0.0.0-20200721124533-776cbb36074b golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 // indirect golang.org/x/text v0.3.2 ) diff --git a/go.sum b/go.sum index c180300..e4f502e 100644 --- a/go.sum +++ b/go.sum @@ -109,6 +109,8 @@ github.com/tribalwarshelp/golang-sdk v0.0.0-20200721095058-9ee3513a54a9 h1:y4fY0 github.com/tribalwarshelp/golang-sdk v0.0.0-20200721095058-9ee3513a54a9/go.mod h1:wRoVfjxu4FozpiJmDknv5Zw4AOx/0IC+VttDaSTpBg8= github.com/tribalwarshelp/shared v0.0.0-20200721094728-9ea33a732990 h1:PwMCKm5Wvqq+tP3KvdqxPtxKtKZTaEONCBT5DvpbVrc= github.com/tribalwarshelp/shared v0.0.0-20200721094728-9ea33a732990/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= +github.com/tribalwarshelp/shared v0.0.0-20200721124533-776cbb36074b h1:8bgZG6Zi3ROqtvpeUOj3a19mtES88VjeNwkUF0FI+Vs= +github.com/tribalwarshelp/shared v0.0.0-20200721124533-776cbb36074b/go.mod h1:tf+2yTHasV6jAF3V2deZ9slNoCyBzC0fMdTjI7clf6Y= github.com/vmihailenco/bufpool v0.1.5/go.mod h1:fL9i/PRTuS7AELqAHwSU1Zf1c70xhkhGe/cD5ud9pJk= github.com/vmihailenco/bufpool v0.1.11 h1:gOq2WmBrq0i2yW5QJ16ykccQ4wH9UyEsgLm6czKAd94= github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ=