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.Packets.Enums.Chat; using WingsEmu.Plugins.DistributedGameEvents.InterChannel; namespace WingsEmu.Plugins.BasicImplementations.InterChannel.Consumer; public class ChatShoutAdminMessageConsumer : IMessageConsumer { private readonly ISessionManager _serverManager; public ChatShoutAdminMessageConsumer(ISessionManager serverManager) => _serverManager = serverManager; public async Task HandleAsync(ChatShoutAdminMessage notification, CancellationToken token) { string message = notification.Message; string msg = ((IClientSession)null).GenerateMsgPacket(message, MsgMessageType.MiddleYellow); _serverManager.Broadcast(x => msg); _serverManager.Broadcast(session => session.GenerateSayPacket($"({session.GetLanguage(GameDialogKey.ADMIN_BROADCAST_CHATMESSAGE_SENDER)}): {message}", ChatMessageColorType.Yellow)); } }