Exemple #1
0
        public async Task HandleMessage([FromBody] MessengerObject obj)
        {
            foreach (var entry in obj.Entries)
            {
                foreach (var messaging in entry.Messaging)
                {
                    if (messaging.Sender.Id == "1614435598861752")
                    {
                        continue;
                    }

                    if (messaging.Message == null && messaging.Postback == null)
                    {
                        continue;
                    }

                    if (messaging.Sender == null)
                    {
                        continue;
                    }

                    var result = await processor.ProcessMessageAsync(messaging);

                    if (result == false)
                    {
                        logger.LogWarning("No handler found for the following message: " + messaging.ToString());
                    }
                }
            }
        }
 public async Task HandleMessage([FromBody] MessengerObject obj)
 {
     foreach (var entry in obj.Entries)
     {
         await HandleEntry(entry);
     }
 }
        public static MessengerObject SendWaitingUpdateMessage(this MessengerObject messenger)
        {
            Habbo            owner   = messenger.Owner;
            MMessengerUpdate message = owner.GetInstanceVariable("Messenger.WaitingUpdateMessage") as MMessengerUpdate;

            message.Categories.Union(messenger.GetAllCategories());
            message.Send(owner);

            message.FriendUpdates.Clear();
            message.Categories.Clear();
            return(messenger);
        }
        public async Task HandleMessage([FromBody] MessengerObject obj)
        {
            System.Console.WriteLine("Handling message");
            foreach (var entry in obj.Entries)
            {
                MessengerResponse response = await HandleEntry(entry);

                if (response.Failed)
                {
                    this.logger.LogError($"Failed to send message to facebook. Error message: '{response.RawResponse}'");
                }
            }
        }
        private static void ProcessRemoveFriends(Habbo sender, IncomingMessage message)
        {
            // How many friends have been deleted?
            int             amount    = message.PopWiredInt32();
            MessengerObject messenger = sender.GetMessenger();

            // Handle each one.
            for (int i = 0; i < amount; i++)
            {
                // Get the ID of the friend about to be removed.
                int friendID = message.PopWiredInt32();

                // Remove the friend from all categories.
                messenger.RemoveFriend(friendID);
            }
            messenger.SendWaitingUpdateMessage();
        }
