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(); }
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); }