// WingsEmu // // Developed by NosWings Team using System.Threading; using System.Threading.Tasks; using PhoenixLib.Events; using WingsEmu.Game._i18n; using WingsEmu.Game.Extensions; using WingsEmu.Game.Miniland; using WingsEmu.Game.Miniland.Minigames; using WingsEmu.Game.Networking; namespace WingsEmu.Plugins.BasicImplementations.Miniland.Minigames; public class MinigameRefreshProductionEventProcessor : IAsyncEventProcessor { private readonly IMinigameManager _minilandManager; public MinigameRefreshProductionEventProcessor(IMinigameManager minilandManager) => _minilandManager = minilandManager; public async Task HandleAsync(MinigameRefreshProductionEvent e, CancellationToken cancellation) { IClientSession session = e.Sender; bool canRefresh = await _minilandManager.CanRefreshMinigamesFreeProductionPoints(session.PlayerEntity.Id); if (canRefresh == false && e.Force == false) { session.SendDebugMessage("Miniland points already refreshed for today"); return; } if (session.PlayerEntity.MinilandPoint >= 2000) { session.SendDebugMessage("Miniland points already at maximum free"); return; } session.PlayerEntity.MinilandPoint = 2000; session.SendInformationChatMessage(session.GetLanguage(GameDialogKey.MINIGAME_CHATMESSAGE_PRODUCTION_REFRESHED)); } }