Exemple #6
0
        public async Task HandleMessage([FromBody] MessengerObject obj)
        {
            foreach (var entry in obj.Entries)
            {
                var mesaging = entry.Messaging;

                foreach (var message in mesaging)
                {
                    var senderId = message.Sender.Id;
                    if (message.Message != null)
                    {
                        if (!string.IsNullOrEmpty(message.Message.Text))
                        {
                            try
                            {
                                var checkSend = await SendDBTT(message);

                                RecurringJob.AddOrUpdate(senderId,
                                                         () => SendDBTT(message),
                                                         Cron.Hourly);
                                var jobId = BackgroundJob.Schedule(
                                    () => RecurringJob.RemoveIfExists(senderId),
                                    TimeSpan.FromDays(1));
                            }
                            catch (Exception ex)
                            {
                                var response = new MessengerMessage {
                                    Text = "Xin lỗi page mình có vấn đề rồi :'( ... " + ex.Message
                                };
                                await messageSender.SendAsync(response, message.Sender);
                            }
                        }
                        else
                        {
                            var response = new MessengerMessage {
                                Text = "Hi chào cậu , mình đợi cậu từ chiều ơ...mà cậu đừng gửi file, ảnh linh tinh cho tớ spam tớ ghét  đấy <3"
                            };
                            await messageSender.SendAsync(response, message.Sender);
                        }
                    }
                }
            }
        }
        private static void ProcessMessengerInit(Habbo sender, IncomingMessage message)
        {
            MessengerObject messenger = CreateMessenger(
                sender);

            sender.SetInstanceVariable("Messenger.Instance", messenger);
            sender.SetInstanceVariable("Messenger.WaitingUpdateMessage", new MMessengerUpdate());

            new MMessengerInit
            {
                Categories = messenger.GetAllCategories(),
                Friends    = messenger.GetAllFriends(),
                UnknownA   = 10,
                UnknownB   = 20,
                UnknownC   = 30,
            }.Send(sender);


            if (OnMessengerReady != null)
            {
                OnMessengerReady.Invoke(messenger, new MessengerEventArgs(sender));
            }
        }
        private static void ProcessMessengerSearch(Habbo sender, IncomingMessage message)
        {
            string searchString = message.PopPrefixedString();

            List <IHI.Database.Habbo> matching;

            // Using IHIDB.Habbo rather than IHIDB.Friend because this will be passed to the HabboDistributor
            using (ISession db = CoreManager.ServerCore.GetDatabaseSession())
            {
                matching = db.CreateCriteria <IHI.Database.Habbo>().
                           Add(new LikeExpression("username", searchString + "%")).
                           SetMaxResults(20).     // TODO: External config
                           List <IHI.Database.Habbo>() as List <IHI.Database.Habbo>;
            }

            List <IBefriendable> friends   = new List <IBefriendable>();
            List <IBefriendable> strangers = new List <IBefriendable>();

            MessengerObject  messenger        = sender.GetMessenger();
            HabboDistributor habboDistributor = CoreManager.ServerCore.GetHabboDistributor();

            foreach (IHI.Database.Habbo match in matching)
            {
                IBefriendable habbo = habboDistributor.GetHabbo(match);
                if (messenger.IsFriend(habbo))
                {
                    friends.Add(habbo);
                }
                else
                {
                    strangers.Add(habbo);
                }
            }

            new MMessengerSearchResults(friends, strangers).Send(sender);
        }
 internal static void RegisterEventHandlers(MessengerObject messenger)
 {
     messenger.OnFriendStateChanged += PersistFriendStateChanged;
     messenger.OnCategoryChanged    += messenger_OnCategoryChanged;
 }
        private static MessengerObject CreateMessenger(Habbo habbo)
        {
            MessengerObject messenger = new MessengerObject(habbo);


            IList <MessengerCategory>      categoriesOutput;
            IList <MessengerFriendship>    friendsOutput;
            IList <MessengerFriendRequest> friendRequestsOutput;

            using (ISession db = CoreManager.ServerCore.GetDatabaseSession())
            {
                categoriesOutput = db.CreateCriteria <MessengerCategory>()
                                   .Add(
                    Restrictions.Eq("habbo_id", habbo.GetID()))
                                   .List <MessengerCategory>();

                friendsOutput = db.CreateCriteria <MessengerFriendship>()
                                .Add(
                    new OrExpression(
                        Restrictions.Eq("habbo_a.id", habbo.GetID()),
                        Restrictions.Eq("habbo_b.id", habbo.GetID())))
                                .List <MessengerFriendship>();

                friendRequestsOutput = db.CreateCriteria <MessengerFriendRequest>()
                                       .Add(
                    Restrictions.Eq("habbo_to_id",
                                    habbo.GetID()))
                                       .List <MessengerFriendRequest>();
            }

            messenger.AddCategory(new Category(messenger, 0)
            {
                Name = ""
            });

            foreach (MessengerCategory category in categoriesOutput)
            {
                messenger.AddCategory(new Category(messenger, category.category_id)
                {
                    Name = category.name
                });
            }

            foreach (MessengerFriendship friendship in friendsOutput)
            {
                Habbo friendHabbo;
                int   categoryID = 0;

                if (friendship.habbo_a.habbo_id == habbo.GetID())
                {
                    friendHabbo = CoreManager.ServerCore.GetHabboDistributor().GetHabbo(friendship.habbo_b.habbo_id);
                    if (friendship.category_b_id.HasValue)
                    {
                        categoryID = friendship.category_b_id.Value;
                    }
                }
                else
                {
                    friendHabbo = CoreManager.ServerCore.GetHabboDistributor().GetHabbo(friendship.habbo_a.habbo_id);
                    if (friendship.category_a_id.HasValue)
                    {
                        categoryID = friendship.category_a_id.Value;
                    }
                }

                Category category = messenger.GetCategory(categoryID);
                category.AddFriend(friendHabbo);
            }

            foreach (MessengerFriendRequest request in friendRequestsOutput)
            {
                messenger.ReceiveFriendRequest(
                    CoreManager.ServerCore.GetHabboDistributor().GetHabbo(request.habbo_from_id));
            }

            messenger.OnFriendStateChanged += Messenger_OnMessengerFriendStateChanged;
            return(messenger);
        }
 public static MMessengerUpdate GetWaitingUpdateMessage(this MessengerObject messenger)
 {
     return(messenger.Owner.GetInstanceVariable("Messenger.WaitingUpdateMessage") as MMessengerUpdate);
 }