public void Invoke(Network.Session Session, Messages.PacketEvent Packet) { foreach (int TargetId in Packet.PopCollection()) { if (TargetId < 1 || TargetId == Session.Character.Id) { continue; } if (Session.Character.MessengerFriends.Contains(TargetId)) { continue; } if (!Session.Character.MessengerRequests.Contains(TargetId)) { continue; } if (Session.Character.MessengerFriends.Count >= System.HabboSystem.MessengerManager.GetLimitFriends(Session.Character.Id)) { Session.WriteComposer(new MessengerErrorComposer(39, 2)); return; } Session.Character.MessengerFriends.Add(TargetId); Session.Character.MessengerRequests.Remove(TargetId); CharacterStatus Status = System.HabboSystem.CharacterManager.GetStatus(TargetId); Session.WriteComposer(new FriendListUpdateComposer(Session.Character, new Dictionary<int, int> { { TargetId, (int)MessengerUpdateType.NewFriendship } })); if (Status == CharacterStatus.Online) { var TargetSession = System.NetworkSocket.GetSession(TargetId); if (TargetSession != null) { TargetSession.WriteComposer(new FriendListUpdateComposer(TargetSession.Character, new Dictionary<int, int> { { Session.Character.Id, (int)MessengerUpdateType.NewFriendship } })); TargetSession.Character.MessengerFriends.Add(Session.Character.Id); } } System.MySQLManager.InvokeQuery(new MessengerAcceptFriendQuery(TargetId, Session.Character.Id)); } }
public void Invoke(Network.Session Session, Messages.PacketEvent Packet) { bool RemoveAll = Packet.PopBoolean(); if (RemoveAll) { Session.Character.MessengerRequests.Clear(); System.MySQLManager.InvokeQuery(new MessengerDeclineAllFriendQuery(Session.Character.Id)); } else { foreach (int TargetId in Packet.PopCollection()) { if (TargetId < 1 || TargetId == Session.Character.Id) { continue; } if (!Session.Character.MessengerRequests.Contains(TargetId)) { continue; } Session.Character.MessengerRequests.Remove(TargetId); System.MySQLManager.InvokeQuery(new MessengerDeclineFriendQuery(TargetId, Session.Character.Id)); } } }
public void Invoke(Network.Session Session, Messages.PacketEvent Packet) { // TODO ? IF(!INROOM) if (Session.Character.Muted) { Session.WriteComposer(new ModMessageComposer("You are muted, only someone with an higher rank can unmute you.")); return; } ICollection<int> Targets = Packet.PopCollection(); string Message = Packet.PopString(); foreach (int TargetId in Targets) { if (TargetId < 1 || TargetId == Session.Character.Id) { continue; } if (System.HabboSystem.CharacterManager.GetStatus(TargetId) == CharacterStatus.Offline) { continue; } if (!Session.Character.MessengerFriends.Contains(TargetId)) { Session.WriteComposer(new RoomInviteErrorComposer()); continue; } var TargetSession = System.NetworkSocket.GetSession(TargetId); if (TargetSession == null) { Session.WriteComposer(new RoomInviteErrorComposer()); continue; } if (TargetSession.Character.Muted) { Session.WriteComposer(new ModMessageComposer(string.Format("{0} is muted.", Session.Character.Username))); continue; } TargetSession.WriteComposer(new RoomInviteComposer(Session.Character.Id, Message)); } }
public void Invoke(Network.Session Session, Messages.PacketEvent Packet) { foreach (int TargetId in Packet.PopCollection()) { if (TargetId < 1 || TargetId == Session.Character.Id) { continue; } if (!Session.Character.MessengerFriends.Contains(TargetId)) { continue; } CharacterStatus Status = System.HabboSystem.CharacterManager.GetStatus(TargetId); Session.WriteComposer(new FriendListUpdateComposer(Session.Character, new Dictionary<int, int> { { TargetId, (int)MessengerUpdateType.RemoveBuddy } })); if (Status == CharacterStatus.Online) { var TargetSession = System.NetworkSocket.GetSession(TargetId); if (TargetSession != null) { TargetSession.WriteComposer(new FriendListUpdateComposer(TargetSession.Character, new Dictionary<int, int> { { Session.Character.Id, (int)MessengerUpdateType.RemoveBuddy } })); TargetSession.Character.MessengerFriends.Remove(Session.Character.Id); } } Session.Character.MessengerFriends.Remove(TargetId); System.MySQLManager.InvokeQuery(new MessengerFriendRemoveQuery(Session.Character.Id, TargetId)); } }