@@ -50,6 +50,7 @@ handleCmd_lobby ["CREATE_ROOM", rName] =
5050
5151handleCmd_lobby [" JOIN_ROOM" , roomName, roomPassword] = do
5252 (_, irnc) <- ask
53+
5354 let ris = allRooms irnc
5455 cl <- thisClient
5556 let maybeRI = find (\ ri -> roomName == name (irnc `room` ri)) ris
@@ -61,7 +62,11 @@ handleCmd_lobby ["JOIN_ROOM", roomName, roomPassword] = do
6162 let owner = find isMaster jRoomClients
6263 let chans = map sendChan (cl : jRoomClients)
6364 let isBanned = host cl `elem` roomBansList jRoom
64- let hasTeamsInGame = (isJust $ gameInfo jRoom) && (or . map (\ t -> teamowner t == nick cl) . teamsAtStart . fromJust $ gameInfo jRoom)
65+ let clTeams =
66+ if (isJust $ gameInfo jRoom) then
67+ map teamname . filter (\ t -> teamowner t == nick cl) . teamsAtStart . fromJust $ gameInfo jRoom
68+ else
69+ []
6570 return $
6671 if isNothing maybeRI then
6772 [Warning $ loc " No such room" ]
@@ -88,7 +93,7 @@ handleCmd_lobby ["JOIN_ROOM", roomName, roomPassword] = do
8893 ++ answerTeams cl jRoom
8994 ++ watchRound cl jRoom chans
9095 ++ [AnswerClients [sendChan cl] [" CHAT" , " [greeting]" , greeting jRoom] | greeting jRoom /= " " ]
91- ++ if hasTeamsInGame then [" EM" , toEngineMsg $ ' G' `B.cons` nick cl] else []
96+ ++ map ( \ t -> AnswerClients chans [" EM" , toEngineMsg $ ' G' `B.cons` t]) clTeams
9297
9398 where
9499 sendStateFlags cl clients = AnswerClients [sendChan cl] . concat . intersperse [" " ] . filter (not . null ) . concat $
0 commit comments