コード例 #1
0
ファイル: IrcCommands.cs プロジェクト: solson/sharpie
 public void OnPrivateMessage(PrivateMessageHandler handler)
 {
     AddHandler("PRIVMSG", (msg) => {
         if(msg.Arguments[0][0] != '#')
             handler(msg.Sender, msg.Arguments[1]);
     });
 }
コード例 #2
0
    private void AddFriend_One(string[] segments)
    {
        string idFrom = segments[2];

        AccountManager.SyncFriendToList(idFrom, AccountManager.GetAccountById(idFrom));
        ClientManager.Post
            (() => PrivateMessageHandler.NotifyFriendRequestAccepted(idFrom));
    }
コード例 #3
0
 public TopBar(
     WindowManager windowManager,
     CnCNetManager connectionManager,
     PrivateMessageHandler privateMessageHandler
     ) : base(windowManager)
 {
     downTimeWaitTime           = TimeSpan.FromSeconds(DOWN_TIME_WAIT_SECONDS);
     this.connectionManager     = connectionManager;
     this.privateMessageHandler = privateMessageHandler;
 }
コード例 #4
0
 public PrivateMessagingWindow(
     WindowManager windowManager,
     CnCNetManager connectionManager,
     GameCollection gameCollection,
     CnCNetUserData cncnetUserData,
     PrivateMessageHandler privateMessageHandler
     ) : base(windowManager)
 {
     this.gameCollection        = gameCollection;
     this.connectionManager     = connectionManager;
     this.cncnetUserData        = cncnetUserData;
     this.privateMessageHandler = privateMessageHandler;
 }
コード例 #5
0
    void OpenPrivateMessage()
    {
        if (m_AccountRelative.Identity == AccountManager.AccountInstance.Identity)
        {
            return;
        }

        if (m_AccountRelative != null && !PrivateMessageHandler.PrivateMessageInstanceExists(m_AccountRelative.Identity))
        {
            EventSink.InvokeStartPrivateMessageEvent
                (new StartPrivateMessageEventArgs(m_AccountRelative));
        }
    }
コード例 #6
0
    internal void SetAccountRelative(Account account, PrivateMessageHandler handler)
    {
        if (account != null)
        {
            m_Handler               = handler;
            m_AccountToFrom         = account;
            m_NotificationText.text = GetRequestContentString();
        }

        else
        {
            Debug.LogError
                ("Attempting To Set Account Relative Of Friend Request To Null!");
        }
    }
コード例 #7
0
        private static async Task <bool> OnFriendMessage(MiraiHttpSession sender, IFriendMessageEventArgs e)
        {
            var qq  = e.Sender.Id;
            var msg = e.Chain.GetPlain();

            var(matched, result) = new PrivateMessageHandler(qq, msg).ProcessCommandInput();

            var img = e.Chain.OfType <ImageMessage>().FirstOrDefault();

            if (img != null)
            {
                if (QQsReceivesImageSet.Any(s => s.QQ == qq.ToString()))
                {
                    var student = QQsReceivesImageSet.First(s => s.QQ == qq.ToString());
                    QQsReceivesImageSet.RemoveWhere(s => s.QQ == qq.ToString());
                    var url    = img.Url;
                    var client = new HttpClient();
                    var image  = await client.GetByteArrayAsync(url);

                    if (ImageManager.ExistsAndIfRemove(student))
                    {
                        SendPrivate(qq.ToString(), "注意: 你已经上传过照片, 这张照片将被覆盖");
                    }

                    if (ImageManager.GetExtension(image) == null)
                    {
                        SendPrivate(qq.ToString(), "图片格式不支持.");
                        return(true);
                    }

                    ImageManager.SaveImage(student, image);
                    SendPrivate(qq.ToString(), "图片成功保存!");
                }
                else
                {
                    if (!Config.Instance.SentImageHint.Contains(qq.ToString()))
                    {
                        SendPrivate(qq.ToString(), "图片不能直接发送, 输入 help 或 帮助 来查看使用方法.");
                        Config.Instance.SentImageHint.Add(qq.ToString());
                        Config.Save();
                    }
                }
            }


            return(true);
        }
コード例 #8
0
        public async Task <List <PrivateMessage> > GetPrivateMessageListAsync(int page)
        {
            if (!_webManager.IsAuthenticated)
            {
                throw new Exception("User must be authenticated before using this method.");
            }
            var url = EndPoints.PrivateMessages;

            if (page > 0)
            {
                url = EndPoints.PrivateMessages + string.Format(EndPoints.PageNumber, page);
            }

            var result = await _webManager.GetDataAsync(url);

            var document = await _webManager.Parser.ParseAsync(result.ResultHtml);

            return(PrivateMessageHandler.ParseList(document));
        }
