IW4M-Admin/SharedLibraryCore/Interfaces/IRConParserConfiguration.cs

116 lines
3.8 KiB
C#
Raw Normal View History

2022-01-26 11:32:16 -05:00
using System.Collections.Generic;
using System.Globalization;
using SharedLibraryCore.Formatting;
2022-01-26 11:32:16 -05:00
using SharedLibraryCore.RCon;
namespace SharedLibraryCore.Interfaces
{
public interface IRConParserConfiguration
{
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores the command format for console commands
/// </summary>
2021-06-03 11:51:03 -04:00
CommandPrefix CommandPrefixes { get; }
2019-11-18 15:02:35 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores the regex info for parsing get status response
/// </summary>
2021-06-03 11:51:03 -04:00
ParserRegex Status { get; }
2019-11-18 15:02:35 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores regex info for parsing the map line from rcon status response
2019-11-18 15:02:35 -05:00
/// </summary>
2021-06-03 11:51:03 -04:00
ParserRegex MapStatus { get; }
2019-11-18 15:02:35 -05:00
2020-08-05 10:30:02 -04:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores regex info for parsing the gametype line from rcon status response
2020-08-05 10:30:02 -04:00
/// </summary>
2021-06-03 11:51:03 -04:00
ParserRegex GametypeStatus { get; }
2022-01-26 11:32:16 -05:00
2021-06-03 11:51:03 -04:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores regex info for parsing hostname line from rcon status response
2021-06-03 11:51:03 -04:00
/// </summary>
ParserRegex HostnameStatus { get; }
2022-01-26 11:32:16 -05:00
2021-06-03 11:51:03 -04:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores regex info for parsing max players line from rcon status response
2021-06-03 11:51:03 -04:00
/// </summary>
ParserRegex MaxPlayersStatus { get; }
2020-08-05 10:30:02 -04:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores the regex info for parsing get DVAR responses
/// </summary>
2021-06-03 11:51:03 -04:00
ParserRegex Dvar { get; }
2019-11-18 15:02:35 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// stores the regex info for parsing the header of a status response
/// </summary>
2021-06-03 11:51:03 -04:00
ParserRegex StatusHeader { get; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// Specifies the expected response message from rcon when the server is not running
/// </summary>
2021-06-03 11:51:03 -04:00
string ServerNotRunningResponse { get; }
2019-02-03 21:47:05 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// indicates if the application should wait for response from server
/// when executing a command
2019-02-03 21:47:05 -05:00
/// </summary>
2021-06-03 11:51:03 -04:00
bool WaitForResponse { get; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// indicates the format expected for parsed guids
/// </summary>
2021-06-03 11:51:03 -04:00
NumberStyles GuidNumberStyle { get; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// specifies simple mappings for dvar names in scenarios where the needed
/// information is not stored in a traditional dvar name
/// </summary>
2021-06-03 11:51:03 -04:00
IDictionary<string, string> OverrideDvarNameMapping { get; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// specifies the default dvar values for games that don't support certain dvars
/// </summary>
2021-06-03 11:51:03 -04:00
IDictionary<string, string> DefaultDvarValues { get; }
/// <summary>
/// contains a setup of commands that have override timeouts
/// </summary>
IDictionary<string, int?> OverrideCommandTimeouts { get; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// specifies how many lines can be used for ingame notice
/// </summary>
int NoticeMaximumLines { get; set; }
/// <summary>
2022-01-26 11:32:16 -05:00
/// specifies how many characters can be displayed per notice line
/// </summary>
2021-06-03 11:51:03 -04:00
int NoticeMaxCharactersPerLine { get; }
2022-01-26 11:32:16 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// specifies the characters used to split a line
/// </summary>
2021-06-03 11:51:03 -04:00
string NoticeLineSeparator { get; }
2022-01-26 11:32:16 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// Default port the game listens to RCon requests on
/// </summary>
int? DefaultRConPort { get; }
2022-01-26 11:32:16 -05:00
/// <summary>
2022-01-26 11:32:16 -05:00
/// Default Indicator of where the game is installed (ex file path or registry entry)
/// </summary>
string DefaultInstallationDirectoryHint { get; }
ColorCodeMapping ColorCodeMapping { get; }
short FloodProtectInterval { get; }
/// <summary>
/// indicates if diacritics (accented characters) should be normalized
/// </summary>
bool ShouldRemoveDiacritics { get; }
}
}