refactor: server - rename num_tribes and num_players (#46)
ci/woodpecker/push/test Pipeline was successful Details
ci/woodpecker/tag/release Pipeline was successful Details
ci/woodpecker/tag/deployment Pipeline was successful Details
ci/woodpecker/push/govulncheck Pipeline was successful Details

Reviewed-on: #46
This commit is contained in:
Dawid Wysokiński 2024-05-06 04:50:24 +00:00
parent 1c1758ce7d
commit 4d6c1c8982
24 changed files with 192 additions and 150 deletions

View File

@ -583,8 +583,8 @@ components:
- key
- open
- url
- numPlayers
- numTribes
- numActivePlayers
- numActiveTribes
- numVillages
- numBarbarianVillages
- numBonusVillages
@ -599,12 +599,12 @@ components:
type: string
format: uri
example: https://en138.tribalwars.net
numPlayers:
numActivePlayers:
type: integer
playerDataSyncedAt:
type: string
format: date-time
numTribes:
numActiveTribes:
type: integer
tribeDataSyncedAt:
type: string

View File

@ -35,10 +35,10 @@ func (pub *PlayerWatermillPublisher) EventSynced(
for _, p := range payloads {
msg, err := pub.marshaler.Marshal(ctx, watermillmsg.PlayersSyncedEventPayload{
ServerKey: p.ServerKey(),
VersionCode: p.VersionCode(),
ServerURL: p.ServerURL(),
NumPlayers: p.NumPlayers(),
ServerKey: p.ServerKey(),
VersionCode: p.VersionCode(),
ServerURL: p.ServerURL(),
NumActivePlayers: p.NumActivePlayers(),
})
if err != nil {
return fmt.Errorf("%s: couldn't marshal PlayersSyncedEventPayload: %w", p.ServerKey(), err)

View File

@ -35,10 +35,10 @@ func (pub *TribeWatermillPublisher) EventSynced(
for _, p := range payloads {
msg, err := pub.marshaler.Marshal(ctx, watermillmsg.TribesSyncedEventPayload{
ServerKey: p.ServerKey(),
VersionCode: p.VersionCode(),
ServerURL: p.ServerURL(),
NumTribes: p.NumTribes(),
ServerKey: p.ServerKey(),
VersionCode: p.VersionCode(),
ServerURL: p.ServerURL(),
NumActiveTribes: p.NumActiveTribes(),
})
if err != nil {
return fmt.Errorf("%s: couldn't marshal TribesSyncedEventPayload: %w", p.ServerKey(), err)

View File

@ -126,16 +126,16 @@ func (a updateServerParamsApplier) apply(q *bun.UpdateQuery) *bun.UpdateQuery {
q = q.Set("building_info = ?", bunmodel.NewBuildingInfo(buildingInfo.V))
}
if numTribes := a.params.NumTribes(); numTribes.Valid {
q = q.Set("num_tribes = ?", numTribes.V)
if numActiveTribes := a.params.NumActiveTribes(); numActiveTribes.Valid {
q = q.Set("num_active_tribes = ?", numActiveTribes.V)
}
if tribeDataSyncedAt := a.params.TribeDataSyncedAt(); tribeDataSyncedAt.Valid {
q = q.Set("tribe_data_synced_at = ?", tribeDataSyncedAt.V)
}
if numPlayers := a.params.NumPlayers(); numPlayers.Valid {
q = q.Set("num_players = ?", numPlayers.V)
if numActivePlayers := a.params.NumActivePlayers(); numActivePlayers.Valid {
q = q.Set("num_active_players = ?", numActivePlayers.V)
}
if playerDataSyncedAt := a.params.PlayerDataSyncedAt(); playerDataSyncedAt.Valid {

View File

@ -494,7 +494,7 @@ func testServerRepository(t *testing.T, newRepos func(t *testing.T) repositories
V: domaintest.NewBuildingInfo(t),
Valid: true,
}))
require.NoError(t, updateParams.SetNumTribes(domain.NullInt{
require.NoError(t, updateParams.SetNumActiveTribes(domain.NullInt{
V: gofakeit.IntRange(0, math.MaxInt),
Valid: true,
}))
@ -502,7 +502,7 @@ func testServerRepository(t *testing.T, newRepos func(t *testing.T) repositories
V: time.Now(),
Valid: true,
}))
require.NoError(t, updateParams.SetNumPlayers(domain.NullInt{
require.NoError(t, updateParams.SetNumActivePlayers(domain.NullInt{
V: gofakeit.IntRange(0, math.MaxInt),
Valid: true,
}))
@ -556,14 +556,14 @@ func testServerRepository(t *testing.T, newRepos func(t *testing.T) repositories
assert.Equal(t, updateParams.Config().V, serverAfterUpdate.Config())
assert.Equal(t, updateParams.UnitInfo().V, serverAfterUpdate.UnitInfo())
assert.Equal(t, updateParams.BuildingInfo().V, serverAfterUpdate.BuildingInfo())
assert.Equal(t, updateParams.NumTribes().V, serverAfterUpdate.NumTribes())
assert.Equal(t, updateParams.NumActiveTribes().V, serverAfterUpdate.NumActiveTribes())
assert.WithinDuration(
t,
updateParams.TribeDataSyncedAt().V,
serverAfterUpdate.TribeDataSyncedAt(),
time.Minute,
)
assert.Equal(t, updateParams.NumPlayers().V, serverAfterUpdate.NumPlayers())
assert.Equal(t, updateParams.NumActivePlayers().V, serverAfterUpdate.NumActivePlayers())
assert.WithinDuration(
t,
updateParams.PlayerDataSyncedAt().V,

View File

@ -5,8 +5,8 @@
url: https://de188.die-staemme.de
open: true
special: false
num_players: 180
num_tribes: 76
num_active_players: 180
num_active_tribes: 76
num_villages: 16180
num_player_villages: 15000
num_barbarian_villages: 1180
@ -24,8 +24,8 @@
url: https://en113.tribalwars.net
open: false
special: false
num_players: 251
num_tribes: 57
num_active_players: 251
num_active_tribes: 57
num_villages: 41700
num_player_villages: 41000
num_barbarian_villages: 700
@ -43,8 +43,8 @@
url: https://it70.tribals.it
open: true
special: false
num_players: 1883
num_tribes: 101
num_active_players: 1883
num_active_tribes: 101
num_villages: 4882
num_player_villages: 3200
num_barbarian_villages: 1682
@ -62,8 +62,8 @@
url: https://pl169.plemiona.pl
open: true
special: false
num_players: 2001
num_tribes: 214
num_active_players: 2001
num_active_tribes: 214
num_villages: 49074
num_player_villages: 48500
num_barbarian_villages: 1574

View File

@ -183,8 +183,8 @@ func (svc *ServerService) UpdateNumTribes(ctx context.Context, payload domain.Tr
key := payload.ServerKey()
var updateParams domain.UpdateServerParams
if err := updateParams.SetNumTribes(domain.NullInt{
V: payload.NumTribes(),
if err := updateParams.SetNumActiveTribes(domain.NullInt{
V: payload.NumActiveTribes(),
Valid: true,
}); err != nil {
return fmt.Errorf("%s: %w", key, err)
@ -203,8 +203,8 @@ func (svc *ServerService) UpdateNumPlayers(ctx context.Context, payload domain.P
key := payload.ServerKey()
var updateParams domain.UpdateServerParams
if err := updateParams.SetNumPlayers(domain.NullInt{
V: payload.NumPlayers(),
if err := updateParams.SetNumActivePlayers(domain.NullInt{
V: payload.NumActivePlayers(),
Valid: true,
}); err != nil {
return fmt.Errorf("%s: %w", key, err)

View File

@ -16,8 +16,8 @@ type Server struct {
URL string `bun:"url,nullzero"`
Open bool `bun:"open"`
Special bool `bun:"special"`
NumPlayers int `bun:"num_players"`
NumTribes int `bun:"num_tribes"`
NumActivePlayers int `bun:"num_active_players"`
NumActiveTribes int `bun:"num_active_tribes"`
NumVillages int `bun:"num_villages"`
NumPlayerVillages int `bun:"num_player_villages"`
NumBarbarianVillages int `bun:"num_barbarian_villages"`
@ -57,8 +57,8 @@ func (s Server) ToDomain() (domain.Server, error) {
s.URL,
s.Open,
s.Special,
s.NumPlayers,
s.NumTribes,
s.NumActivePlayers,
s.NumActiveTribes,
s.NumVillages,
s.NumPlayerVillages,
s.NumBarbarianVillages,

View File

@ -0,0 +1,42 @@
package migrations
import (
"context"
"database/sql"
"fmt"
"github.com/uptrace/bun"
)
func init() {
migrations.MustRegister(func(ctx context.Context, db *bun.DB) error {
return db.RunInTx(ctx, &sql.TxOptions{}, func(ctx context.Context, tx bun.Tx) error {
for oldColumn, newColumn := range getColumnsToRename20240506043013() {
_, err := tx.ExecContext(ctx, "ALTER TABLE servers RENAME COLUMN ? TO ?", bun.Safe(oldColumn), bun.Safe(newColumn))
if err != nil {
return fmt.Errorf("%s: %w", oldColumn, err)
}
}
return nil
})
}, func(ctx context.Context, db *bun.DB) error {
return db.RunInTx(ctx, &sql.TxOptions{}, func(ctx context.Context, tx bun.Tx) error {
for oldColumn, newColumn := range getColumnsToRename20240506043013() {
_, err := tx.ExecContext(ctx, "ALTER TABLE servers RENAME COLUMN ? TO ?", bun.Safe(newColumn), bun.Safe(oldColumn))
if err != nil {
return fmt.Errorf("%s: %w", newColumn, err)
}
}
return nil
})
})
}
func getColumnsToRename20240506043013() map[string]string {
return map[string]string{
"num_players": "num_active_players",
"num_tribes": "num_active_tribes",
}
}

View File

@ -109,10 +109,10 @@ func (p ServerSyncedEventPayload) VersionCode() string {
}
type TribesSyncedEventPayload struct {
serverKey string
serverURL *url.URL
versionCode string
numTribes int
serverKey string
serverURL *url.URL
versionCode string
numActiveTribes int
}
const tribesSyncedEventPayloadModelName = "TribesSyncedEventPayload"
@ -121,7 +121,7 @@ func NewTribesSyncedEventPayload(
serverKey string,
serverURL *url.URL,
versionCode string,
numTribes int,
numActiveTribes int,
) (TribesSyncedEventPayload, error) {
if serverKey == "" {
return TribesSyncedEventPayload{}, ValidationError{
@ -147,19 +147,19 @@ func NewTribesSyncedEventPayload(
}
}
if err := validateIntInRange(numTribes, 0, math.MaxInt); err != nil {
if err := validateIntInRange(numActiveTribes, 0, math.MaxInt); err != nil {
return TribesSyncedEventPayload{}, ValidationError{
Model: tribesSyncedEventPayloadModelName,
Field: "numTribes",
Field: "numActiveTribes",
Err: err,
}
}
return TribesSyncedEventPayload{
serverKey: serverKey,
serverURL: serverURL,
versionCode: versionCode,
numTribes: numTribes,
serverKey: serverKey,
serverURL: serverURL,
versionCode: versionCode,
numActiveTribes: numActiveTribes,
}, nil
}
@ -175,15 +175,15 @@ func (p TribesSyncedEventPayload) VersionCode() string {
return p.versionCode
}
func (p TribesSyncedEventPayload) NumTribes() int {
return p.numTribes
func (p TribesSyncedEventPayload) NumActiveTribes() int {
return p.numActiveTribes
}
type PlayersSyncedEventPayload struct {
serverKey string
serverURL *url.URL
versionCode string
numPlayers int
serverKey string
serverURL *url.URL
versionCode string
numActivePlayers int
}
const playersSyncedEventPayloadModelName = "PlayersSyncedEventPayload"
@ -192,7 +192,7 @@ func NewPlayersSyncedEventPayload(
serverKey string,
serverURL *url.URL,
versionCode string,
numPlayers int,
numActivePlayers int,
) (PlayersSyncedEventPayload, error) {
if serverKey == "" {
return PlayersSyncedEventPayload{}, ValidationError{
@ -218,19 +218,19 @@ func NewPlayersSyncedEventPayload(
}
}
if err := validateIntInRange(numPlayers, 0, math.MaxInt); err != nil {
if err := validateIntInRange(numActivePlayers, 0, math.MaxInt); err != nil {
return PlayersSyncedEventPayload{}, ValidationError{
Model: playersSyncedEventPayloadModelName,
Field: "numPlayers",
Field: "numActivePlayers",
Err: err,
}
}
return PlayersSyncedEventPayload{
serverKey: serverKey,
serverURL: serverURL,
versionCode: versionCode,
numPlayers: numPlayers,
serverKey: serverKey,
serverURL: serverURL,
versionCode: versionCode,
numActivePlayers: numActivePlayers,
}, nil
}
@ -246,8 +246,8 @@ func (p PlayersSyncedEventPayload) VersionCode() string {
return p.versionCode
}
func (p PlayersSyncedEventPayload) NumPlayers() int {
return p.numPlayers
func (p PlayersSyncedEventPayload) NumActivePlayers() int {
return p.numActivePlayers
}
type VillagesSyncedEventPayload struct {

View File

@ -58,38 +58,38 @@ func TestNewTribesSyncedEventPayload(t *testing.T) {
t.Parallel()
server := domaintest.NewServer(t)
numTribes := gofakeit.IntRange(0, math.MaxInt)
numActiveTribes := gofakeit.IntRange(0, math.MaxInt)
payload, err := domain.NewTribesSyncedEventPayload(
server.Key(),
server.URL(),
server.VersionCode(),
numTribes,
numActiveTribes,
)
require.NoError(t, err)
assert.Equal(t, server.Key(), payload.ServerKey())
assert.Equal(t, server.URL(), payload.ServerURL())
assert.Equal(t, server.VersionCode(), payload.VersionCode())
assert.Equal(t, numTribes, payload.NumTribes())
assert.Equal(t, numActiveTribes, payload.NumActiveTribes())
}
func TestNewPlayersSyncedEventPayload(t *testing.T) {
t.Parallel()
server := domaintest.NewServer(t)
numPlayers := gofakeit.IntRange(0, math.MaxInt)
numActivePlayers := gofakeit.IntRange(0, math.MaxInt)
payload, err := domain.NewPlayersSyncedEventPayload(
server.Key(),
server.URL(),
server.VersionCode(),
numPlayers,
numActivePlayers,
)
require.NoError(t, err)
assert.Equal(t, server.Key(), payload.ServerKey())
assert.Equal(t, server.URL(), payload.ServerURL())
assert.Equal(t, server.VersionCode(), payload.VersionCode())
assert.Equal(t, numPlayers, payload.NumPlayers())
assert.Equal(t, numActivePlayers, payload.NumActivePlayers())
}
func TestNewVillagesSyncedEventPayload(t *testing.T) {

View File

@ -14,8 +14,8 @@ type Server struct {
url *url.URL
open bool
special bool
numPlayers int
numTribes int
numActivePlayers int
numActiveTribes int
numVillages int
numPlayerVillages int
numBarbarianVillages int
@ -44,8 +44,8 @@ func UnmarshalServerFromDatabase(
rawURL string,
open bool,
special bool,
numPlayers int,
numTribes int,
numActivePlayers int,
numActiveTribes int,
numVillages int,
numPlayerVillages int,
numBarbarianVillages int,
@ -91,8 +91,8 @@ func UnmarshalServerFromDatabase(
url: u,
open: open,
special: special,
numPlayers: numPlayers,
numTribes: numTribes,
numActivePlayers: numActivePlayers,
numActiveTribes: numActiveTribes,
numVillages: numVillages,
numPlayerVillages: numPlayerVillages,
numBarbarianVillages: numBarbarianVillages,
@ -131,12 +131,12 @@ func (s Server) Special() bool {
return s.special
}
func (s Server) NumPlayers() int {
return s.numPlayers
func (s Server) NumActivePlayers() int {
return s.numActivePlayers
}
func (s Server) NumTribes() int {
return s.numTribes
func (s Server) NumActiveTribes() int {
return s.numActiveTribes
}
func (s Server) NumVillages() int {
@ -377,9 +377,9 @@ type UpdateServerParams struct {
config NullServerConfig
buildingInfo NullBuildingInfo
unitInfo NullUnitInfo
numTribes NullInt
numActiveTribes NullInt
tribeDataSyncedAt NullTime
numPlayers NullInt
numActivePlayers NullInt
playerDataSyncedAt NullTime
numVillages NullInt
numPlayerVillages NullInt
@ -420,22 +420,22 @@ func (params *UpdateServerParams) SetUnitInfo(unitInfo NullUnitInfo) error {
return nil
}
func (params *UpdateServerParams) NumTribes() NullInt {
return params.numTribes
func (params *UpdateServerParams) NumActiveTribes() NullInt {
return params.numActiveTribes
}
func (params *UpdateServerParams) SetNumTribes(numTribes NullInt) error {
if numTribes.Valid {
if err := validateIntInRange(numTribes.V, 0, math.MaxInt); err != nil {
func (params *UpdateServerParams) SetNumActiveTribes(num NullInt) error {
if num.Valid {
if err := validateIntInRange(num.V, 0, math.MaxInt); err != nil {
return ValidationError{
Model: updateServerParamsModelName,
Field: "numTribes",
Field: "numActiveTribes",
Err: err,
}
}
}
params.numTribes = numTribes
params.numActiveTribes = num
return nil
}
@ -449,22 +449,22 @@ func (params *UpdateServerParams) SetTribeDataSyncedAt(tribeDataSyncedAt NullTim
return nil
}
func (params *UpdateServerParams) NumPlayers() NullInt {
return params.numPlayers
func (params *UpdateServerParams) NumActivePlayers() NullInt {
return params.numActivePlayers
}
func (params *UpdateServerParams) SetNumPlayers(numPlayers NullInt) error {
if numPlayers.Valid {
if err := validateIntInRange(numPlayers.V, 0, math.MaxInt); err != nil {
func (params *UpdateServerParams) SetNumActivePlayers(num NullInt) error {
if num.Valid {
if err := validateIntInRange(num.V, 0, math.MaxInt); err != nil {
return ValidationError{
Model: updateServerParamsModelName,
Field: "numPlayers",
Field: "numActivePlayers",
Err: err,
}
}
}
params.numPlayers = numPlayers
params.numActivePlayers = num
return nil
}
@ -599,9 +599,9 @@ func (params *UpdateServerParams) IsZero() bool {
return !params.config.Valid &&
!params.buildingInfo.Valid &&
!params.unitInfo.Valid &&
!params.numTribes.Valid &&
!params.numActiveTribes.Valid &&
!params.tribeDataSyncedAt.Valid &&
!params.numPlayers.Valid &&
!params.numActivePlayers.Valid &&
!params.playerDataSyncedAt.Valid &&
!params.numVillages.Valid &&
!params.numPlayerVillages.Valid &&

View File

@ -161,11 +161,11 @@ func TestNewCreateServerParams(t *testing.T) {
}
}
func TestUpdateServerParams_SetNumTribes(t *testing.T) {
func TestUpdateServerParams_SetNumActiveTribes(t *testing.T) {
t.Parallel()
type args struct {
numTribes domain.NullInt
numActiveTribes domain.NullInt
}
tests := []struct {
@ -176,7 +176,7 @@ func TestUpdateServerParams_SetNumTribes(t *testing.T) {
{
name: "OK",
args: args{
numTribes: domain.NullInt{
numActiveTribes: domain.NullInt{
V: gofakeit.IntRange(0, math.MaxInt),
Valid: true,
},
@ -185,22 +185,22 @@ func TestUpdateServerParams_SetNumTribes(t *testing.T) {
{
name: "OK: null value",
args: args{
numTribes: domain.NullInt{
numActiveTribes: domain.NullInt{
Valid: false,
},
},
},
{
name: "ERR: numTribes < 0",
name: "ERR: numActiveTribes < 0",
args: args{
numTribes: domain.NullInt{
numActiveTribes: domain.NullInt{
V: -1,
Valid: true,
},
},
expectedErr: domain.ValidationError{
Model: "UpdateServerParams",
Field: "numTribes",
Field: "numActiveTribes",
Err: domain.MinGreaterEqualError{
Min: 0,
Current: -1,
@ -215,20 +215,20 @@ func TestUpdateServerParams_SetNumTribes(t *testing.T) {
var params domain.UpdateServerParams
require.ErrorIs(t, params.SetNumTribes(tt.args.numTribes), tt.expectedErr)
require.ErrorIs(t, params.SetNumActiveTribes(tt.args.numActiveTribes), tt.expectedErr)
if tt.expectedErr != nil {
return
}
assert.Equal(t, tt.args.numTribes, params.NumTribes())
assert.Equal(t, tt.args.numActiveTribes, params.NumActiveTribes())
})
}
}
func TestUpdateServerParams_SetNumPlayers(t *testing.T) {
func TestUpdateServerParams_SetNumActivePlayers(t *testing.T) {
t.Parallel()
type args struct {
numPlayers domain.NullInt
numActivePlayers domain.NullInt
}
tests := []struct {
@ -239,7 +239,7 @@ func TestUpdateServerParams_SetNumPlayers(t *testing.T) {
{
name: "OK",
args: args{
numPlayers: domain.NullInt{
numActivePlayers: domain.NullInt{
V: gofakeit.IntRange(0, math.MaxInt),
Valid: true,
},
@ -248,22 +248,22 @@ func TestUpdateServerParams_SetNumPlayers(t *testing.T) {
{
name: "OK: null value",
args: args{
numPlayers: domain.NullInt{
numActivePlayers: domain.NullInt{
Valid: false,
},
},
},
{
name: "ERR: numPlayers < 0",
name: "ERR: numActivePlayers < 0",
args: args{
numPlayers: domain.NullInt{
numActivePlayers: domain.NullInt{
V: -1,
Valid: true,
},
},
expectedErr: domain.ValidationError{
Model: "UpdateServerParams",
Field: "numPlayers",
Field: "numActivePlayers",
Err: domain.MinGreaterEqualError{
Min: 0,
Current: -1,
@ -278,11 +278,11 @@ func TestUpdateServerParams_SetNumPlayers(t *testing.T) {
var params domain.UpdateServerParams
require.ErrorIs(t, params.SetNumPlayers(tt.args.numPlayers), tt.expectedErr)
require.ErrorIs(t, params.SetNumActivePlayers(tt.args.numActivePlayers), tt.expectedErr)
if tt.expectedErr != nil {
return
}
assert.Equal(t, tt.args.numPlayers, params.NumPlayers())
assert.Equal(t, tt.args.numActivePlayers, params.NumActivePlayers())
})
}
}

View File

@ -248,8 +248,8 @@ func TestDataSync(t *testing.T) {
assert.Equal(collect, expected["URL"], actual.URL().String(), msg)
assert.Equal(collect, expected["Open"], actual.Open(), msg)
assert.Equal(collect, expected["VersionCode"], actual.VersionCode(), msg)
assert.EqualValues(collect, expected["NumPlayers"], actual.NumPlayers(), msg)
assert.EqualValues(collect, expected["NumTribes"], actual.NumTribes(), msg)
assert.EqualValues(collect, expected["NumActivePlayers"], actual.NumActivePlayers(), msg)
assert.EqualValues(collect, expected["NumActiveTribes"], actual.NumActiveTribes(), msg)
assert.EqualValues(collect, expected["NumVillages"], actual.NumVillages(), msg)
assert.EqualValues(collect, expected["NumPlayerVillages"], actual.NumPlayerVillages(), msg)
assert.EqualValues(collect, expected["NumBonusVillages"], actual.NumBonusVillages(), msg)

View File

@ -155,7 +155,7 @@ func (c *ServerWatermillConsumer) updateNumTribes(msg *message.Message) error {
rawPayload.ServerKey,
rawPayload.ServerURL,
rawPayload.VersionCode,
rawPayload.NumTribes,
rawPayload.NumActiveTribes,
)
if err != nil {
c.logger.Error("couldn't construct domain.TribesSyncedEventPayload", err, watermill.LogFields{
@ -181,7 +181,7 @@ func (c *ServerWatermillConsumer) updateNumPlayers(msg *message.Message) error {
rawPayload.ServerKey,
rawPayload.ServerURL,
rawPayload.VersionCode,
rawPayload.NumPlayers,
rawPayload.NumActivePlayers,
)
if err != nil {
c.logger.Error("couldn't construct domain.PlayersSyncedEventPayload", err, watermill.LogFields{

View File

@ -11,8 +11,8 @@ func NewServer(s domain.Server) Server {
NumBarbarianVillages: s.NumBarbarianVillages(),
NumBonusVillages: s.NumBonusVillages(),
NumPlayerVillages: s.NumPlayerVillages(),
NumPlayers: s.NumPlayers(),
NumTribes: s.NumTribes(),
NumActivePlayers: s.NumActivePlayers(),
NumActiveTribes: s.NumActiveTribes(),
NumVillages: s.NumVillages(),
Open: s.Open(),
Url: s.URL().String(),

View File

@ -5,8 +5,8 @@
url: https://de180.die-staemme.de
open: false
special: false
num_players: 313
num_tribes: 93
num_active_players: 313
num_active_tribes: 93
num_villages: 47802
num_player_villages: 47759
num_barbarian_villages: 44
@ -24,8 +24,8 @@
url: https://de188.die-staemme.de
open: true
special: false
num_players: 180
num_tribes: 76
num_active_players: 180
num_active_tribes: 76
num_villages: 16180
num_player_villages: 15000
num_barbarian_villages: 1180
@ -43,8 +43,8 @@
url: https://en113.tribalwars.net
open: false
special: false
num_players: 251
num_tribes: 57
num_active_players: 251
num_active_tribes: 57
num_villages: 41700
num_player_villages: 41000
num_barbarian_villages: 700
@ -62,8 +62,8 @@
url: https://it70.tribals.it
open: true
special: false
num_players: 1883
num_tribes: 101
num_active_players: 1883
num_active_tribes: 101
num_villages: 4882
num_player_villages: 3200
num_barbarian_villages: 1682
@ -81,8 +81,8 @@
url: https://pl169.plemiona.pl
open: true
special: false
num_players: 2001
num_tribes: 214
num_active_players: 2001
num_active_tribes: 214
num_villages: 49074
num_player_villages: 48500
num_barbarian_villages: 1574

View File

@ -4,8 +4,8 @@
url: https://pl181.plemiona.pl/
open: false
special: false
num_players: 144
num_tribes: 26
num_active_players: 144
num_active_tribes: 26
num_villages: 59581
num_player_villages: 58558
num_barbarian_villages: 1023
@ -16,8 +16,8 @@
url: https://pl182.plemiona.pl/
open: true
special: false
num_players: 144
num_tribes: 26
num_active_players: 144
num_active_tribes: 26
num_villages: 39702
num_player_villages: 39697
num_barbarian_villages: 5
@ -28,8 +28,8 @@
url: https://pl185.plemiona.pl/
open: false
special: false
num_players: 458
num_tribes: 88
num_active_players: 458
num_active_tribes: 88
num_villages: 84069
num_player_villages: 83057
num_barbarian_villages: 1012

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,8 +5,8 @@
url: https://us63.tribalwars.us
open: true
special: false
num_players: 1438
num_tribes: 125
num_active_players: 1438
num_active_tribes: 125
num_villages: 10048
num_player_villages: 5386
num_barbarian_villages: 4662

View File

@ -5,8 +5,8 @@
url: https://pl169.plemiona.pl
open: true
special: false
num_players: 2001
num_tribes: 214
num_active_players: 2001
num_active_tribes: 214
num_villages: 49074
num_player_villages: 48500
num_barbarian_villages: 1574

View File

@ -3,8 +3,8 @@ package watermillmsg
import "net/url"
type PlayersSyncedEventPayload struct {
ServerKey string `json:"serverKey"`
ServerURL *url.URL `json:"serverUrl"`
VersionCode string `json:"versionCode"`
NumPlayers int `json:"numPlayers"`
ServerKey string `json:"serverKey"`
ServerURL *url.URL `json:"serverUrl"`
VersionCode string `json:"versionCode"`
NumActivePlayers int `json:"numActivePlayers"`
}

View File

@ -3,8 +3,8 @@ package watermillmsg
import "net/url"
type TribesSyncedEventPayload struct {
ServerKey string `json:"serverKey"`
ServerURL *url.URL `json:"serverUrl"`
VersionCode string `json:"versionCode"`
NumTribes int `json:"numTribes"`
ServerKey string `json:"serverKey"`
ServerURL *url.URL `json:"serverUrl"`
VersionCode string `json:"versionCode"`
NumActiveTribes int `json:"numActiveTribes"`
}