From 34fb41bd2c1662c50e895b0ddba44624f4deb312 Mon Sep 17 00:00:00 2001 From: compujuckel Date: Sat, 23 Dec 2023 14:05:06 +0100 Subject: [PATCH] - bump version - add event handler for car list --- .../Network/Packets/Outgoing/CarListResponse.cs | 5 +---- .../Network/ClientMessages/OnlineEventGenerator.cs | 2 +- AssettoServer/Network/Tcp/ACTcpClient.cs | 8 +++++++- AssettoServer/Server/EventArgs.cs | 10 ++++++++++ AssettoServer/version.json | 2 +- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/AssettoServer.Shared/Network/Packets/Outgoing/CarListResponse.cs b/AssettoServer.Shared/Network/Packets/Outgoing/CarListResponse.cs index 86ecdc1c..bfa73a7d 100644 --- a/AssettoServer.Shared/Network/Packets/Outgoing/CarListResponse.cs +++ b/AssettoServer.Shared/Network/Packets/Outgoing/CarListResponse.cs @@ -6,13 +6,10 @@ public class CarListResponse : IOutgoingNetworkPacket { public int PageIndex; public int EntryCarsCount; - public IEnumerable>? EntryCars; + public required IEnumerable> EntryCars; public void ToWriter(ref PacketWriter writer) { - if (EntryCars == null) - throw new ArgumentNullException(nameof(EntryCars)); - writer.Write((byte)ACServerProtocol.CarList); writer.Write((byte)PageIndex); writer.Write((byte)EntryCarsCount); diff --git a/AssettoServer/Network/ClientMessages/OnlineEventGenerator.cs b/AssettoServer/Network/ClientMessages/OnlineEventGenerator.cs index e4c65e87..9cf0fb56 100644 --- a/AssettoServer/Network/ClientMessages/OnlineEventGenerator.cs +++ b/AssettoServer/Network/ClientMessages/OnlineEventGenerator.cs @@ -267,7 +267,7 @@ internal static OnlineEvent.ToWriterDelegate GenerateWriterMethod).MakeGenericType(elementType); var opImplicit = rosType.GetMethod("op_Implicit", - BindingFlags.Public | BindingFlags.Static, new[] { field.Type })!; + BindingFlags.Public | BindingFlags.Static, [field.Type])!; emitter.Call(opImplicit); emitter.LoadConstant(field.Array.Value); emitter.LoadConstant(i < message.Fields.Count - 1); // padding diff --git a/AssettoServer/Network/Tcp/ACTcpClient.cs b/AssettoServer/Network/Tcp/ACTcpClient.cs index 8ded51b3..62d4370e 100644 --- a/AssettoServer/Network/Tcp/ACTcpClient.cs +++ b/AssettoServer/Network/Tcp/ACTcpClient.cs @@ -105,7 +105,7 @@ public class ACTcpClient : IClient /// /// Fires when a slot has been secured for a player and the handshake response is about to be sent. /// - public event EventHandler HandshakeAccepted = null!; + public event EventHandler? HandshakeAccepted; /// /// Fires when a client has sent the first position update and is visible to other players. @@ -123,6 +123,11 @@ public class ACTcpClient : IClient /// public event EventHandler? LapCompleted; + /// + /// Fires before sending the car list response + /// + public event EventHandler? CarListResponseSending; + private class ACTcpClientLogEventEnricher : ILogEventEnricher { private readonly ACTcpClient _client; @@ -660,6 +665,7 @@ private void OnCarListRequest(PacketReader reader) EntryCars = carsInPage }; + CarListResponseSending?.Invoke(this, new CarListResponseSendingEventArgs(carListResponse)); SendPacket(carListResponse); } diff --git a/AssettoServer/Server/EventArgs.cs b/AssettoServer/Server/EventArgs.cs index 02d64636..3a0fc3c2 100644 --- a/AssettoServer/Server/EventArgs.cs +++ b/AssettoServer/Server/EventArgs.cs @@ -94,3 +94,13 @@ public LapCompletedEventArgs(LapCompletedOutgoing packet) Packet = packet; } } + +public class CarListResponseSendingEventArgs : EventArgs +{ + public CarListResponse Packet { get; } + + public CarListResponseSendingEventArgs(CarListResponse packet) + { + Packet = packet; + } +} diff --git a/AssettoServer/version.json b/AssettoServer/version.json index f6cc7ce2..645d0716 100644 --- a/AssettoServer/version.json +++ b/AssettoServer/version.json @@ -1,4 +1,4 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "0.0.54" + "version": "0.0.55" }