server-master/srcs/_plugins/Plugin.Act4/Event/Act4SystemFcBroadcastEventHandler.cs
2026-02-10 18:21:30 +01:00

32 lines
No EOL
1.2 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using PhoenixLib.Events;
using WingsEmu.Game.Act4.Event;
using WingsEmu.Game.Extensions;
using WingsEmu.Game.Managers;
using WingsEmu.Game.Networking.Broadcasting;
using WingsEmu.Packets.Enums;
namespace Plugin.Act4.Event;
public class Act4SystemFcBroadcastEventHandler : IAsyncEventProcessor<Act4SystemFcBroadcastEvent>
{
private readonly IAct4Manager _act4Manager;
private readonly ISessionManager _sessionManager;
public Act4SystemFcBroadcastEventHandler(IAct4Manager act4Manager, ISessionManager sessionManager)
{
_act4Manager = act4Manager;
_sessionManager = sessionManager;
}
public async Task HandleAsync(Act4SystemFcBroadcastEvent e, CancellationToken cancellation)
{
Act4Status status = _act4Manager.GetStatus();
string angelPacket = UiPacketExtension.GenerateFcPacket(FactionType.Angel, status);
string demonPacket = UiPacketExtension.GenerateFcPacket(FactionType.Demon, status);
_sessionManager.Broadcast(angelPacket, new FactionBroadcast(FactionType.Angel));
_sessionManager.Broadcast(demonPacket, new FactionBroadcast(FactionType.Demon));
}
}