IW4M-Admin/SharedLibraryCore/RCon/StaticHelpers.cs

69 lines
2.2 KiB
C#

using System;
namespace SharedLibraryCore.RCon
{
public static class StaticHelpers
{
/// <summary>
/// defines the type of RCon query sent to a server
/// </summary>
public enum QueryType
{
/// <summary>
/// retrieve the status of a server
/// does not require RCon password
/// </summary>
GET_STATUS,
/// <summary>
/// retrieve the information of a server
/// server responds with key/value pairs
/// RCon password is required
/// </summary>
GET_INFO,
/// <summary>
/// retrieve the value of a DVAR
/// RCon password is required
/// </summary>
GET_DVAR,
/// <summary>
/// set the value of a DVAR
/// RCon password is required
/// </summary>
SET_DVAR,
/// <summary>
/// execute a command
/// RCon password is required
/// </summary>
COMMAND,
/// <summary>
/// get the full server command information
/// RCon password is required
/// </summary>
COMMAND_STATUS
}
/// <summary>
/// line seperator char included in response from the server
/// </summary>
public static char SeperatorChar = (char)int.Parse("0a", System.Globalization.NumberStyles.AllowHexSpecifier);
/// <summary>
/// timeout in seconds to wait for a socket send or receive before giving up
/// </summary>
public static TimeSpan SocketTimeout(int retryAttempt)
{
return retryAttempt switch
{
1 => TimeSpan.FromMilliseconds(550),
2 => TimeSpan.FromMilliseconds(1000),
3 => TimeSpan.FromMilliseconds(2000),
4 => TimeSpan.FromMilliseconds(5000),
_ => TimeSpan.FromMilliseconds(10000),
};
}
/// <summary>
/// interval in milliseconds to wait before sending the next RCon request
/// </summary>
public static readonly int FloodProtectionInterval = 750;
}
}