server-master/srcs/WingsAPI.Game/Networking/IBroadcaster.cs
2026-02-10 18:21:30 +01:00

30 lines
No EOL
1,001 B
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using WingsEmu.Game.Networking.Broadcasting;
using WingsEmu.Packets;
namespace WingsEmu.Game.Networking;
public interface IBroadcaster
{
IReadOnlyList<IClientSession> Sessions { get; }
void Broadcast(string packet);
void Broadcast<T>(T packet, params IBroadcastRule[] rules) where T : IServerPacket;
void Broadcast(string packet, params IBroadcastRule[] rules);
void Broadcast(IEnumerable<string> packets);
void Broadcast(IEnumerable<string> packets, params IBroadcastRule[] rules);
void Broadcast(Func<IClientSession, string> generatePacketCallback);
void Broadcast(Func<IClientSession, string> generatePacketCallback, params IBroadcastRule[] rules);
Task BroadcastAsync(Func<IClientSession, Task<string>> lambdaAsync);
Task BroadcastAsync(Func<IClientSession, Task<string>> lambdaAsync, params IBroadcastRule[] rules);
void Broadcast<T>(T packet) where T : IPacket;
}