diff --git a/RLBotCS/Server/FlatBuffersSession.cs b/RLBotCS/Server/FlatBuffersSession.cs index 81bfca3..306a480 100644 --- a/RLBotCS/Server/FlatBuffersSession.cs +++ b/RLBotCS/Server/FlatBuffersSession.cs @@ -35,7 +35,8 @@ public readonly record struct DistributeBallPrediction(BallPredictionT BallPredi public readonly record struct StopMatch(bool Force) : SessionMessage; - public readonly record struct UpdateRendering(RenderingStatusT Status) : SessionMessage; + public readonly record struct UpdateRenderingStatus(RenderingStatusT Status) + : SessionMessage; public readonly record struct PingResponse(ulong Cookie) : SessionMessage; } @@ -312,7 +313,7 @@ await _bridge.WriteAsync( case InterfaceMessage.RenderingStatus: var renderingStatus = msg.MessageAsRenderingStatus().UnPack(); - await _rlbotServer.WriteAsync(new UpdateRendering(renderingStatus)); + await _rlbotServer.WriteAsync(new UpdateRenderingStatus(renderingStatus)); break; case InterfaceMessage.UpdatePerformanceMonitor: @@ -430,7 +431,7 @@ private async Task HandleInternalMessages() when m.Force || (_connectionEstablished && _closeBetweenMatches): _sessionForceClosed = m.Force; return; - case SessionMessage.UpdateRendering m: + case SessionMessage.UpdateRenderingStatus m: if (_team == Team.Other) { SendPayloadToClient(CoreMessageUnion.FromRenderingStatus(m.Status)); @@ -444,6 +445,11 @@ private async Task HandleInternalMessages() { _renderingIsEnabled = m.Status.Status; SendPayloadToClient(CoreMessageUnion.FromRenderingStatus(m.Status)); + + if (!_renderingIsEnabled) + { + await _bridge.WriteAsync(new RemoveClientRenders(_clientId)); + } } break; diff --git a/RLBotCS/Server/ServerMessage/UpdateRendering.cs b/RLBotCS/Server/ServerMessage/UpdateRenderingStatus.cs similarity index 79% rename from RLBotCS/Server/ServerMessage/UpdateRendering.cs rename to RLBotCS/Server/ServerMessage/UpdateRenderingStatus.cs index 43577ab..5524729 100644 --- a/RLBotCS/Server/ServerMessage/UpdateRendering.cs +++ b/RLBotCS/Server/ServerMessage/UpdateRenderingStatus.cs @@ -2,7 +2,7 @@ namespace RLBotCS.Server.ServerMessage; -readonly struct UpdateRendering(RenderingStatusT Status) : IServerMessage +readonly struct UpdateRenderingStatus(RenderingStatusT Status) : IServerMessage { public ServerAction Execute(ServerContext context) { @@ -10,7 +10,7 @@ public ServerAction Execute(ServerContext context) if (context.RenderingIsEnabled == DebugRendering.AlwaysOff) return ServerAction.Continue; - SessionMessage.UpdateRendering message = new(Status); + SessionMessage.UpdateRenderingStatus message = new(Status); // Distribute to all sessions; // they will figure out on their own if rendering should be enable/disabled