This repository has been archived on 2022-10-02. You can view files and clone it, but cannot push or open issues or pull requests.
dcbot-old/cron/message.go

95 lines
3.2 KiB
Go

package cron
import (
"github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/tribalwarshelp/shared/tw/twmodel"
"github.com/tribalwarshelp/shared/tw/twurlbuilder"
"github.com/tribalwarshelp/dcbot/discord"
"github.com/tribalwarshelp/dcbot/message"
"github.com/tribalwarshelp/dcbot/util/twutil"
)
type messageType string
const (
messageTypeConquer messageType = "conquer"
messageTypeLost messageType = "lost"
colorLostVillages = 0xff0000
colorConqueredVillages = 0x00ff00
)
type checkEnnoblementsMsg struct {
t messageType
server string
village string
villageURL string
oldOwnerName string
oldOwnerURL string
oldOwnerTribeURL string
oldOwnerTribeTag string
newOwnerURL string
newOwnerName string
newOwnerTribeURL string
newOwnerTribeTag string
localizer *i18n.Localizer
}
type newMessageConfig struct {
t messageType
host string
server string
ennoblement *twmodel.Ennoblement
localizer *i18n.Localizer
}
func newMessage(cfg newMessageConfig) checkEnnoblementsMsg {
data := checkEnnoblementsMsg{
t: cfg.t,
server: cfg.server,
village: "-",
oldOwnerName: "-",
oldOwnerTribeTag: "-",
newOwnerName: "-",
newOwnerTribeTag: "-",
localizer: cfg.localizer,
}
if !twutil.IsVillageNil(cfg.ennoblement.Village) {
data.village = cfg.ennoblement.Village.FullName()
data.villageURL = twurlbuilder.BuildVillageURL(cfg.server, cfg.host, cfg.ennoblement.Village.ID)
}
if !twutil.IsPlayerNil(cfg.ennoblement.OldOwner) {
data.oldOwnerName = cfg.ennoblement.OldOwner.Name
data.oldOwnerURL = twurlbuilder.BuildPlayerURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.ID)
}
if !twutil.IsPlayerTribeNil(cfg.ennoblement.OldOwner) {
data.oldOwnerTribeTag = cfg.ennoblement.OldOwner.Tribe.Tag
data.oldOwnerTribeURL = twurlbuilder.BuildTribeURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.Tribe.ID)
}
if !twutil.IsPlayerNil(cfg.ennoblement.NewOwner) {
data.newOwnerName = cfg.ennoblement.NewOwner.Name
data.newOwnerURL = twurlbuilder.BuildPlayerURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.ID)
}
if !twutil.IsPlayerTribeNil(cfg.ennoblement.NewOwner) {
data.newOwnerTribeTag = cfg.ennoblement.NewOwner.Tribe.Tag
data.newOwnerTribeURL = twurlbuilder.BuildTribeURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.Tribe.ID)
}
return data
}
func (msg checkEnnoblementsMsg) String() string {
return msg.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.CronCheckEnnoblementsMsgLine,
DefaultMessage: message.FallbackMsg(message.CronCheckEnnoblementsMsgLine,
"{{.NewOwner}} ({{.NewOwnerTribe}}) has conquered {{.Village}} (Old owner: {{.OldOwner}} ({{.OldOwnerTribe}}))"),
TemplateData: map[string]interface{}{
"NewOwner": discord.BuildLink(msg.newOwnerName, msg.newOwnerURL),
"NewOwnerTribe": discord.BuildLink(msg.newOwnerTribeTag, msg.newOwnerTribeURL),
"Village": discord.BuildLink(msg.village, msg.villageURL),
"OldOwner": discord.BuildLink(msg.oldOwnerName, msg.oldOwnerURL),
"OldOwnerTribe": discord.BuildLink(msg.oldOwnerTribeTag, msg.oldOwnerTribeURL),
},
}) + "\n"
}