public RequestInviteGuildMemberEventListener(IInviteGuildMemberModalClickedEventSubscribable subscriptionService, [NotNull][KeyFilter(UnityUIRegisterationKey.AddGuildMemberModalWindow)] IUIButton inviteGuildMemberButton, [NotNull][KeyFilter(UnityUIRegisterationKey.AddGuildMemberModalWindow)] IUIElement guildInviteModalWindow, [NotNull][KeyFilter(UnityUIRegisterationKey.AddGuildMemberModalWindow)] IUIText guildInviteInputText, [NotNull] ILog logger, [NotNull] IRemoteSocialHubServer realtimeSocialConnection) : base(subscriptionService) { InviteGuildMemberButton = inviteGuildMemberButton ?? throw new ArgumentNullException(nameof(inviteGuildMemberButton)); GuildInviteModalWindow = guildInviteModalWindow; GuildInviteInputText = guildInviteInputText ?? throw new ArgumentNullException(nameof(guildInviteInputText)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); RealtimeSocialConnection = realtimeSocialConnection ?? throw new ArgumentNullException(nameof(realtimeSocialConnection)); }
public PopupGuildInviteWindowEventListener(IGuildMemberInviteEventEventSubscribable subscriptionService, [KeyFilter(UnityUIRegisterationKey.InvitedToGuildWindow)][NotNull] IUIGuildInviteWindow guildInviteWindow, INameQueryService nameQueryService, [NotNull] IEntityNameQueryable entityNameQueryable, [NotNull] IRemoteSocialHubServer socialHub) : base(subscriptionService) { GuildInviteWindow = guildInviteWindow ?? throw new ArgumentNullException(nameof(guildInviteWindow)); NameQueryService = nameQueryService; EntityNameQueryable = entityNameQueryable ?? throw new ArgumentNullException(nameof(entityNameQueryable)); SocialHub = socialHub ?? throw new ArgumentNullException(nameof(socialHub)); //Here we rig up the decline and accept invite buttons guildInviteWindow.AcceptInviteButton.AddOnClickListener(() => SocialHub.SendGuildInviteEventResponseAsync(new PendingGuildInviteHandleRequest(true))); guildInviteWindow.DeclineInviteButton.AddOnClickListener(() => SocialHub.SendGuildInviteEventResponseAsync(new PendingGuildInviteHandleRequest(false))); }