private void Dispatch(Message message) { _003C_003Ec__DisplayClass19_0 _003C_003Ec__DisplayClass19_ = default(_003C_003Ec__DisplayClass19_0); _003C_003Ec__DisplayClass19_._003C_003E4__this = this; _003C_003Ec__DisplayClass19_.message = message; MemoryBuffer buffer = _003C_003Ec__DisplayClass19_.message.Buffer; try { Stream.SetData(_003C_003Ec__DisplayClass19_.message.Buffer.Data, 0, _003C_003Ec__DisplayClass19_.message.Buffer.Length); _003C_003Ec__DisplayClass19_.request = AppRequest.Deserialize(Stream); } catch { DebugEx.LogWarning($"Malformed companion packet from {_003C_003Ec__DisplayClass19_.message.Connection.Address}"); _003C_003Ec__DisplayClass19_.message.Connection.Close(); throw; } finally { buffer.Dispose(); } CompanionServer.Handlers.IHandler requestHandler; if (_003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, Info>((AppRequest r) => r.getInfo, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, CompanionServer.Handlers.Time>((AppRequest r) => r.getTime, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, Map>((AppRequest r) => r.getMap, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, TeamInfo>((AppRequest r) => r.getTeamInfo, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, TeamChat>((AppRequest r) => r.getTeamChat, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppSendMessage, SendTeamChat>((AppRequest r) => r.sendTeamMessage, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, EntityInfo>((AppRequest r) => r.getEntityInfo, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppSetEntityValue, SetEntityValue>((AppRequest r) => r.setEntityValue, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, CheckSubscription>((AppRequest r) => r.checkSubscription, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppFlag, SetSubscription>((AppRequest r) => r.setSubscription, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppEmpty, MapMarkers>((AppRequest r) => r.getMapMarkers, out requestHandler, ref _003C_003Ec__DisplayClass19_) || _003CDispatch_003Eg__Handle_007C19_12 <AppPromoteToLeader, PromoteToLeader>((AppRequest r) => r.promoteToLeader, out requestHandler, ref _003C_003Ec__DisplayClass19_)) { try { ValidationResult validationResult = requestHandler.Validate(); switch (validationResult) { case ValidationResult.Rejected: _003C_003Ec__DisplayClass19_.message.Connection.Close(); break; default: requestHandler.SendError(Util.ToErrorCode(validationResult)); break; case ValidationResult.Success: requestHandler.Execute(); break; } } catch (Exception arg) { UnityEngine.Debug.LogError($"AppRequest threw an exception: {arg}"); requestHandler.SendError("server_error"); } Facepunch.Pool.FreeDynamic(ref requestHandler); } else { AppResponse appResponse = Facepunch.Pool.Get <AppResponse>(); appResponse.seq = _003C_003Ec__DisplayClass19_.request.seq; appResponse.error = Facepunch.Pool.Get <AppError>(); appResponse.error.error = "unhandled"; _003C_003Ec__DisplayClass19_.message.Connection.Send(appResponse); _003C_003Ec__DisplayClass19_.request.Dispose(); } }