From 0ee2f8f52d9a916d41cd0392b80f3b260fd8701e Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sun, 21 Jun 2020 13:26:20 +0200 Subject: [PATCH] tribe dominance should be calculated based on the number of player villages, a number of barbarian villages should include a number of bonus villages (server stats) --- cron/helpers.go | 12 ++++++++++++ cron/update_server_data_handler.go | 2 +- cron/update_server_stats_handler.go | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cron/helpers.go b/cron/helpers.go index fdb70f1..545c445 100644 --- a/cron/helpers.go +++ b/cron/helpers.go @@ -7,6 +7,8 @@ import ( "io" "io/ioutil" "net/http" + + "github.com/tribalwarshelp/shared/models" ) func uncompressAndGetCsvLines(r io.Reader) ([][]string, error) { @@ -43,3 +45,13 @@ func getXML(url string, decode interface{}) error { } return xml.Unmarshal(bytes, decode) } + +func countPlayerVillages(villages []*models.Village) int { + count := 0 + for _, village := range villages { + if village.PlayerID != 0 { + count++ + } + } + return count +} diff --git a/cron/update_server_data_handler.go b/cron/update_server_data_handler.go index 76d4b33..f704bb5 100644 --- a/cron/update_server_data_handler.go +++ b/cron/update_server_data_handler.go @@ -399,7 +399,7 @@ func (h *updateServerDataHandler) update() error { } numberOfVillages := len(villages) - tribes, err := h.getTribes(tod, numberOfVillages) + tribes, err := h.getTribes(tod, countPlayerVillages(villages)) if err != nil { return err } diff --git a/cron/update_server_stats_handler.go b/cron/update_server_stats_handler.go index a31337b..2414499 100644 --- a/cron/update_server_stats_handler.go +++ b/cron/update_server_stats_handler.go @@ -34,7 +34,7 @@ func (h *updateServerStatsHandler) prepare() (*models.ServerStats, error) { } tribes := activeTribes + inactiveTribes - barbarianVillages, err := h.db.Model(&models.Village{}).Where("player_id = 0 AND bonus = 0").Count() + barbarianVillages, err := h.db.Model(&models.Village{}).Where("player_id = 0").Count() if err != nil { return nil, errors.Wrap(err, "cannot count barbarian villages") }