From c397fd5479b288897d65641e1ebc7bb4d10f381b Mon Sep 17 00:00:00 2001 From: RaidMax Date: Sun, 6 Jun 2021 13:40:58 -0500 Subject: [PATCH] update pluto iw5 parser for new version fix issue with finding players with color codes in name --- Plugins/ScriptPlugins/ParserPIW5.js | 18 ++++++++---------- SharedLibraryCore/Server.cs | 4 ++-- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Plugins/ScriptPlugins/ParserPIW5.js b/Plugins/ScriptPlugins/ParserPIW5.js index 1cd9746e8..7b51318e5 100644 --- a/Plugins/ScriptPlugins/ParserPIW5.js +++ b/Plugins/ScriptPlugins/ParserPIW5.js @@ -3,7 +3,7 @@ var eventParser; var plugin = { author: 'RaidMax', - version: 0.6, + version: 0.7, name: 'Plutonium IW5 Parser', isParser: true, @@ -20,6 +20,7 @@ var plugin = { rconParser.Configuration.CommandPrefixes.Ban = 'clientkick {0} "{1}"'; rconParser.Configuration.CommandPrefixes.TempBan = 'clientkick {0} "{1}"'; rconParser.Configuration.CommandPrefixes.RConGetDvar = '\xff\xff\xff\xffrcon {0} get {1}'; + rconParser.Configuration.CommandPrefixes.RConResponse = '\xff\xff\xff\xffprint\n'; rconParser.Configuration.Dvar.Pattern = '^(.+) is "(.+)?"'; rconParser.Configuration.Dvar.AddMapping(106, 1); @@ -27,15 +28,12 @@ var plugin = { rconParser.Configuration.WaitForResponse = true; rconParser.Configuration.CanGenerateLogPath = true; rconParser.Configuration.NoticeLineSeparator = '. '; - - rconParser.Configuration.StatusHeader.Pattern = 'num +score +bot +ping +guid +name +lastmsg +address +qport +rate *'; - rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +(?:[0-1]{1}) +([0-9]{1,4}|[A-Z]{4}) +([a-f|A-F|0-9]{16}) +(.+?) +(?:[0-9]+) +(\\d+\\.\\d+\\.\\d+\\.\\d+\\:-?\\d{1,5}|0+\\.0+:-?\\d{1,5}|loopback) +(?:-?[0-9]+) +(?:[0-9]+) *$'; - rconParser.Configuration.Status.AddMapping(100, 1); - rconParser.Configuration.Status.AddMapping(101, 2); - rconParser.Configuration.Status.AddMapping(102, 3); - rconParser.Configuration.Status.AddMapping(103, 4); - rconParser.Configuration.Status.AddMapping(104, 5); - rconParser.Configuration.Status.AddMapping(105, 6); + + rconParser.Configuration.StatusHeader.Pattern = 'num +score +bot +ping +guid +name +address +qport *'; + rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +(0|1) +((?:[A-Z]+|[0-9]+)) +((?:[a-z]|[0-9]){8,32}|(?:[a-z]|[0-9]){8,32}|bot[0-9]+|(?:[0-9]+)) *(.{0,32}) +(\\d+\\.\\d+\\.\\d+.\\d+\\:-*\\d{1,5}|0+.0+:-*\\d{1,5}|loopback|unknown|bot) +(-*[0-9]+) *$'; + rconParser.Configuration.Status.AddMapping(102, 4); + rconParser.Configuration.Status.AddMapping(103, 5); + rconParser.Configuration.Status.AddMapping(104, 6); rconParser.Version = 'IW5 MP 1.9 build 388110 Fri Sep 14 00:04:28 2012 win-x86'; rconParser.GameName = 3; // IW5 diff --git a/SharedLibraryCore/Server.cs b/SharedLibraryCore/Server.cs index 96672ab10..a0336c318 100644 --- a/SharedLibraryCore/Server.cs +++ b/SharedLibraryCore/Server.cs @@ -107,10 +107,10 @@ namespace SharedLibraryCore } if (literal) { - return GetClientsAsList().Where(p => p.Name?.ToLower() == pName.ToLower()).ToList(); + return GetClientsAsList().Where(p => p.Name?.StripColors()?.ToLower() == pName.ToLower()).ToList(); } - return GetClientsAsList().Where(p => (p.Name?.ToLower() ?? "").Contains(pName.ToLower())).ToList(); + return GetClientsAsList().Where(p => (p.Name?.StripColors()?.ToLower() ?? "").Contains(pName.ToLower())).ToList(); } virtual public Task ProcessUpdatesAsync(CancellationToken cts) => (Task)Task.CompletedTask;