2020-06-05 17:58:15 +00:00
|
|
|
package cron
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
2020-07-19 14:21:32 +00:00
|
|
|
"github.com/nicksnyder/go-i18n/v2/i18n"
|
|
|
|
"github.com/tribalwarshelp/dcbot/message"
|
2020-06-05 17:58:15 +00:00
|
|
|
"github.com/tribalwarshelp/dcbot/utils"
|
|
|
|
shared_models "github.com/tribalwarshelp/shared/models"
|
|
|
|
)
|
|
|
|
|
2020-06-27 16:48:33 +00:00
|
|
|
type messageType string
|
|
|
|
|
2020-06-06 12:28:45 +00:00
|
|
|
const (
|
2020-06-27 16:48:33 +00:00
|
|
|
messageTypeConquer messageType = "conquer"
|
|
|
|
messageTypeLost messageType = "lost"
|
|
|
|
colorLostVillage = 0xff0000
|
|
|
|
colorConqueredVillage = 0x00ff00
|
2020-06-06 12:28:45 +00:00
|
|
|
)
|
|
|
|
|
2020-07-19 14:21:32 +00:00
|
|
|
type checkEnnoblementsMsg struct {
|
2020-06-27 16:48:33 +00:00
|
|
|
t messageType
|
|
|
|
server string
|
2020-06-05 17:58:15 +00:00
|
|
|
date string
|
|
|
|
village string
|
2020-06-06 12:28:45 +00:00
|
|
|
villageURL string
|
2020-06-05 17:58:15 +00:00
|
|
|
oldOwnerName string
|
2020-06-06 12:28:45 +00:00
|
|
|
oldOwnerURL string
|
|
|
|
oldOwnerTribeURL string
|
2020-06-05 17:58:15 +00:00
|
|
|
oldOwnerTribeTag string
|
2020-06-06 12:28:45 +00:00
|
|
|
newOwnerURL string
|
2020-06-05 17:58:15 +00:00
|
|
|
newOwnerName string
|
2020-06-06 12:28:45 +00:00
|
|
|
newOwnerTribeURL string
|
2020-06-05 17:58:15 +00:00
|
|
|
newOwnerTribeTag string
|
2020-07-19 14:21:32 +00:00
|
|
|
localizer *i18n.Localizer
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
|
|
|
|
2020-06-27 16:48:33 +00:00
|
|
|
type newMessageConfig struct {
|
|
|
|
t messageType
|
2020-06-06 12:28:45 +00:00
|
|
|
host string
|
2020-06-27 16:48:33 +00:00
|
|
|
server string
|
2020-06-21 12:12:22 +00:00
|
|
|
ennoblement *shared_models.LiveEnnoblement
|
2020-07-19 14:21:32 +00:00
|
|
|
localizer *i18n.Localizer
|
2020-06-06 12:28:45 +00:00
|
|
|
}
|
|
|
|
|
2020-07-19 14:21:32 +00:00
|
|
|
func newMessage(cfg newMessageConfig) checkEnnoblementsMsg {
|
|
|
|
data := checkEnnoblementsMsg{
|
2020-06-27 16:48:33 +00:00
|
|
|
t: cfg.t,
|
2020-06-12 16:28:07 +00:00
|
|
|
date: formatDateOfConquest(cfg.ennoblement.EnnobledAt),
|
2020-06-27 16:48:33 +00:00
|
|
|
server: cfg.server,
|
2020-06-05 17:58:15 +00:00
|
|
|
village: "-",
|
|
|
|
oldOwnerName: "-",
|
|
|
|
oldOwnerTribeTag: "-",
|
|
|
|
newOwnerName: "-",
|
|
|
|
newOwnerTribeTag: "-",
|
2020-07-19 14:21:32 +00:00
|
|
|
localizer: cfg.localizer,
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
2020-06-06 12:28:45 +00:00
|
|
|
if !isVillageNil(cfg.ennoblement.Village) {
|
2020-06-07 15:49:33 +00:00
|
|
|
data.village = fmt.Sprintf("%s (%d|%d) %s",
|
2020-06-06 12:28:45 +00:00
|
|
|
cfg.ennoblement.Village.Name,
|
|
|
|
cfg.ennoblement.Village.X,
|
2020-06-07 15:49:33 +00:00
|
|
|
cfg.ennoblement.Village.Y,
|
|
|
|
cfg.ennoblement.Village.Continent())
|
2020-06-27 16:48:33 +00:00
|
|
|
data.villageURL = utils.FormatVillageURL(cfg.server, cfg.host, cfg.ennoblement.Village.ID)
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
2020-06-06 12:28:45 +00:00
|
|
|
if !isPlayerNil(cfg.ennoblement.OldOwner) {
|
|
|
|
data.oldOwnerName = cfg.ennoblement.OldOwner.Name
|
2020-06-27 16:48:33 +00:00
|
|
|
data.oldOwnerURL = utils.FormatPlayerURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.ID)
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
2020-06-06 12:28:45 +00:00
|
|
|
if !isPlayerTribeNil(cfg.ennoblement.OldOwner) {
|
|
|
|
data.oldOwnerTribeTag = cfg.ennoblement.OldOwner.Tribe.Tag
|
2020-06-27 16:48:33 +00:00
|
|
|
data.oldOwnerTribeURL = utils.FormatTribeURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.Tribe.ID)
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
2020-06-06 12:28:45 +00:00
|
|
|
if !isPlayerNil(cfg.ennoblement.NewOwner) {
|
|
|
|
data.newOwnerName = cfg.ennoblement.NewOwner.Name
|
2020-06-27 16:48:33 +00:00
|
|
|
data.newOwnerURL = utils.FormatPlayerURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.ID)
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
2020-06-06 12:28:45 +00:00
|
|
|
if !isPlayerTribeNil(cfg.ennoblement.NewOwner) {
|
|
|
|
data.newOwnerTribeTag = cfg.ennoblement.NewOwner.Tribe.Tag
|
2020-06-27 16:48:33 +00:00
|
|
|
data.newOwnerTribeURL = utils.FormatTribeURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.Tribe.ID)
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|
|
|
|
|
2020-06-27 16:48:33 +00:00
|
|
|
return data
|
2020-06-06 12:28:45 +00:00
|
|
|
}
|
|
|
|
|
2020-07-19 14:21:32 +00:00
|
|
|
func (msg checkEnnoblementsMsg) String() string {
|
|
|
|
return msg.localizer.MustLocalize(&i18n.LocalizeConfig{
|
|
|
|
MessageID: "cron.checkEnnoblements.msgLine",
|
|
|
|
DefaultMessage: message.FallbackMsg("cron.checkEnnoblements.msgLine",
|
|
|
|
"{{.NewOwner}} ({{.NewOwnerTribe}}) has conquered the village {{.Village}} (Old owner: {{.OldOwner}} ({{.OldOwnerTribe}}))"),
|
|
|
|
TemplateData: map[string]interface{}{
|
|
|
|
"NewOwner": formatMsgLink(msg.newOwnerName, msg.newOwnerURL),
|
|
|
|
"NewOwnerTribe": formatMsgLink(msg.newOwnerTribeTag, msg.newOwnerTribeURL),
|
|
|
|
"Village": formatMsgLink(msg.village, msg.villageURL),
|
|
|
|
"OldOwner": formatMsgLink(msg.oldOwnerName, msg.oldOwnerURL),
|
|
|
|
"OldOwnerTribe": formatMsgLink(msg.oldOwnerTribeTag, msg.oldOwnerTribeURL),
|
|
|
|
},
|
|
|
|
}) + "\n"
|
2020-06-05 17:58:15 +00:00
|
|
|
}
|