20 | AnswerThisRoom [String] |
20 | AnswerThisRoom [String] |
21 | AnswerOthersInRoom [String] |
21 | AnswerOthersInRoom [String] |
22 | AnswerSameClan [String] |
22 | AnswerSameClan [String] |
23 | AnswerLobby [String] |
23 | AnswerLobby [String] |
24 | SendServerMessage |
24 | SendServerMessage |
|
25 | SendServerVars |
25 | RoomAddThisClient Int -- roomID |
26 | RoomAddThisClient Int -- roomID |
26 | RoomRemoveThisClient String |
27 | RoomRemoveThisClient String |
27 | RemoveTeam String |
28 | RemoveTeam String |
28 | RemoveRoom |
29 | RemoveRoom |
29 | UnreadyRoomClients |
30 | UnreadyRoomClients |
116 processAction (clID, serverInfo, clients, rooms) SendServerMessage = do |
117 processAction (clID, serverInfo, clients, rooms) SendServerMessage = do |
117 writeChan (sendChan $ clients ! clID) ["SERVER_MESSAGE", message serverInfo] |
118 writeChan (sendChan $ clients ! clID) ["SERVER_MESSAGE", message serverInfo] |
118 return (clID, serverInfo, clients, rooms) |
119 return (clID, serverInfo, clients, rooms) |
119 where |
120 where |
120 client = clients ! clID |
121 client = clients ! clID |
121 message = if clientProto client < 29 then |
122 message si = if clientProto client < latestReleaseVersion si then |
122 serverMessageForOldVersions |
123 serverMessageForOldVersions si |
123 else |
124 else |
124 serverMessage |
125 serverMessage si |
|
126 |
|
127 processAction (clID, serverInfo, clients, rooms) SendServerVars = do |
|
128 writeChan (sendChan $ clients ! clID) ("SERVER_VARS" : vars) |
|
129 return (clID, serverInfo, clients, rooms) |
|
130 where |
|
131 client = clients ! clID |
|
132 vars = [ |
|
133 "MOTD_NEW", serverMessage serverInfo, |
|
134 "MOTD_OLD", serverMessageForOldVersions serverInfo, |
|
135 "LATEST_PROTO", show $ latestReleaseVersion serverInfo |
|
136 ] |
125 |
137 |
126 |
138 |
127 processAction (clID, serverInfo, clients, rooms) (ProtocolError msg) = do |
139 processAction (clID, serverInfo, clients, rooms) (ProtocolError msg) = do |
128 writeChan (sendChan $ clients ! clID) ["ERROR", msg] |
140 writeChan (sendChan $ clients ! clID) ["ERROR", msg] |
129 return (clID, serverInfo, clients, rooms) |
141 return (clID, serverInfo, clients, rooms) |