public override void HandleMessage(ClientStructure client, IClientMessageBase message) { var data = (LockBaseMsgData)message.Data; switch (data.LockMessageType) { case LockMessageType.ListRequest: LockSystemSender.SendAllLocks(client); //We don't use this message anymore so we can recycle it message.Recycle(); break; case LockMessageType.Acquire: var acquireData = (LockAcquireMsgData)data; if (acquireData.Lock.PlayerName == client.PlayerName) { LockSystemSender.SendLockAcquireMessage(client, acquireData.Lock, acquireData.Force); } break; case LockMessageType.Release: var releaseData = (LockReleaseMsgData)data; if (releaseData.Lock.PlayerName == client.PlayerName) { LockSystemSender.ReleaseAndSendLockReleaseMessage(client, releaseData.Lock); } break; default: throw new ArgumentOutOfRangeException(); } }
public override void HandleMessage(ClientStructure client, IMessageData message) { var data = (LockBaseMsgData)message; switch (data.LockMessageType) { case LockMessageType.ListRequest: LockSystemSender.SendAllLocks(client); break; case LockMessageType.Acquire: var acquireData = (LockAcquireMsgData)message; if (acquireData.PlayerName == client.PlayerName) { LockSystemSender.SendLockAquireMessage(acquireData.LockName, acquireData.PlayerName, acquireData.Force); } break; case LockMessageType.Release: var releaseData = (LockReleaseMsgData)message; if (releaseData.PlayerName == client.PlayerName) { LockSystemSender.SendLockReleaseMessage(releaseData.LockName, releaseData.PlayerName); } break; default: throw new ArgumentOutOfRangeException(); } }