From 18a08f125251181a578967c0b078b1cd5277801e Mon Sep 17 00:00:00 2001 From: NicEastvillage Date: Sat, 27 Jun 2026 16:20:58 +0200 Subject: [PATCH 1/2] Clean client rendering on RenderStatus change --- RLBotCS/Server/FlatBuffersSession.cs | 11 ++++++++--- .../{UpdateRendering.cs => UpdateRenderingStatus.cs} | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) rename RLBotCS/Server/ServerMessage/{UpdateRendering.cs => UpdateRenderingStatus.cs} (79%) diff --git a/RLBotCS/Server/FlatBuffersSession.cs b/RLBotCS/Server/FlatBuffersSession.cs index 81bfca3..51127a6 100644 --- a/RLBotCS/Server/FlatBuffersSession.cs +++ b/RLBotCS/Server/FlatBuffersSession.cs @@ -35,7 +35,7 @@ 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 +312,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 +430,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 +444,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 From 36affc4c0900e0bad62f729e986407e82faccddc Mon Sep 17 00:00:00 2001 From: NicEastvillage Date: Sat, 27 Jun 2026 16:37:01 +0200 Subject: [PATCH 2/2] Formatting --- RLBotCS/Server/FlatBuffersSession.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RLBotCS/Server/FlatBuffersSession.cs b/RLBotCS/Server/FlatBuffersSession.cs index 51127a6..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 UpdateRenderingStatus(RenderingStatusT Status) : SessionMessage; + public readonly record struct UpdateRenderingStatus(RenderingStatusT Status) + : SessionMessage; public readonly record struct PingResponse(ulong Cookie) : SessionMessage; }