server-master/srcs/_plugins/WingsEmu.Plugins.BasicImplementation/Event/Miniland/MinilandIntroEventHandler.cs
2026-02-10 18:21:30 +01:00

40 lines
No EOL
1.3 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using PhoenixLib.Events;
using WingsAPI.Game.Extensions.MinilandExtensions;
using WingsEmu.Game._i18n;
using WingsEmu.Game.Extensions;
using WingsEmu.Game.Miniland;
using WingsEmu.Game.Miniland.Events;
using WingsEmu.Game.Networking;
namespace WingsEmu.Plugins.BasicImplementations.Event.Miniland;
public class MinilandIntroEventHandler : IAsyncEventProcessor<MinilandIntroEvent>
{
private readonly IGameLanguageService _languageService;
private readonly IMinilandManager _minilandManager;
public MinilandIntroEventHandler(IMinilandManager minilandManager, IGameLanguageService languageService)
{
_minilandManager = minilandManager;
_languageService = languageService;
}
public async Task HandleAsync(MinilandIntroEvent e, CancellationToken cancellation)
{
e.Sender.PlayerEntity.MinilandMessage = e.RequestedMinilandIntro;
foreach (IClientSession session in e.Sender.PlayerEntity.Miniland.Sessions)
{
if (session.PlayerEntity.Id == e.Sender.PlayerEntity.Id)
{
continue;
}
session.SendMinilandPublicInformation(_minilandManager, _languageService);
}
e.Sender.SendInfo(_languageService.GetLanguage(GameDialogKey.MINILAND_INFO_CHANGED, e.Sender.UserLanguage));
}
}