diff --git a/.github/workflows/build_application.yml b/.github/workflows/build_application.yml index c9aa6779..cdc3ffb7 100644 --- a/.github/workflows/build_application.yml +++ b/.github/workflows/build_application.yml @@ -223,10 +223,12 @@ jobs: uses: actions/download-artifact@v4 with: name: IW4MAdmin-${{ env.buildNumber }}-${{ env.releaseType }} - path: ${{ github.workspace }} + path: ${{ github.workspace }}/artifact - name: Zip build - run: zip -r IW4MAdmin-${{ env.buildNumber }}.zip ${{ github.workspace }}/* + run: | + cd ${{ github.workspace }}/artifact + zip -r IW4MAdmin-${{ env.buildNumber }}.zip . - name: Make release uses: ncipollo/release-action@v1 diff --git a/Plugins/ScriptPlugins/ParserBOIII.js b/Plugins/ScriptPlugins/ParserBOIII.js index 47ab9694..b10b180f 100644 --- a/Plugins/ScriptPlugins/ParserBOIII.js +++ b/Plugins/ScriptPlugins/ParserBOIII.js @@ -13,10 +13,10 @@ var plugin = { rconParser = manager.GenerateDynamicRConParser(this.name); eventParser = manager.GenerateDynamicEventParser(this.name); - rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +((?:[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)(?:\\(\\d+\\))? +(-*[0-9]+) *$'; + rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +((?:[A-Z]+|[0-9]+)) +((?:[a-z]|[0-9]){8,32}|(?:[a-z]|[0-9]){8,32}|bot[0-9]+|(?:[0-9]+)) *(.{0,32}) +(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}.\\d{1,3}|loopback|unknown|0+.0+)(?:\\:-?\\d{1,5})? +(-*[0-9]+) *$'; rconParser.Configuration.StatusHeader.Pattern = 'num +score +ping +xuid +name +address +qport *'; - rconParser.Configuration.CommandPrefixes.Kick = 'clientkick_for_reason {0} "{1}"'; - rconParser.Configuration.CommandPrefixes.Ban = 'clientkick_for_reason {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.Kick = 'clientkick {0}'; // clientkick_for_reason fails over rcon + rconParser.Configuration.CommandPrefixes.Ban = 'clientkick {0}'; rconParser.Configuration.CommandPrefixes.TempBan = 'clientkick_for_reason {0} "{1}"'; rconParser.Configuration.CommandPrefixes.RConResponse = '\xff\xff\xff\xff(\1|print) ?'; rconParser.Configuration.GametypeStatus.Pattern = 'Gametype: (.+)'; diff --git a/Plugins/ScriptPlugins/ParserT7.js b/Plugins/ScriptPlugins/ParserT7.js index 30976d9e..5ab11270 100644 --- a/Plugins/ScriptPlugins/ParserT7.js +++ b/Plugins/ScriptPlugins/ParserT7.js @@ -14,10 +14,10 @@ var plugin = { rconParser = manager.GenerateDynamicRConParser(this.name); eventParser = manager.GenerateDynamicEventParser(this.name); - rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +((?:[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)(?:\\([0-9]+\\)) +(-*[0-9]+) *$'; + rconParser.Configuration.Status.Pattern = '^ *([0-9]+) +-?([0-9]+) +((?:[A-Z]+|[0-9]+)) +((?:[a-z]|[0-9]){8,32}|(?:[a-z]|[0-9]){8,32}|bot[0-9]+|(?:[0-9]+)) *(.{0,32}) +(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}.\\d{1,3}|loopback|unknown|0+.0+)(?:\\:-?\\d{1,5})? +(-*[0-9]+) *$'; rconParser.Configuration.StatusHeader.Pattern = 'num +score +ping +xuid +name +address +qport|---------- Live ----------'; - rconParser.Configuration.CommandPrefixes.Kick = 'clientkick_for_reason {0} "{1}"'; - rconParser.Configuration.CommandPrefixes.Ban = 'clientkick_for_reason {0} "{1}"'; + rconParser.Configuration.CommandPrefixes.Kick = 'clientkick {0}'; // clientkick_for_reason fails over rcon + rconParser.Configuration.CommandPrefixes.Ban = 'clientkick {0}'; rconParser.Configuration.CommandPrefixes.TempBan = 'tempbanclient {0}'; rconParser.Configuration.CommandPrefixes.RConCommand = '\xff\xff\xff\xff\x00{0} {1}'; rconParser.Configuration.CommandPrefixes.RConGetDvar = '\xff\xff\xff\xff\x00{0} {1}'; diff --git a/README.md b/README.md index 1aced1da..cecbc3fe 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ Latest binary builds are always available at: ## Setup **IW4MAdmin** requires minimal effort to get up and running. ### Prerequisites -* [.NET Core 6.0.x Runtime](https://www.microsoft.com/net/download) - * [Direct Download (Windows)](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.1-windows-hosting-bundle-installer) - * [Package Installation Instructions (Linux)](https://docs.microsoft.com/en-us/dotnet/core/install/linux) +* [.NET 8.0.x ASP.NET Hosting Bundle ](https://www.microsoft.com/net/download) + * [Direct Download (Windows)](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-8.0.6-windows-x64-installer) + * [Package Installation Instructions (Linux)](https://learn.microsoft.com/en-us/dotnet/core/install/linux?WT.mc_id=dotnet-35129-website) ### Installation -1. Install .NET Core Runtime +1. Install ASP.NET Core Runtime (Hosting Bundle) 2. Extract `IW4MAdmin-.zip` ### Launching Windows