# HG changeset patch # User unc0rr # Date 1346757502 -14400 # Node ID 4cb423f421051870c07e88c426ab386034359271 # Parent 4346566c5a589dfe5faa41951c21630f64d37135 Show who is the room admin on join (no tested, also I don't like how it is done via server warnings, but it seems there's no other solution compatible with .17) diff -r 4346566c5a58 -r 4cb423f42105 gameServer/Actions.hs --- a/gameServer/Actions.hs Tue Sep 04 12:43:55 2012 +0200 +++ b/gameServer/Actions.hs Tue Sep 04 15:18:22 2012 +0400 @@ -244,11 +244,13 @@ newMasterId <- liftM (head . filter (/= ci)) . io $ roomClientsIndicesM rnc ri newMaster <- io $ client'sM rnc id newMasterId oldRoomName <- io $ room'sM rnc name ri + thisRoomChans <- liftM (map sendChan) $ roomClientsS ri let newRoomName = nick newMaster mapM_ processAction [ ModifyRoom (\r -> r{masterID = newMasterId, name = newRoomName, isRestrictedJoins = False, isRestrictedTeams = False}), ModifyClient2 newMasterId (\c -> c{isMaster = True}), - AnswerClients [sendChan newMaster] ["ROOM_CONTROL_ACCESS", "1"] + AnswerClients [sendChan newMaster] ["ROOM_CONTROL_ACCESS", "1"], + AnswerClients thisRoomChans ["WARNING", "New room admin is " `B.append` nick newMaster] ] proto <- client's clientProto diff -r 4346566c5a58 -r 4cb423f42105 gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Tue Sep 04 12:43:55 2012 +0200 +++ b/gameServer/HWProtoLobbyState.hs Tue Sep 04 15:18:22 2012 +0400 @@ -6,6 +6,7 @@ import Data.Maybe import Data.List import Control.Monad.Reader +import qualified Data.ByteString.Char8 as B -------------------------------------- import CoreTypes import Actions @@ -69,6 +70,7 @@ let sameProto = clientProto cl == roomProto jRoom let jRoomClients = map (client irnc) $ roomClients irnc jRI let nicks = map nick jRoomClients + let owner = fromJust $ find isMaster jRoomClients let chans = map sendChan (cl : jRoomClients) let isBanned = host cl `elem` roomBansList jRoom return $ @@ -84,7 +86,8 @@ [ MoveToRoom jRI, AnswerClients [sendChan cl] $ "JOINED" : nicks, - AnswerClients chans ["CLIENT_FLAGS", "-r", nick cl] + AnswerClients chans ["CLIENT_FLAGS", "-r", nick cl], + AnswerClients [sendChan cl] $ ["WARNING", "Room owner is " `B.append` nick owner] ] ++ map (readynessMessage cl) jRoomClients ++ answerFullConfig cl (mapParams jRoom) (params jRoom)