Keep track of internal player lists
parent
fa34fb2504
commit
02622f7a1b
|
@ -16,6 +16,7 @@ func connect(conn net.Conn, name string, cc *clientConn) *serverConn {
|
|||
particleSpawners: make(map[mt.ParticleSpawnerID]struct{}),
|
||||
sounds: make(map[mt.SoundID]struct{}),
|
||||
huds: make(map[mt.HUDID]struct{}),
|
||||
playerList: make(map[string]struct{}),
|
||||
}
|
||||
sc.log("-->", "connect")
|
||||
cc.srv = sc
|
||||
|
|
|
@ -35,6 +35,8 @@ type serverConn struct {
|
|||
sounds map[mt.SoundID]struct{}
|
||||
|
||||
huds map[mt.HUDID]struct{}
|
||||
|
||||
playerList map[string]struct{}
|
||||
}
|
||||
|
||||
func (sc *serverConn) client() *clientConn { return sc.clt }
|
||||
|
@ -374,6 +376,17 @@ func handleSrv(sc *serverConn) {
|
|||
} else if cmd.Type == mt.InitPlayers {
|
||||
cmd.Type = mt.AddPlayers
|
||||
}
|
||||
|
||||
if cmd.Type <= mt.AddPlayers {
|
||||
for _, player := range cmd.Players {
|
||||
sc.playerList[player] = struct{}{}
|
||||
}
|
||||
} else if cmd.Type == mt.RemovePlayers {
|
||||
for _, player := range cmd.Players {
|
||||
delete(sc.playerList, player)
|
||||
}
|
||||
}
|
||||
|
||||
sc.client().SendCmd(cmd)
|
||||
case *mt.ToCltSpawnParticle:
|
||||
prependTexture(sc.name, &cmd.Texture)
|
||||
|
|
Loading…
Reference in New Issue