Fix UDMUX detection in client log parser

This commit is contained in:
pizzaboxer 2023-03-09 11:07:53 +00:00
parent db21afaaeb
commit d5d95872bb

View File

@ -69,27 +69,27 @@ namespace Bloxstrap.Integrations
else if (_logEntriesRead % 100 == 0) else if (_logEntriesRead % 100 == 0)
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Read {_logEntriesRead} log entries"); App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Read {_logEntriesRead} log entries");
if (!_activityInGame && _activityPlaceId == 0) if (entry.Contains(GameJoiningEntry) && !_activityInGame && _activityPlaceId == 0)
{ {
if (entry.Contains(GameJoiningEntry)) Match match = Regex.Match(entry, GameJoiningEntryPattern);
if (match.Groups.Count != 4)
{ {
Match match = Regex.Match(entry, GameJoiningEntryPattern); App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Failed to assert format for game join entry");
App.Logger.WriteLine(entry);
if (match.Groups.Count != 4) return;
{
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Failed to assert format for game join entry");
App.Logger.WriteLine(entry);
return;
}
_activityInGame = false;
_activityPlaceId = long.Parse(match.Groups[2].Value);
_activityJobId = match.Groups[1].Value;
_activityMachineAddress = match.Groups[3].Value;
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Joining Game ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})");
} }
else if (entry.Contains(GameJoiningUDMUXEntry))
_activityInGame = false;
_activityPlaceId = long.Parse(match.Groups[2].Value);
_activityJobId = match.Groups[1].Value;
_activityMachineAddress = match.Groups[3].Value;
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Joining Game ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})");
}
else if (!_activityInGame && _activityPlaceId != 0)
{
if (entry.Contains(GameJoiningUDMUXEntry))
{ {
Match match = Regex.Match(entry, GameJoiningUDMUXPattern); Match match = Regex.Match(entry, GameJoiningUDMUXPattern);
@ -101,25 +101,25 @@ namespace Bloxstrap.Integrations
} }
_activityMachineAddress = match.Groups[1].Value; _activityMachineAddress = match.Groups[1].Value;
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Server is UDMUX protected ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})"); App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Server is UDMUX protected ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})");
} }
} else if (entry.Contains(GameJoinedEntry))
else if (entry.Contains(GameJoinedEntry) && !_activityInGame && _activityPlaceId != 0)
{
Match match = Regex.Match(entry, GameJoinedEntryPattern);
if (match.Groups.Count != 2 || match.Groups[1].Value != _activityMachineAddress)
{ {
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Failed to assert format for game joined entry"); Match match = Regex.Match(entry, GameJoinedEntryPattern);
App.Logger.WriteLine(entry);
return; if (match.Groups.Count != 2 || match.Groups[1].Value != _activityMachineAddress)
{
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Failed to assert format for game joined entry");
App.Logger.WriteLine(entry);
return;
}
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Joined Game ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})");
_activityInGame = true;
await SetPresence();
} }
App.Logger.WriteLine($"[DiscordRichPresence::ExamineLogEntry] Joined Game ({_activityPlaceId}/{_activityJobId}/{_activityMachineAddress})");
_activityInGame = true;
await SetPresence();
} }
else if (entry.Contains(GameDisconnectedEntry) && _activityInGame && _activityPlaceId != 0) else if (entry.Contains(GameDisconnectedEntry) && _activityInGame && _activityPlaceId != 0)
{ {