diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..f36c27185 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,35 @@ +name: Build Dalamud +on: [push] + +jobs: + build: + name: Build on Windows + runs-on: windows-2019 + steps: + - uses: actions/checkout@v1 + - name: Initialize Submodules + run: git submodule update --init --recursive + - name: Setup Nuget + uses: nuget/setup-nuget@v1 + with: + nuget-version: 'latest' + - name: Restore Nuget Packages + run: nuget restore Dalamud.sln + - name: Define VERSION + run: | + $env:COMMIT = $env:GITHUB_SHA.Substring(0, 7) + $env:REPO_NAME = $env:GITHUB_REPOSITORY -replace '.*/' + $env:BRANCH = $env:GITHUB_REF -replace '.*/' + + ($env:REPO_NAME) >> VERSION + ($env:BRANCH) >> VERSION + ($env:COMMIT) >> VERSION + - name: Build DotNet4 + run: | + cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\" + .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dalamud.sln /t:Build /p:Configuration=Release /p:DefineConstants=XL_NOAUTOUPDATE + - name: Upload artifact + uses: actions/upload-artifact@master + with: + name: dalamud-artifact + path: bin\ diff --git a/Dalamud/DiscordBot/DiscordBotManager.cs b/Dalamud/DiscordBot/DiscordBotManager.cs index fdf1a945f..5371e6db5 100644 --- a/Dalamud/DiscordBot/DiscordBotManager.cs +++ b/Dalamud/DiscordBot/DiscordBotManager.cs @@ -38,6 +38,7 @@ namespace Dalamud.DiscordBot { this.socketClient = new DiscordSocketClient(); this.socketClient.Ready += SocketClientOnReady; + this.dalamud.NetworkHandlers.ProcessCfPop += ProcessCfPop; } private XivChatType GetChatTypeBySlug(string slug) { @@ -103,6 +104,9 @@ namespace Dalamud.DiscordBot { } public async Task ProcessCfPop(JObject contentFinderCondition) { + if (!this.IsConnected) + return; + var contentName = contentFinderCondition["Name"]; if (this.config.CfNotificationChannel == null) diff --git a/Dalamud/Game/Network/NetworkHandlers.cs b/Dalamud/Game/Network/NetworkHandlers.cs index 4613e03de..752e92e0a 100644 --- a/Dalamud/Game/Network/NetworkHandlers.cs +++ b/Dalamud/Game/Network/NetworkHandlers.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Dalamud.Game.Network.MarketBoardUploaders; using Dalamud.Game.Network.Structures; using Dalamud.Game.Network.Universalis.MarketBoardUploaders; +using Newtonsoft.Json.Linq; using Serilog; namespace Dalamud.Game.Network { @@ -19,6 +20,9 @@ namespace Dalamud.Game.Network { private byte[] lastPreferredRole; + public delegate Task CfPop(JObject contentFinderCondition); + public event CfPop ProcessCfPop; + public NetworkHandlers(Dalamud dalamud, bool optOutMbUploads) { this.dalamud = dalamud; this.optOutMbUploads = optOutMbUploads; @@ -26,6 +30,7 @@ namespace Dalamud.Game.Network { this.uploader = new UniversalisMarketBoardUploader(dalamud); dalamud.Framework.Network.OnZonePacket += OnZonePacket; + } private void OnZonePacket(IntPtr dataPtr) { @@ -48,8 +53,8 @@ namespace Dalamud.Game.Network { this.dalamud.Framework.Gui.Chat.Print($"Duty pop: " + contentFinderCondition["Name"]); - if (this.dalamud.BotManager.IsConnected) - await this.dalamud.BotManager.ProcessCfPop(contentFinderCondition); + await this.ProcessCfPop?.Invoke(contentFinderCondition); + }); return; diff --git a/README.md b/README.md index 71c0ab4d6..238b38994 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Dalamud +# Dalamud [![Actions Status](https://github.com/goaaats/Dalamud/workflows/Build%20Dalamud/badge.svg)](https://github.com/goaaats/Dalamud/actions) FFXIV Hooking framework for [FFXIVQuickLauncher](https://github.com/goaaats/FFXIVQuickLauncher). -Thanks to Mino, whose work has made this possible! \ No newline at end of file +Thanks to Mino, whose work has made this possible!