server-master/srcs/_plugins/WingsEmu.Plugins.BasicImplementation/InterChannel/Consumer/InterChannelSendChatMsgByCharIdMessageConsumer.cs
2026-02-10 18:21:30 +01:00

28 lines
No EOL
1.1 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using PhoenixLib.ServiceBus;
using WingsEmu.Game._i18n;
using WingsEmu.Game.Extensions;
using WingsEmu.Game.Managers;
using WingsEmu.Game.Networking;
using WingsEmu.Plugins.DistributedGameEvents.InterChannel;
namespace WingsEmu.Plugins.BasicImplementations.InterChannel.Consumer;
public class InterChannelSendChatMsgByCharIdMessageConsumer : IMessageConsumer<InterChannelSendChatMsgByCharIdMessage>
{
private readonly IGameLanguageService _languageService;
private readonly ISessionManager _sessionManager;
public InterChannelSendChatMsgByCharIdMessageConsumer(ISessionManager sessionManager, IGameLanguageService languageService)
{
_sessionManager = sessionManager;
_languageService = languageService;
}
public async Task HandleAsync(InterChannelSendChatMsgByCharIdMessage e, CancellationToken cancellation)
{
IClientSession localSession = _sessionManager.GetSessionByCharacterId(e.CharacterId);
localSession?.SendChatMessage(_languageService.GetLanguage(e.DialogKey, localSession.UserLanguage), e.ChatMessageColorType);
}
}