Refactor CfPop event to allow plugins to hook it

This commit is contained in:
Katelyn Gigante 2020-01-30 17:16:06 +11:00
parent c41f3cee34
commit ea9acd3aea
2 changed files with 11 additions and 2 deletions

View file

@ -38,6 +38,7 @@ namespace Dalamud.DiscordBot {
this.socketClient = new DiscordSocketClient(); this.socketClient = new DiscordSocketClient();
this.socketClient.Ready += SocketClientOnReady; this.socketClient.Ready += SocketClientOnReady;
this.dalamud.NetworkHandlers.ProcessCfPop += ProcessCfPop;
} }
private XivChatType GetChatTypeBySlug(string slug) { private XivChatType GetChatTypeBySlug(string slug) {
@ -103,6 +104,9 @@ namespace Dalamud.DiscordBot {
} }
public async Task ProcessCfPop(JObject contentFinderCondition) { public async Task ProcessCfPop(JObject contentFinderCondition) {
if (!this.IsConnected)
return;
var contentName = contentFinderCondition["Name"]; var contentName = contentFinderCondition["Name"];
if (this.config.CfNotificationChannel == null) if (this.config.CfNotificationChannel == null)

View file

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using Dalamud.Game.Network.MarketBoardUploaders; using Dalamud.Game.Network.MarketBoardUploaders;
using Dalamud.Game.Network.Structures; using Dalamud.Game.Network.Structures;
using Dalamud.Game.Network.Universalis.MarketBoardUploaders; using Dalamud.Game.Network.Universalis.MarketBoardUploaders;
using Newtonsoft.Json.Linq;
using Serilog; using Serilog;
namespace Dalamud.Game.Network { namespace Dalamud.Game.Network {
@ -19,6 +20,9 @@ namespace Dalamud.Game.Network {
private byte[] lastPreferredRole; private byte[] lastPreferredRole;
public delegate Task CfPop(JObject contentFinderCondition);
public event CfPop ProcessCfPop;
public NetworkHandlers(Dalamud dalamud, bool optOutMbUploads) { public NetworkHandlers(Dalamud dalamud, bool optOutMbUploads) {
this.dalamud = dalamud; this.dalamud = dalamud;
this.optOutMbUploads = optOutMbUploads; this.optOutMbUploads = optOutMbUploads;
@ -26,6 +30,7 @@ namespace Dalamud.Game.Network {
this.uploader = new UniversalisMarketBoardUploader(dalamud); this.uploader = new UniversalisMarketBoardUploader(dalamud);
dalamud.Framework.Network.OnZonePacket += OnZonePacket; dalamud.Framework.Network.OnZonePacket += OnZonePacket;
} }
private void OnZonePacket(IntPtr dataPtr) { private void OnZonePacket(IntPtr dataPtr) {
@ -48,8 +53,8 @@ namespace Dalamud.Game.Network {
this.dalamud.Framework.Gui.Chat.Print($"Duty pop: " + contentFinderCondition["Name"]); this.dalamud.Framework.Gui.Chat.Print($"Duty pop: " + contentFinderCondition["Name"]);
if (this.dalamud.BotManager.IsConnected) await this.ProcessCfPop?.Invoke(contentFinderCondition);
await this.dalamud.BotManager.ProcessCfPop(contentFinderCondition);
}); });
return; return;