diff --git a/Application/DefaultSettings.json b/Application/DefaultSettings.json index 12e0a8f9..ee1b78a8 100644 --- a/Application/DefaultSettings.json +++ b/Application/DefaultSettings.json @@ -723,6 +723,83 @@ "Alias": "Team Deathmatch" } ] + }, + { + "Game": "IW7", + "Gametypes": [ + { + "Name": "war", + "Alias": "Team Deathmatch" + }, + { + "Name": "front", + "Alias": "Frontline" + }, + { + "Name": "dom", + "Alias": "Domination" + }, + { + "Name": "sd", + "Alias": "Search and Destroy" + }, + { + "Name": "conf", + "Alias": "Kill Confirmed" + }, + { + "Name": "dm", + "Alias": "Free For All" + }, + { + "Name": "koth", + "Alias": "Hardpoint" + }, + { + "Name": "tdef", + "Alias": "Defender" + }, + { + "Name": "ball", + "Alias": "Uplink" + }, + { + "Name": "dd", + "Alias": "Demolition" + }, + { + "Name": "ctf", + "Alias": "Capture The Flag" + }, + { + "Name": "sr", + "Alias": "Search and Rescue" + }, + { + "Name": "siege", + "Alias": "Reinforce" + }, + { + "Name": "grind", + "Alias": "Grind" + }, + { + "Name": "infect", + "Alias": "Infected" + }, + { + "Name": "gun", + "Alias": "Gun Game" + }, + { + "Name": "grnd", + "Alias": "Drop Zone" + }, + { + "Name": "zombies", + "Alias": "Zombies" + } + ] } ], "Maps": [ @@ -2601,6 +2678,163 @@ "Alias": "Sirocco" } ] + }, + { + "Game": "IW7", + "Maps": [ + { + "Alias": "Frontier", + "Name": "mp_frontier" + }, + { + "Alias": "Dominion", + "Name": "mp_afghan" + }, + { + "Alias": "Depot 22", + "Name": "mp_depot" + }, + { + "Alias": "Excess", + "Name": "mp_flip" + }, + { + "Alias": "Renaissance", + "Name": "mp_geneva" + }, + { + "Alias": "Renaissance (Free)", + "Name": "mp_renaissance2" + }, + { + "Alias": "Heartland", + "Name": "mp_hawkwar" + }, + { + "Alias": "Scrap", + "Name": "mp_junk" + }, + { + "Alias": "Archive", + "Name": "mp_mansion" + }, + { + "Alias": "Turista", + "Name": "mp_marsoasis" + }, + { + "Alias": "Turista (Summer)", + "Name": "mp_turista2" + }, + { + "Alias": "Neon", + "Name": "mp_neon" + }, + { + "Alias": "Bermuda", + "Name": "mp_nova" + }, + { + "Alias": "Permafrost", + "Name": "mp_overflow" + }, + { + "Alias": "Permafrost (Free)", + "Name": "mp_permafrost2" + }, + { + "Alias": "Ember", + "Name": "mp_paris" + }, + { + "Alias": "Fore", + "Name": "mp_pixel" + }, + { + "Alias": "Noir", + "Name": "mp_prime" + }, + { + "Alias": "Carnage", + "Name": "mp_rally" + }, + { + "Alias": "Carnage (Free)", + "Name": "mp_carnage2" + }, + { + "Alias": "Breakout", + "Name": "mp_parkour" + }, + { + "Alias": "Frost", + "Name": "mp_proto" + }, + { + "Alias": "Crusher", + "Name": "mp_quarry" + }, + { + "Alias": "Retaliation", + "Name": "mp_riot" + }, + { + "Alias": "Skydock", + "Name": "mp_rivet" + }, + { + "Alias": "Terminal", + "Name": "mp_skyway" + }, + { + "Alias": "Mayday", + "Name": "mp_breakneck" + }, + { + "Alias": "Altitude", + "Name": "mp_codphish" + }, + { + "Alias": "Grounded", + "Name": "mp_desert" + }, + { + "Alias": "Scorch", + "Name": "mp_divide" + }, + { + "Alias": "Genesis", + "Name": "mp_dome_iw" + }, + { + "Alias": "Throwback", + "Name": "mp_fallen" + }, + { + "Alias": "Precinct", + "Name": "mp_metropolis" + }, + { + "Alias": "Zombies in Spaceland", + "Name": "cp_zmb" + }, + { + "Alias": "Shaolin Shuffle", + "Name": "cp_disco" + }, + { + "Alias": "The Beast From Beyond", + "Name": "cp_final" + }, + { + "Alias": "Rave in the Redwoods", + "Name": "cp_rave" + }, + { + "Alias": "Radioactive Thing", + "Name": "cp_town" + } + ] } ], "GameStrings": { diff --git a/Data/Models/Reference.cs b/Data/Models/Reference.cs index 51e98753..70224fd2 100644 --- a/Data/Models/Reference.cs +++ b/Data/Models/Reference.cs @@ -18,7 +18,8 @@ CSGO = 10, H1 = 11, L4D2 = 12, - H2M = 13 + H2M = 13, + IW7 = 14 } public enum ConnectionType diff --git a/IW4MAdmin.sln b/IW4MAdmin.sln index ec2209b5..9f49da74 100644 --- a/IW4MAdmin.sln +++ b/IW4MAdmin.sln @@ -53,6 +53,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ScriptPlugins", "ScriptPlug Plugins\ScriptPlugins\ParserL4D2SM.js = Plugins\ScriptPlugins\ParserL4D2SM.js Plugins\ScriptPlugins\ParserPlutoniumT6.js = Plugins\ScriptPlugins\ParserPlutoniumT6.js Plugins\ScriptPlugins\ParserH2MMOD.js = Plugins\ScriptPlugins\ParserH2MMOD.js + Plugins\ScriptPlugins\ParserIW7MOD.js = Plugins\ScriptPlugins\ParserIW7MOD.js EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutomessageFeed", "Plugins\AutomessageFeed\AutomessageFeed.csproj", "{F5815359-CFC7-44B4-9A3B-C04BACAD5836}" diff --git a/Plugins/ScriptPlugins/ParserIW7MOD.js b/Plugins/ScriptPlugins/ParserIW7MOD.js new file mode 100644 index 00000000..66ecd833 --- /dev/null +++ b/Plugins/ScriptPlugins/ParserIW7MOD.js @@ -0,0 +1,43 @@ +var rconParser; +var eventParser; + +var plugin = { + author: 'mjkzy', + version: 0.1, + name: 'IW7-Mod Parser', + isParser: true, + + onEventAsync: function(gameEvent, server) {}, + + onLoadAsync: function(manager) { + rconParser = manager.GenerateDynamicRConParser(this.name); + eventParser = manager.GenerateDynamicEventParser(this.name); + + rconParser.Configuration.CommandPrefixes.Kick = 'kickClient {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.Ban = 'kickClient {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.TempBan = 'kickClient {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.Tell = 'tellraw {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.Say = 'sayraw "{0}"'; + rconParser.Configuration.CommandPrefixes.RConResponse = '\xff\xff\xff\xffprint'; + rconParser.Configuration.Dvar.Pattern = '^ *\\"(.+)\\" is: \\"(.+)?\\" default: \\"(.+)?\\"'; + rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +(Yes|No) +((?:[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.StatusHeader.Pattern = 'num +score +bot +ping +guid +name +address +qport *'; + rconParser.Configuration.Status.AddMapping(102, 4); + rconParser.Configuration.Status.AddMapping(103, 5); + rconParser.Configuration.Status.AddMapping(104, 6); + rconParser.Configuration.WaitForResponse = false; + rconParser.Configuration.DefaultRConPort = 27016; + + eventParser.Configuration.GameDirectory = ''; + eventParser.Configuration.LocalizeText = '\x1f'; + + rconParser.Version = 'IW7 6.23 build 1435251 Tue Apr 17 18:34:00 2018 win64'; + rconParser.GameName = 14; // IW7 + eventParser.Version = 'IW7 6.23 build 1435251 Tue Apr 17 18:34:00 2018 win64'; + eventParser.GameName = 14; // IW7 + }, + + onUnloadAsync: function() {}, + + onTickAsync: function(server) {} +}; diff --git a/Plugins/ScriptPlugins/ServerBanner.js b/Plugins/ScriptPlugins/ServerBanner.js index 710d3cce..f80dfa02 100644 --- a/Plugins/ScriptPlugins/ServerBanner.js +++ b/Plugins/ScriptPlugins/ServerBanner.js @@ -127,6 +127,9 @@ const plugin = { 'h2m': { right: colorLeft }, + 'iw7': { + right: colorLeft + } }; const servers = plugin.manager.servers; diff --git a/SharedLibraryCore/Server.cs b/SharedLibraryCore/Server.cs index 5be70f27..5a9d99c8 100644 --- a/SharedLibraryCore/Server.cs +++ b/SharedLibraryCore/Server.cs @@ -37,7 +37,8 @@ namespace SharedLibraryCore CSGO = 10, H1 = 11, L4D2 = 12, - H2M = 13 + H2M = 13, + IW7 = 14 } // only here for performance