1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-07 13:48:00 -05:00

Add GameLogEvent as catch all for unhandled log lines

This commit is contained in:
RaidMax 2024-06-22 12:18:33 -05:00
parent 4b6f3e8851
commit dffcae8344
3 changed files with 16 additions and 2 deletions

View File

@ -218,12 +218,13 @@ namespace IW4MAdmin.Application.EventParsers
return GenerateDefaultEvent(logLine, gameTime);
}
private static GameEvent GenerateDefaultEvent(string logLine, long gameTime)
private static GameLogEvent GenerateDefaultEvent(string logLine, long gameTime)
{
return new GameEvent
return new GameLogEvent
{
Type = GameEvent.EventType.Unknown,
Data = logLine,
LogLine = logLine,
Origin = Utilities.IW4MAdminClient(),
Target = Utilities.IW4MAdminClient(),
RequiredEntity = GameEvent.EventRequiredEntity.None,

View File

@ -0,0 +1,6 @@
namespace SharedLibraryCore.Events.Game;
public class GameLogEvent : GameEventV2
{
public string LogLine { get; set; }
}

View File

@ -86,6 +86,11 @@ public interface IGameEventSubscriptions
/// </summary>
static event Func<GameScriptEvent, CancellationToken, Task> ScriptEventTriggered;
/// <summary>
/// Raised when game log prints a line that is not handled by any other cases
/// </summary>
static event Func<GameLogEvent, CancellationToken, Task> GameLogEventTriggered;
static Task InvokeEventAsync(CoreEvent coreEvent, CancellationToken token)
{
return coreEvent switch
@ -100,6 +105,7 @@ public interface IGameEventSubscriptions
ClientCommandEvent clientCommandEvent => ClientEnteredCommand?.InvokeAsync(clientCommandEvent, token) ?? Task.CompletedTask,
ClientMessageEvent clientMessageEvent => ClientMessaged?.InvokeAsync(clientMessageEvent, token) ?? Task.CompletedTask,
GameScriptEvent gameScriptEvent => ScriptEventTriggered?.InvokeAsync(gameScriptEvent, token) ?? Task.CompletedTask,
GameLogEvent gameLogEvent => GameLogEventTriggered?.InvokeAsync(gameLogEvent, token) ?? Task.CompletedTask,
_ => Task.CompletedTask
};
}
@ -116,5 +122,6 @@ public interface IGameEventSubscriptions
ClientMessaged = null;
ClientEnteredCommand = null;
ScriptEventTriggered = null;
GameLogEventTriggered = null;
}
}