Пример #1
0
        public static void Execute()
        {
            var config = ConfigFile.Parse();
            var user   = VkApi.GetUser((string)config["access_token"], (int)config["user_id"], "first_name,last_name");

            Console.WriteLine("Hello, " + user["first_name"] + "!");
        }
Пример #2
0
        public virtual void OnMessage(IUser sender, string message, BaseChat chat, Message messageData)
        {
            //защита от дублированных или задержанных сообщений
            {
                long msgId = messageData.ConversationMessageId.Value;
                if (!_lastMessages.ContainsKey(chat))
                {
                    _lastMessages.Add(chat, new Queue <long>());
                }
                else
                {
                    if (_lastMessages[chat].Contains(msgId))
                    {
                        return;
                    }
                    _lastMessages[chat].Enqueue(msgId);
                    if (_lastMessages[chat].Count > 10)
                    {
                        _lastMessages[chat].Dequeue();
                    }
                }
            }
            //защита от дублированных или задержанных сообщений


            //actions
            if (messageData.Action != null && chat is Chat _chat)
            {
                if (messageData.Action.Type == MessageAction.ChatKickUser)
                {
                    //if (messageData.Action.MemberId == -VkApi.GroupId) //нет события при кике бота.
                    //	_chat.OnKick(sender);
                    //else
                    _chat.OnKickUser(VkApi.GetUser(messageData.Action.MemberId.Value), sender);
                    return;
                }
                else if (messageData.Action.Type == MessageAction.ChatInviteUser)
                {
                    if (messageData.Action.MemberId == -VkApi.GroupId)
                    {
                        _chat.Join(sender);
                    }
                    else
                    {
                        _chat.OnAddUser(VkApi.GetUser(messageData.Action.MemberId.Value), sender, false);
                    }
                    return;
                }
                else if (messageData.Action.Type == MessageAction.ChatInviteUserByLink)
                {
                    _chat.OnAddUser(sender, null, true);
                    return;
                }
            }

            if (sender is User user)
            {
                if (ClickButton(user, message, chat, messageData))
                {
                    return;
                }

                if (UseCommand(user, message, chat, messageData))
                {
                    return;
                }
            }

            if (!OnGetMessage(new GetMessageEventArgs(chat, sender, message, messageData)))
            {
                return;
            }

            chat.OnMessasge(sender, message, messageData);
        }