コード例 #9
0
        public async Task <List <PrivateMessage> > GetPrivateMessageListAsync(int page, CancellationToken token = default)
        {
            if (!this.webManager.IsAuthenticated)
            {
                throw new UserAuthenticationException(Awful.Core.Resources.ExceptionMessages.UserAuthenticationError);
            }

            var url = EndPoints.PrivateMessages;

            if (page > 0)
            {
                url = EndPoints.PrivateMessages + string.Format(CultureInfo.InvariantCulture, EndPoints.PageNumber, page);
            }

            var result = await this.webManager.GetDataAsync(url, token).ConfigureAwait(false);

            var document = await this.webManager.Parser.ParseDocumentAsync(result.ResultHtml, token).ConfigureAwait(false);

            return(PrivateMessageHandler.ParseList(document));
        }
コード例 #10
0
 void MinimizeMessage()
 {
     PrivateMessageHandler.MinimizeMessage(m_AccountToFrom.Identity);
 }
コード例 #11
0
 void ExitPrivateMessage()
 {
     PrivateMessageHandler.RemovePrivateMessage(m_AccountToFrom.Identity);
 }
コード例 #12
0
        private void Finish()
        {
            ProgramConstants.GAME_VERSION = ClientConfiguration.Instance.ModMode ?
                                            "N/A" : CUpdater.GameVersion;

            DiscordHandler discordHandler = null;

            if (!string.IsNullOrEmpty(ClientConfiguration.Instance.DiscordAppId))
            {
                discordHandler = new DiscordHandler(WindowManager);
            }

            var gameCollection = new GameCollection();

            gameCollection.Initialize(GraphicsDevice);

            var lanLobby = new LANLobby(WindowManager, gameCollection, mapLoader.GameModes, mapLoader, discordHandler);

            var cncnetUserData        = new CnCNetUserData(WindowManager);
            var cncnetManager         = new CnCNetManager(WindowManager, gameCollection);
            var tunnelHandler         = new TunnelHandler(WindowManager, cncnetManager);
            var privateMessageHandler = new PrivateMessageHandler(cncnetManager, cncnetUserData);

            var topBar = new TopBar(WindowManager, cncnetManager, privateMessageHandler);

            var optionsWindow = new OptionsWindow(WindowManager, gameCollection, topBar);

            var pmWindow = new PrivateMessagingWindow(WindowManager,
                                                      cncnetManager, gameCollection, cncnetUserData, privateMessageHandler);

            privateMessagingPanel = new PrivateMessagingPanel(WindowManager);

            var cncnetGameLobby = new CnCNetGameLobby(WindowManager,
                                                      "MultiplayerGameLobby", topBar, mapLoader.GameModes, cncnetManager, tunnelHandler, gameCollection, cncnetUserData, mapLoader, discordHandler, pmWindow);
            var cncnetGameLoadingLobby = new CnCNetGameLoadingLobby(WindowManager,
                                                                    topBar, cncnetManager, tunnelHandler, mapLoader.GameModes, gameCollection, discordHandler);
            var cncnetLobby = new CnCNetLobby(WindowManager, cncnetManager,
                                              cncnetGameLobby, cncnetGameLoadingLobby, topBar, pmWindow, tunnelHandler,
                                              gameCollection, cncnetUserData, optionsWindow);
            var gipw = new GameInProgressWindow(WindowManager);

            var skirmishLobby = new SkirmishLobby(WindowManager, topBar, mapLoader.GameModes, discordHandler);

            topBar.SetSecondarySwitch(cncnetLobby);

            var mainMenu = new MainMenu(WindowManager, skirmishLobby, lanLobby,
                                        topBar, optionsWindow, cncnetLobby, cncnetManager, discordHandler);

            WindowManager.AddAndInitializeControl(mainMenu);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, skirmishLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLoadingLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, lanLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, optionsWindow);

            WindowManager.AddAndInitializeControl(privateMessagingPanel);
            privateMessagingPanel.AddChild(pmWindow);

            topBar.SetTertiarySwitch(pmWindow);
            topBar.SetOptionsWindow(optionsWindow);

            WindowManager.AddAndInitializeControl(gipw);
            skirmishLobby.Disable();
            cncnetLobby.Disable();
            cncnetGameLobby.Disable();
            cncnetGameLoadingLobby.Disable();
            lanLobby.Disable();
            pmWindow.Disable();
            optionsWindow.Disable();

            WindowManager.AddAndInitializeControl(topBar);
            topBar.AddPrimarySwitchable(mainMenu);

            mainMenu.PostInit();

            if (UserINISettings.Instance.AutomaticCnCNetLogin &&
                NameValidator.IsNameValid(ProgramConstants.PLAYERNAME) == null)
            {
                cncnetManager.Connect();
            }

            if (!UserINISettings.Instance.PrivacyPolicyAccepted)
            {
                WindowManager.AddAndInitializeControl(new PrivacyNotification(WindowManager));
            }

            WindowManager.RemoveControl(this);

            Cursor.Visible = visibleSpriteCursor;
        }
コード例 #13
0
 void MaximizePrivateMessage()
 {
     PrivateMessageHandler.MaximizeMessage(m_MessageInstance.AccountToFrom.Identity);
 }