mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Refactor CfPop event to allow plugins to hook it
This commit is contained in:
parent
c41f3cee34
commit
ea9acd3aea
2 changed files with 11 additions and 2 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue