Skip to content

Commit cd9c884

Browse files
committed
Fix sending empty array
1 parent b1bbabc commit cd9c884

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

SDK.CSharp.Live/OpenShockLiveControlClient.cs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -380,23 +380,38 @@ private async void FrameTimerTick(object state)
380380
{
381381
try
382382
{
383+
if(_shockerStates.IsEmpty) return;
384+
383385
if (_clientWebSocket is not { State: WebSocketState.Open })
384386
{
385387
_logger.LogWarning("Frame timer ticked, but websocket is not open");
386388
_managedFrameTimer.Change(Timeout.InfiniteTimeSpan, Timeout.InfiniteTimeSpan);
387389
return;
388390
}
389391

390-
await QueueMessage(new BaseRequest<LiveRequestType>()
392+
IList<ClientLiveFrame>? data = null;
393+
394+
var cur = DateTimeOffset.UtcNow;
395+
396+
foreach (var pair in _shockerStates)
397+
{
398+
if (pair.Value.ActiveUntil < cur ) continue;
399+
data ??= new List<ClientLiveFrame>();
400+
401+
data.Add(new ClientLiveFrame
402+
{
403+
Shocker = pair.Key,
404+
Type = pair.Value.LastType,
405+
Intensity = pair.Value.LastIntensity
406+
});
407+
}
408+
409+
if (data == null) return;
410+
411+
await QueueMessage(new BaseRequest<LiveRequestType>
391412
{
392413
RequestType = LiveRequestType.BulkFrame,
393-
Data = _shockerStates.Where(x => x.Value.ActiveUntil > DateTimeOffset.UtcNow)
394-
.Select(x => new ClientLiveFrame
395-
{
396-
Shocker = x.Key,
397-
Type = x.Value.LastType,
398-
Intensity = x.Value.LastIntensity
399-
})
414+
Data = data
400415
});
401416
}
402417
catch (Exception e)

SDK.CSharp.Live/SDK.CSharp.Live.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<AssemblyName>OpenShock.SDK.CSharp.Live</AssemblyName>
99
<RootNamespace>OpenShock.SDK.CSharp.Live</RootNamespace>
1010
<Company>OpenShock</Company>
11-
<AssemblyVersion>0.0.26</AssemblyVersion>
12-
<Version>0.0.26</Version>
11+
<AssemblyVersion>0.0.27</AssemblyVersion>
12+
<Version>0.0.27</Version>
1313
<Title>SDK.DotNet.Live</Title>
1414
<Authors>OpenShock</Authors>
1515
<Description>Extension for OpenShock.SDK.CSharp</Description>

0 commit comments

Comments
 (0)