50 lines
1.9 KiB
C#
50 lines
1.9 KiB
C#
using System;
|
|
using static SharedLibraryCore.Server;
|
|
|
|
namespace SharedLibraryCore.Interfaces
|
|
{
|
|
public interface IEventParser
|
|
{
|
|
/// <summary>
|
|
/// Generates a game event based on log line input
|
|
/// </summary>
|
|
/// <param name="logLine">single log line string</param>
|
|
/// <returns></returns>
|
|
/// todo: make this integrate without needing the server
|
|
GameEvent GenerateGameEvent(string logLine);
|
|
/// <summary>
|
|
/// Get game specific folder prefix for log files
|
|
/// </summary>
|
|
/// <returns>Game directory prefix</returns>
|
|
IEventParserConfiguration Configuration { get; set; }
|
|
|
|
/// <summary>
|
|
/// stores the game/client specific version (usually the value of the "version" DVAR)
|
|
/// </summary>
|
|
string Version { get; set; }
|
|
|
|
/// <summary>
|
|
/// specifies the game name (usually the internal studio iteration ie: IW4, T5 etc...)
|
|
/// </summary>
|
|
Game GameName { get; set; }
|
|
|
|
/// <summary>
|
|
/// specifies the connect URI used to join game servers via web browser
|
|
/// </summary>
|
|
string URLProtocolFormat { get; set; }
|
|
|
|
/// <summary>
|
|
/// specifies the text name of the game the parser is for
|
|
/// </summary>
|
|
string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// registers a custom event subtype to be triggered when a value is detected
|
|
/// </summary>
|
|
/// <param name="eventSubtype">subtype assigned to the event when generated</param>
|
|
/// <param name="eventTriggerValue">event keyword to trigger an event generation</param>
|
|
/// <param name="eventModifier">function pointer that modifies the generated game event</param>
|
|
void RegisterCustomEvent(string eventSubtype, string eventTriggerValue, Func<string, IEventParserConfiguration, GameEvent, GameEvent> eventModifier);
|
|
}
|
|
}
|