mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 15:20:48 -05:00
Add server status received event including raw response
This commit is contained in:
@ -0,0 +1,9 @@
|
||||
using SharedLibraryCore.Interfaces;
|
||||
|
||||
namespace SharedLibraryCore.Events.Server;
|
||||
|
||||
public class ServerStatusReceiveEvent : GameServerEvent
|
||||
{
|
||||
public IStatusResponse Response { get; set; }
|
||||
public string RawData { get; set; }
|
||||
}
|
@ -73,6 +73,11 @@ public interface IGameServerEventSubscriptions
|
||||
/// </summary>
|
||||
static event Func<ServerValueSetCompleteEvent, CancellationToken, Task> ServerValueSetCompleted;
|
||||
|
||||
/// <summary>
|
||||
/// Raised when a server's status response is received
|
||||
/// </summary>
|
||||
static event Func<ServerStatusReceiveEvent, CancellationToken, Task> ServerStatusReceived;
|
||||
|
||||
static Task InvokeEventAsync(CoreEvent coreEvent, CancellationToken token)
|
||||
{
|
||||
return coreEvent switch
|
||||
@ -88,6 +93,7 @@ public interface IGameServerEventSubscriptions
|
||||
ServerValueReceiveEvent serverValueReceiveEvent => ServerValueReceived?.InvokeAsync(serverValueReceiveEvent, token) ?? Task.CompletedTask,
|
||||
ServerValueSetRequestEvent serverValueSetRequestEvent => ServerValueSetRequested?.InvokeAsync(serverValueSetRequestEvent, token) ?? Task.CompletedTask,
|
||||
ServerValueSetCompleteEvent serverValueSetCompleteEvent => ServerValueSetCompleted?.InvokeAsync(serverValueSetCompleteEvent, token) ?? Task.CompletedTask,
|
||||
ServerStatusReceiveEvent serverStatusReceiveEvent => ServerStatusReceived?.InvokeAsync(serverStatusReceiveEvent, token) ?? Task.CompletedTask,
|
||||
_ => Task.CompletedTask
|
||||
};
|
||||
}
|
||||
|
@ -31,5 +31,10 @@ namespace SharedLibraryCore.Interfaces
|
||||
/// active clients
|
||||
/// </summary>
|
||||
EFClient[] Clients { get; }
|
||||
|
||||
/// <summary>
|
||||
/// raw text data from the game server
|
||||
/// </summary>
|
||||
string[] RawResponse { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -868,7 +868,14 @@ namespace SharedLibraryCore
|
||||
{
|
||||
try
|
||||
{
|
||||
return await server.RconParser.GetStatusAsync(server.RemoteConnection, token);
|
||||
var response = await server.RconParser.GetStatusAsync(server.RemoteConnection, token);
|
||||
|
||||
server.Manager.QueueEvent(new ServerStatusReceiveEvent
|
||||
{
|
||||
Response = response
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
catch (TaskCanceledException)
|
||||
|
Reference in New Issue
Block a user