/// <summary> /// Initializes a new instance of <see cref="GameEventHandlerBase{TEvent}"/>. /// </summary> /// <param name="logger">The logger.</param> /// <param name="playerRegistry">The player registry.</param> /// <param name="chat">The chat.</param> /// <param name="gameEvent">The game event to handle.</param> /// <exception cref="ArgumentException">Thrown when the handler cannot handle the message.</exception> protected GameEventHandlerBase(ILogger logger, IPlayerRegistry playerRegistry, IChat chat, GameEvent gameEvent) { Logger = logger; PlayerRegistry = playerRegistry; Chat = chat; if (!(gameEvent is TEvent actualEvent)) { throw new ArgumentException($"The handler {GetType()} cannot handle message of type {gameEvent?.GetType().FullName ?? "<null>"}"); } GameEvent = actualEvent; }
/// <inheritdoc /> public ChannelOperator(IGameClientFactory <ChannelClient> clientFactory, IPlayerRegistry playerRegistry) : base(clientFactory) { PlayerRegistry = playerRegistry; }
public PlayerDefeatedHandler(ILogger logger, IPlayerRegistry playerRegistry, IChat chat, GameEvent gameEvent) : base(logger, playerRegistry, chat, gameEvent) { }