add one log indicator for games (Pluto IW5) that don't log to mods folder even when fs_game is specified.
This commit is contained in:
parent
c397fd5479
commit
3a1e8359c2
@ -1177,12 +1177,12 @@ namespace IW4MAdmin
|
|||||||
GameDirectory = EventParser.Configuration.GameDirectory ?? "",
|
GameDirectory = EventParser.Configuration.GameDirectory ?? "",
|
||||||
ModDirectory = game.Value ?? "",
|
ModDirectory = game.Value ?? "",
|
||||||
LogFile = logfile.Value,
|
LogFile = logfile.Value,
|
||||||
IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
|
IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows),
|
||||||
|
IsOneLog = RconParser.IsOneLog
|
||||||
};
|
};
|
||||||
LogPath = GenerateLogPath(logInfo);
|
LogPath = GenerateLogPath(logInfo);
|
||||||
ServerLogger.LogInformation("Game log information {@logInfo}", logInfo);
|
ServerLogger.LogInformation("Game log information {@logInfo}", logInfo);
|
||||||
|
|
||||||
|
|
||||||
if (!File.Exists(LogPath) && ServerConfig.GameLogServerUrl == null)
|
if (!File.Exists(LogPath) && ServerConfig.GameLogServerUrl == null)
|
||||||
{
|
{
|
||||||
Console.WriteLine(loc["SERVER_ERROR_DNE"].FormatExt(LogPath));
|
Console.WriteLine(loc["SERVER_ERROR_DNE"].FormatExt(LogPath));
|
||||||
@ -1223,12 +1223,12 @@ namespace IW4MAdmin
|
|||||||
public static string GenerateLogPath(LogPathGeneratorInfo logInfo)
|
public static string GenerateLogPath(LogPathGeneratorInfo logInfo)
|
||||||
{
|
{
|
||||||
string logPath;
|
string logPath;
|
||||||
string workingDirectory = logInfo.BasePathDirectory;
|
var workingDirectory = logInfo.BasePathDirectory;
|
||||||
|
|
||||||
bool baseGameIsDirectory = !string.IsNullOrWhiteSpace(logInfo.BaseGameDirectory) &&
|
var baseGameIsDirectory = !string.IsNullOrWhiteSpace(logInfo.BaseGameDirectory) &&
|
||||||
logInfo.BaseGameDirectory.IndexOfAny(Utilities.DirectorySeparatorChars) != -1;
|
logInfo.BaseGameDirectory.IndexOfAny(Utilities.DirectorySeparatorChars) != -1;
|
||||||
|
|
||||||
bool baseGameIsRelative = logInfo.BaseGameDirectory.FixDirectoryCharacters()
|
var baseGameIsRelative = logInfo.BaseGameDirectory.FixDirectoryCharacters()
|
||||||
.Equals(logInfo.GameDirectory.FixDirectoryCharacters(), StringComparison.InvariantCultureIgnoreCase);
|
.Equals(logInfo.GameDirectory.FixDirectoryCharacters(), StringComparison.InvariantCultureIgnoreCase);
|
||||||
|
|
||||||
// we want to see if base game is provided and it 'looks' like a directory
|
// we want to see if base game is provided and it 'looks' like a directory
|
||||||
@ -1237,7 +1237,7 @@ namespace IW4MAdmin
|
|||||||
workingDirectory = logInfo.BaseGameDirectory;
|
workingDirectory = logInfo.BaseGameDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(logInfo.ModDirectory))
|
if (string.IsNullOrWhiteSpace(logInfo.ModDirectory) || logInfo.IsOneLog)
|
||||||
{
|
{
|
||||||
logPath = Path.Combine(workingDirectory, logInfo.GameDirectory, logInfo.LogFile);
|
logPath = Path.Combine(workingDirectory, logInfo.GameDirectory, logInfo.LogFile);
|
||||||
}
|
}
|
||||||
|
@ -41,5 +41,11 @@ namespace IW4MAdmin.Application.Misc
|
|||||||
/// indicates if running on windows
|
/// indicates if running on windows
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsWindows { get; set; } = true;
|
public bool IsWindows { get; set; } = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// indicates that the game does not log to the mods folder (when mod is loaded),
|
||||||
|
/// but rather always to the fs_basegame directory
|
||||||
|
/// </summary>
|
||||||
|
public bool IsOneLog { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,11 +75,12 @@ namespace IW4MAdmin.Application.RConParsers
|
|||||||
public bool CanGenerateLogPath { get; set; } = true;
|
public bool CanGenerateLogPath { get; set; } = true;
|
||||||
public string Name { get; set; } = "Call of Duty";
|
public string Name { get; set; } = "Call of Duty";
|
||||||
public string RConEngine { get; set; } = "COD";
|
public string RConEngine { get; set; } = "COD";
|
||||||
|
public bool IsOneLog { get; set; }
|
||||||
|
|
||||||
public async Task<string[]> ExecuteCommandAsync(IRConConnection connection, string command)
|
public async Task<string[]> ExecuteCommandAsync(IRConConnection connection, string command)
|
||||||
{
|
{
|
||||||
var response = await connection.SendQueryAsync(StaticHelpers.QueryType.COMMAND, command);
|
var response = await connection.SendQueryAsync(StaticHelpers.QueryType.COMMAND, command);
|
||||||
return response.Skip(1).ToArray();
|
return response.Where(item => item != Configuration.CommandPrefixes.RConResponse).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Dvar<T>> GetDvarAsync<T>(IRConConnection connection, string dvarName, T fallbackValue = default)
|
public async Task<Dvar<T>> GetDvarAsync<T>(IRConConnection connection, string dvarName, T fallbackValue = default)
|
||||||
|
@ -3,7 +3,7 @@ var eventParser;
|
|||||||
|
|
||||||
var plugin = {
|
var plugin = {
|
||||||
author: 'RaidMax',
|
author: 'RaidMax',
|
||||||
version: 0.7,
|
version: 0.8,
|
||||||
name: 'Plutonium IW5 Parser',
|
name: 'Plutonium IW5 Parser',
|
||||||
isParser: true,
|
isParser: true,
|
||||||
|
|
||||||
@ -35,6 +35,7 @@ var plugin = {
|
|||||||
rconParser.Configuration.Status.AddMapping(103, 5);
|
rconParser.Configuration.Status.AddMapping(103, 5);
|
||||||
rconParser.Configuration.Status.AddMapping(104, 6);
|
rconParser.Configuration.Status.AddMapping(104, 6);
|
||||||
|
|
||||||
|
rconParser.IsOneLog = true;
|
||||||
rconParser.Version = 'IW5 MP 1.9 build 388110 Fri Sep 14 00:04:28 2012 win-x86';
|
rconParser.Version = 'IW5 MP 1.9 build 388110 Fri Sep 14 00:04:28 2012 win-x86';
|
||||||
rconParser.GameName = 3; // IW5
|
rconParser.GameName = 3; // IW5
|
||||||
eventParser.Version = 'IW5 MP 1.9 build 388110 Fri Sep 14 00:04:28 2012 win-x86';
|
eventParser.Version = 'IW5 MP 1.9 build 388110 Fri Sep 14 00:04:28 2012 win-x86';
|
||||||
|
@ -1359,13 +1359,13 @@ namespace SharedLibraryCore.Commands
|
|||||||
|
|
||||||
public override async Task ExecuteAsync(GameEvent E)
|
public override async Task ExecuteAsync(GameEvent E)
|
||||||
{
|
{
|
||||||
var Response = await E.Owner.ExecuteCommandAsync(E.Data.Trim());
|
var response = await E.Owner.ExecuteCommandAsync(E.Data.Trim());
|
||||||
foreach (string S in Response)
|
foreach (var item in response)
|
||||||
{
|
{
|
||||||
E.Origin.Tell(S);
|
E.Origin.Tell(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Response.Length == 0)
|
if (response.Length == 0)
|
||||||
{
|
{
|
||||||
E.Origin.Tell(_translationLookup["COMMANDS_RCON_SUCCESS"]);
|
E.Origin.Tell(_translationLookup["COMMANDS_RCON_SUCCESS"]);
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,12 @@ namespace SharedLibraryCore.Interfaces
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
string RConEngine { get; }
|
string RConEngine { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// indicates that the game does not log to the mods folder (when mod is loaded),
|
||||||
|
/// but rather always to the fs_basegame directory
|
||||||
|
/// </summary>
|
||||||
|
bool IsOneLog { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// retrieves the value of given dvar key if it exists in the override dict
|
/// retrieves the value of given dvar key if it exists in the override dict
|
||||||
/// otherwise returns original
|
/// otherwise returns original
|
||||||
|
Loading…
Reference in New Issue
Block a user