コード例 #1
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int     userID = Packet.PopInt();
            Boolean IsMe   = Packet.PopBoolean();

            Habbo targetData = ButterflyEnvironment.GetHabboById(userID);

            if (targetData == null)
            {
                return;
            }

            List <Group> Groups = ButterflyEnvironment.GetGame().GetGroupManager().GetGroupsForUser(targetData.MyGroups);

            int friendCount = 0;

            if (targetData.GetMessenger() != null)
            {
                friendCount = targetData.GetMessenger().Count;
            }
            else
            {
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("SELECT COUNT(0) FROM `messenger_friendships` WHERE (`user_one_id` = @userid);");
                    dbClient.AddParameter("userid", userID);
                    friendCount = dbClient.GetInteger();
                }
            }

            Session.SendPacket(new ProfileInformationComposer(targetData, Session, Groups, friendCount));
        }
コード例 #2
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if ((Session.GetHabbo().Id != Group.CreatorId && !Group.IsAdmin(Session.GetHabbo().Id)) && !Session.GetHabbo().HasFuse("fuse_group_accept_any"))
            {
                return;
            }

            if (!Group.HasRequest(UserId))
            {
                return;
            }

            Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId);

            if (Habbo == null)
            {
                return;
            }

            Group.HandleRequest(UserId, true);

            Habbo.MyGroups.Add(Group.Id);

            Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 4));
        }
コード例 #3
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session.GetHabbo() == null)
            {
                return;
            }

            int UserId = Packet.PopInt();

            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null)
            {
                return;
            }

            if (room == null || !room.CheckRights(Session, true))
            {
                return;
            }

            if (room.UsersWithRights.Contains(UserId))
            {
                Session.SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("user.giverights.error", Session.Langue));
            }
            else
            {
                Habbo Userright = ButterflyEnvironment.GetHabboById(UserId);
                if (Userright == null)
                {
                    return;
                }

                room.UsersWithRights.Add(UserId);

                using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    queryreactor.RunQuery("INSERT INTO room_rights (room_id,user_id) VALUES (" + room.Id + "," + UserId + ")");

                ServerPacket Response = new ServerPacket(ServerPacketHeader.FlatControllerAddedMessageComposer);
                Response.WriteInteger(room.Id);
                Response.WriteInteger(UserId);
                Response.WriteString(Userright.Username);
                Session.SendPacket(Response);

                RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (roomUserByHabbo == null || roomUserByHabbo.IsBot)
                {
                    return;
                }

                roomUserByHabbo.RemoveStatus("flatctrl 0");
                roomUserByHabbo.SetStatus("flatctrl 1", "");
                roomUserByHabbo.UpdateNeeded = true;

                roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(1));
            }
        }
コード例 #4
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if (Session.GetHabbo().Id != Group.CreatorId || !Group.IsMember(UserId))
            {
                return;
            }

            Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId);

            if (Habbo == null)
            {
                return;
            }

            Group.TakeAdmin(UserId);

            Room Room = null;

            if (ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
            {
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (User != null)
                {
                    if (User.Statusses.ContainsKey("flatctrl 3"))
                    {
                        User.RemoveStatus("flatctrl 3");
                    }
                    User.UpdateNeeded = true;
                    if (User.GetClient() != null)
                    {
                        User.GetClient().SendPacket(new YouAreControllerComposer(0));
                    }
                }
            }

            Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 2));
        }
コード例 #5
0
        public ServerPacket Serialize()
        {
            ServerPacket serverMessage = new ServerPacket(ServerPacketHeader.ModeratorSupportTicketMessageComposer);

            serverMessage.WriteInteger(this.Id);
            serverMessage.WriteInteger(this.TabId);
            serverMessage.WriteInteger(3);
            serverMessage.WriteInteger(this.Type);
            serverMessage.WriteInteger((int)(ButterflyEnvironment.GetUnixTimestamp() - this.Timestamp) * 1000);
            serverMessage.WriteInteger(this.Score);
            serverMessage.WriteInteger(this.SenderId);
            serverMessage.WriteInteger(this.SenderId);
            if (ButterflyEnvironment.GetHabboById(this.SenderId) != null)
            {
                serverMessage.WriteString(this.SenderName.Equals("") ? ButterflyEnvironment.GetHabboById(this.SenderId).Username : this.SenderName);
            }
            else
            {
                serverMessage.WriteString(this.SenderName);
            }
            serverMessage.WriteInteger(this.ReportedId);
            if (ButterflyEnvironment.GetHabboById(this.ReportedId) != null)
            {
                serverMessage.WriteString(this.ReportedName.Equals("") ? ButterflyEnvironment.GetHabboById(this.ReportedId).Username : this.ReportedName);
            }
            else
            {
                serverMessage.WriteString(this.ReportedName);
            }
            serverMessage.WriteInteger(this.Status == TicketStatus.PICKED ? this.ModeratorId : 0);
            if (ButterflyEnvironment.GetHabboById(this.ModeratorId) != null)
            {
                serverMessage.WriteString(this.Status == TicketStatus.PICKED ? (this.ModName.Equals("") ? ButterflyEnvironment.GetHabboById(this.ModeratorId).Username : this.ModName) : "");
            }
            else
            {
                serverMessage.WriteString(this.ModName);
            }
            serverMessage.WriteString(this.Message);
            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);

            return(serverMessage);
        }
コード例 #6
0
        public RoomRightsListComposer(Room Instance)
            : base(ServerPacketHeader.RoomRightsListMessageComposer)
        {
            WriteInteger(Instance.Id);

            WriteInteger(Instance.UsersWithRights.Count);
            foreach (int Id in Instance.UsersWithRights.ToList())
            {
                Habbo Data = ButterflyEnvironment.GetHabboById(Id);
                if (Data == null)
                {
                    WriteInteger(0);
                    WriteString("Unknown Error");
                }
                else
                {
                    WriteInteger(Data.Id);
                    WriteString(Data.Username);
                }
            }
        }
コード例 #7
0
        public GetRoomBannedUsersComposer(Room instance)
            : base(ServerPacketHeader.GetRoomBannedUsersMessageComposer)
        {
            WriteInteger(instance.Id);

            WriteInteger(instance.getBans().Count);//Count
            foreach (int Id in instance.getBans().Keys)
            {
                Habbo Data = ButterflyEnvironment.GetHabboById(Id);

                if (Data == null)
                {
                    WriteInteger(0);
                    WriteString("Unknown Error");
                }
                else
                {
                    WriteInteger(Data.Id);
                    WriteString(Data.Username);
                }
            }
        }
コード例 #8
0
        public void ApplySanction(GameClient Session, int ReportedUser)
        {
            if (ReportedUser == 0)
            {
                return;
            }

            Habbo UserReport = ButterflyEnvironment.GetHabboById(ReportedUser);

            if (UserReport == null)
            {
                return;
            }

            Session.GetHabbo().GetMessenger().DestroyFriendship(UserReport.Id);

            ServerPacket Response = new ServerPacket(ServerPacketHeader.IgnoreStatusMessageComposer);

            Response.WriteInteger(1);
            Response.WriteString(UserReport.Username);
            Session.SendPacket(Response);

            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null || (room.RoomData.BanFuse != 1 || !room.CheckRights(Session)) && !room.CheckRights(Session, true))
            {
                return;
            }

            RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserReport.Id);

            if (roomUserByHabbo == null || roomUserByHabbo.IsBot || (room.CheckRights(roomUserByHabbo.GetClient(), true) || roomUserByHabbo.GetClient().GetHabbo().HasFuse("fuse_mod") || roomUserByHabbo.GetClient().GetHabbo().HasFuse("fuse_no_kick")))
            {
                return;
            }

            room.AddBan(UserReport.Id, 429496729);
            room.GetRoomUserManager().RemoveUserFromRoom(roomUserByHabbo.GetClient(), true, true);
        }
コード例 #9
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session.GetHabbo() == null)
            {
                return;
            }

            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null || !room.CheckRights(Session, true))
            {
                return;
            }

            StringBuilder DeleteParams = new StringBuilder();
            int           Amount       = Packet.PopInt();

            for (int index = 0; index < Amount; ++index)
            {
                if (index > 0)
                {
                    DeleteParams.Append(" OR ");
                }

                int UserId = Packet.PopInt();
                if (room.UsersWithRights.Contains(UserId))
                {
                    room.UsersWithRights.Remove(UserId);
                }

                DeleteParams.Append("room_id = '" + room.Id + "' AND user_id = '" + UserId + "'");

                RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (roomUserByHabbo != null && !roomUserByHabbo.IsBot)
                {
                    roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(0));

                    roomUserByHabbo.RemoveStatus("flatctrl 1");
                    roomUserByHabbo.SetStatus("flatctrl 0", "");
                    roomUserByHabbo.UpdateNeeded = true;
                }
                ServerPacket Response2 = new ServerPacket(ServerPacketHeader.FlatControllerRemovedMessageComposer);
                Response2.WriteInteger(room.Id);
                Response2.WriteInteger(UserId);
                Session.SendPacket(Response2);

                if (room.UsersWithRights.Count <= 0)
                {
                    ServerPacket Response3 = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer);
                    Response3.WriteInteger(room.RoomData.Id);
                    Response3.WriteInteger(0);
                    Session.SendPacket(Response3);
                }
                else
                {
                    ServerPacket Response = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer);
                    Response.WriteInteger(room.RoomData.Id);
                    Response.WriteInteger(room.UsersWithRights.Count);
                    foreach (int UserId2 in room.UsersWithRights)
                    {
                        Habbo habboForId = ButterflyEnvironment.GetHabboById(UserId2);
                        Response.WriteInteger(UserId2);
                        Response.WriteString((habboForId == null) ? "Undefined (error)" : habboForId.Username);
                    }
                    Session.SendPacket(Response);
                }
            }

            using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                queryreactor.RunQuery("DELETE FROM room_rights WHERE " + (DeleteParams).ToString());
        }
コード例 #10
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if (UserId == Session.GetHabbo().Id)
            {
                if (Group.IsMember(UserId))
                {
                    Group.DeleteMember(UserId);
                }

                Session.GetHabbo().MyGroups.Remove(Group.Id);

                if (Group.IsAdmin(UserId))
                {
                    if (Group.IsAdmin(UserId))
                    {
                        Group.TakeAdmin(UserId);
                    }

                    Room Room;

                    if (!ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
                    {
                        return;
                    }

                    RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id);
                    if (User != null)
                    {
                        User.RemoveStatus("flatctrl 1");
                        User.UpdateNeeded = true;

                        if (User.GetClient() != null)
                        {
                            User.GetClient().SendPacket(new YouAreControllerComposer(0));
                        }
                    }
                }

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("DELETE FROM `group_memberships` WHERE `group_id` = @GroupId AND `user_id` = @UserId");
                    dbClient.AddParameter("GroupId", GroupId);
                    dbClient.AddParameter("UserId", UserId);
                    dbClient.RunQuery();
                }

                Session.SendPacket(new GroupInfoComposer(Group, Session));
                if (Session.GetHabbo().FavouriteGroupId == GroupId)
                {
                    Session.GetHabbo().FavouriteGroupId = 0;
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        dbClient.SetQuery("UPDATE `user_stats` SET `groupid` = '0' WHERE `id` = @userId LIMIT 1");
                        dbClient.AddParameter("userId", UserId);
                        dbClient.RunQuery();
                    }

                    if (Group.AdminOnlyDeco == 0)
                    {
                        Room Room;
                        if (!ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
                        {
                            return;
                        }

                        RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id);
                        if (User != null)
                        {
                            User.RemoveStatus("flatctrl 1");
                            User.UpdateNeeded = true;

                            if (User.GetClient() != null)
                            {
                                User.GetClient().SendPacket(new YouAreControllerComposer(0));
                            }
                        }
                    }

                    if (Session.GetHabbo().InRoom&& Session.GetHabbo().CurrentRoom != null)
                    {
                        RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id);
                        if (User != null)
                        {
                            Session.GetHabbo().CurrentRoom.SendPacket(new UpdateFavouriteGroupComposer(Group, User.VirtualId));
                        }
                        Session.GetHabbo().CurrentRoom.SendPacket(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id));
                    }
                    else
                    {
                        Session.SendPacket(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id));
                    }
                }
                return;
            }
            else
            {
                if (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id))
                {
                    if (!Group.IsMember(UserId))
                    {
                        return;
                    }

                    if (Group.IsAdmin(UserId) && Group.CreatorId != Session.GetHabbo().Id)
                    {
                        Session.SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("notif.groupremoveuser.error", Session.Langue));
                        return;
                    }

                    if (Group.IsAdmin(UserId))
                    {
                        Group.TakeAdmin(UserId);
                    }

                    if (Group.IsMember(UserId))
                    {
                        Group.DeleteMember(UserId);
                    }

                    Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId);
                    Habbo.MyGroups.Remove(Group.Id);

                    int StartIndex = (1 - 1) * 14 + 14;

                    List <Habbo> Members   = new List <Habbo>();
                    List <int>   MemberIds = Group.GetMembers.Skip(StartIndex).Take(14).ToList();
                    foreach (int Id in MemberIds.ToList())
                    {
                        Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id);
                        if (GroupMember == null)
                        {
                            continue;
                        }

                        if (!Members.Contains(GroupMember))
                        {
                            Members.Add(GroupMember);
                        }
                    }

                    int FinishIndex  = 14 < Members.Count ? 14 : Members.Count;
                    int MembersCount = Group.GetMembers.Count;

                    Session.SendPacket(new GroupMembersComposer(Group, Members.Take(FinishIndex).ToList(), MembersCount, 1, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), 0, ""));
                }
            }
        }
コード例 #11
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int Id = Packet.PopInt();

            GameClient Client = ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(Id);

            if (Client == null || Client.GetHabbo() == null)
            {
                ServerPacket ResponseOff = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer);
                ResponseOff.WriteInteger(Id);
                ResponseOff.WriteInteger(0);
                Session.SendPacket(ResponseOff);
                return;
            }

            Habbo habbo = Client.GetHabbo();

            if (habbo == null || habbo.GetMessenger() == null)
            {
                ServerPacket ResponseOff = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer);
                ResponseOff.WriteInteger(Id);
                ResponseOff.WriteInteger(0);
                Session.SendPacket(ResponseOff);
                return;
            }

            Dictionary <int, Relationship> Loves = habbo.GetMessenger().relation.Where(x => x.Value.Type == 1).ToDictionary(item => item.Key, item => item.Value);
            Dictionary <int, Relationship> Likes = habbo.GetMessenger().relation.Where(x => x.Value.Type == 2).ToDictionary(item => item.Key, item => item.Value);
            Dictionary <int, Relationship> Hates = habbo.GetMessenger().relation.Where(x => x.Value.Type == 3).ToDictionary(item => item.Key, item => item.Value);
            int Nbrela = 0;

            if (Loves.Count > 0)
            {
                Nbrela++;
            }
            if (Likes.Count > 0)
            {
                Nbrela++;
            }
            if (Hates.Count > 0)
            {
                Nbrela++;
            }

            ServerPacket Response = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer);

            Response.WriteInteger(habbo.Id);
            Response.WriteInteger(Nbrela); // Count //Habbo.Relationships.Count

            if (Loves.Count > 0)
            {
                //Loves
                Response.WriteInteger(1);           //type
                Response.WriteInteger(Loves.Count); //Total personne love

                Random randlove   = new Random();
                int    useridlove = Loves.ElementAt(randlove.Next(0, Loves.Count)).Value.UserId; //Loves[randlove.Next(Loves.Count)].UserId;
                Habbo  HHablove   = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridlove));
                Response.WriteInteger(useridlove);                                               // UserId
                Response.WriteString((HHablove == null) ? "" : HHablove.Username);
                Response.WriteString((HHablove == null) ? "" : HHablove.Look);                   // look
            }
            if (Likes.Count > 0)
            {
                //Likes
                Response.WriteInteger(2);           //type
                Response.WriteInteger(Likes.Count); //Total personne Like

                Random randLikes   = new Random();
                int    useridLikes = Likes.ElementAt(randLikes.Next(0, Likes.Count)).Value.UserId; //Likes[randLikes.Next(Likes.Count)].UserId;
                Habbo  HHabLikes   = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridLikes));
                Response.WriteInteger(useridLikes);                                                // UserId
                Response.WriteString((HHabLikes == null) ? "" : HHabLikes.Username);
                Response.WriteString((HHabLikes == null) ? "" : HHabLikes.Look);                   // look
            }
            if (Hates.Count > 0)
            {
                //Hates
                Response.WriteInteger(3);           //type
                Response.WriteInteger(Hates.Count); //Total personne hates

                Random randHates   = new Random();
                int    useridHates = Hates.ElementAt(randHates.Next(0, Hates.Count)).Value.UserId; //Hates[randHates.Next(Hates.Count)].UserId;
                Habbo  HHabHates   = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridHates));
                Response.WriteInteger(useridHates);                                                // UserId
                Response.WriteString((HHabHates == null) ? "" : HHabHates.Username);
                Response.WriteString((HHabHates == null) ? "" : HHabHates.Look);                   // look
            }
            Session.SendPacket(Response);
        }
コード例 #12
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session == null || Session.GetHabbo() == null)
            {
                return;
            }

            int    GroupId     = Packet.PopInt();
            int    Page        = Packet.PopInt();
            string SearchVal   = Packet.PopString();
            int    RequestType = Packet.PopInt();

            Group Group = null;

            if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            int          StartIndex  = (Page - 1) * 14 + 14;
            List <Habbo> Members     = new List <Habbo>();
            int          MemberCount = 0;

            switch (RequestType)
            {
            case 0:
                MemberCount = Group.GetAllMembers.Count();
                List <int> MemberIds = null;
                if (!string.IsNullOrEmpty(SearchVal))
                {
                    MemberIds = this.GetSearchMembres(Group.Id, SearchVal);
                }
                else
                {
                    MemberIds = Group.GetAllMembers.Skip(StartIndex).Take(14).ToList();
                }

                foreach (int Id in MemberIds.ToList())
                {
                    Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id);
                    if (GroupMember == null)
                    {
                        continue;
                    }

                    if (!Members.Contains(GroupMember))
                    {
                        Members.Add(GroupMember);
                    }
                }
                break;

            case 1:
                MemberCount = Group.GetAdministrators.Count();
                List <int> AdminIds = null;
                if (!string.IsNullOrEmpty(SearchVal))
                {
                    AdminIds = this.GetSearchAdmins(Group.Id, SearchVal);
                }
                else
                {
                    AdminIds = Group.GetAdministrators.Skip(StartIndex).Take(14).ToList();
                }

                foreach (int User in AdminIds.ToList())
                {
                    Habbo GroupMember = ButterflyEnvironment.GetHabboById(User);
                    if (GroupMember == null)
                    {
                        continue;
                    }

                    if (!Members.Contains(GroupMember))
                    {
                        Members.Add(GroupMember);
                    }
                }
                break;

            case 2:
                MemberCount = Group.GetRequests.Count();
                List <int> RequestIds = null;
                if (!string.IsNullOrEmpty(SearchVal))
                {
                    RequestIds = this.GetSearchRequests(Group.Id, SearchVal);
                }
                else
                {
                    RequestIds = Group.GetRequests.Skip(StartIndex).Take(14).ToList();
                }

                foreach (int Id in RequestIds.ToList())
                {
                    Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id);
                    if (GroupMember == null)
                    {
                        continue;
                    }

                    if (!Members.Contains(GroupMember))
                    {
                        Members.Add(GroupMember);
                    }
                }
                break;
            }

            //if (!string.IsNullOrEmpty(SearchVal))
            //{
            //Members = Members.Where(x => x.Username.StartsWith(SearchVal)).ToList();
            //}

            Session.SendPacket(new GroupMembersComposer(Group, Members.ToList(), MemberCount, Page, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), RequestType, SearchVal));
        }
コード例 #13
0
        public static void GenerateExtradata(Item Item, ServerPacket Message)
        {
            switch (Item.GetBaseItem().InteractionType)
            {
            default:
                Message.WriteInteger(1);
                Message.WriteInteger(0);
                Message.WriteString((Item.GetBaseItem().InteractionType != InteractionType.TONER && Item.GetBaseItem().InteractionType != InteractionType.fbgate) ? Item.ExtraData : string.Empty);
                break;

            case InteractionType.WALLPAPER:
                Message.WriteInteger(2);
                Message.WriteInteger(0);
                Message.WriteString(Item.ExtraData);

                break;

            case InteractionType.FLOOR:
                Message.WriteInteger(3);
                Message.WriteInteger(0);
                Message.WriteString(Item.ExtraData);
                break;

            case InteractionType.LANDSCAPE:
                Message.WriteInteger(4);
                Message.WriteInteger(0);
                Message.WriteString(Item.ExtraData);
                break;

            case InteractionType.GUILD_ITEM:
            case InteractionType.GUILD_GATE:
                Group Group = null;
                if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(Item.GroupId, out Group))
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(0);
                    Message.WriteString(Item.ExtraData);
                }
                else
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(2);
                    Message.WriteInteger(5);
                    Message.WriteString(Item.ExtraData.Split(new char[1] {
                        ';'
                    })[0]);
                    Message.WriteString(Group.Id.ToString());
                    Message.WriteString(Group.Badge);
                    Message.WriteString(ButterflyEnvironment.GetGame().GetGroupManager().GetColourCode(Group.Colour1, true));
                    Message.WriteString(ButterflyEnvironment.GetGame().GetGroupManager().GetColourCode(Group.Colour2, false));
                }
                break;

            case InteractionType.highscore:
            case InteractionType.highscorepoints:
                Message.WriteInteger(0);

                Message.WriteInteger(6);     //Type

                Message.WriteString(Item.ExtraData);
                Message.WriteInteger(2);     //Type de victoire
                Message.WriteInteger(0);     //Type de duré


                Message.WriteInteger((Item.Scores.Count > 20) ? 20 : Item.Scores.Count);     //count

                foreach (KeyValuePair <string, int> score in Item.Scores.OrderByDescending(x => x.Value).Take(20))
                {
                    Message.WriteInteger(score.Value); //score
                    Message.WriteInteger(1);           //(score.Key.Count); //count
                    //foreach(string UsernameScore in score.Key)
                    //Message.AppendString(UsernameScore);
                    Message.WriteString(score.Key);
                }
                break;

            case InteractionType.LOVELOCK:
                if (Item.ExtraData.Contains(Convert.ToChar(5).ToString()))
                {
                    string[] EData = Item.ExtraData.Split((char)5);
                    int      I     = 0;
                    Message.WriteInteger(0);
                    Message.WriteInteger(2);
                    Message.WriteInteger(EData.Length);
                    while (I < EData.Length)
                    {
                        Message.WriteString(EData[I]);
                        I++;
                    }
                }
                else
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(0);
                    Message.WriteString("0");
                }
                break;

            case InteractionType.crackable:
                Message.WriteInteger(0);

                Message.WriteInteger(7);     //Type

                int NombreClick = 0;
                int.TryParse(Item.ExtraData, out NombreClick);

                Message.WriteString(Item.ExtraData);
                Message.WriteInteger(NombreClick);                  //Nombre de click
                Message.WriteInteger(Item.GetBaseItem().Modes - 1); //Type de duré
                break;

            case InteractionType.adsbackground:
                if (!String.IsNullOrEmpty(Item.ExtraData))
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(1);

                    string ExtraDatabackground = "state" + Convert.ToChar(9) + "0" + Convert.ToChar(9) + Item.ExtraData;

                    ExtraDatabackground = ExtraDatabackground.Replace('=', Convert.ToChar(9));
                    Message.WriteInteger(ExtraDatabackground.Split(Convert.ToChar(9)).Length / 2);

                    for (int i = 0; i <= ExtraDatabackground.Split(Convert.ToChar(9)).Length - 1; i++)
                    {
                        string Data = ExtraDatabackground.Split(Convert.ToChar(9))[i];
                        Message.WriteString(Data);
                    }
                }
                else
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(0);
                    Message.WriteString("");
                }
                break;

            case InteractionType.EXTRABOX:
            {
                Message.WriteInteger(0);
                Message.WriteInteger(1);
                Message.WriteInteger(4);
                Message.WriteString("MESSAGE");
                Message.WriteString("Bravo tu as reçu une ExtraBox ! Ouvre-là pour y découvrir ton lot");
                Message.WriteString("PURCHASER_NAME");
                Message.WriteString("Wibbo");
                Message.WriteString("PRODUCT_CODE");
                Message.WriteString("A1 KUMIANKKA");
                Message.WriteString("PURCHASER_FIGURE");
                Message.WriteString("");
            }
            break;

            case InteractionType.BADGEBOX:
            {
                Message.WriteInteger(0);
                Message.WriteInteger(1);
                Message.WriteInteger(4);
                Message.WriteString("MESSAGE");
                Message.WriteString("Bravo tu as reçu une BadgeBox ! Ouvre-là pour y découvrir ton lot");
                Message.WriteString("PURCHASER_NAME");
                Message.WriteString("Wibbo");
                Message.WriteString("PRODUCT_CODE");
                Message.WriteString("A1 KUMIANKKA");
                Message.WriteString("PURCHASER_FIGURE");
                Message.WriteString("");
            }
            break;

            case InteractionType.LEGENDBOX:
            {
                Message.WriteInteger(0);
                Message.WriteInteger(1);
                Message.WriteInteger(4);
                Message.WriteString("MESSAGE");
                Message.WriteString("Bravo tu as reçu une magnifique LegendBox ! Ouvre-là pour y décrouvrir tes lots !");
                Message.WriteString("PURCHASER_NAME");
                Message.WriteString("Wibbo");
                Message.WriteString("PRODUCT_CODE");
                Message.WriteString("A1 KUMIANKKA");
                Message.WriteString("PURCHASER_FIGURE");
                Message.WriteString("");
            }
            break;

            case InteractionType.GIFT:
            {
                if (!Item.ExtraData.Contains(Convert.ToChar(5).ToString()))
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(0);
                    Message.WriteString(Item.ExtraData);
                }
                else
                {
                    string[] ExtraData = Item.ExtraData.Split(Convert.ToChar(5));
                    int      Style     = int.Parse(Item.ExtraData.Split(new char[1] {
                            '\x0005'
                        })[1]) * 1000 + int.Parse(Item.ExtraData.Split(new char[1] {
                            '\x0005'
                        })[2]);

                    Habbo Purchaser = ButterflyEnvironment.GetHabboById(int.Parse(Item.ExtraData.Split(new char[1] {
                            ';'
                        })[0]));
                    Message.WriteInteger(0);
                    Message.WriteInteger(1);
                    Message.WriteInteger(6);
                    Message.WriteString("EXTRA_PARAM");
                    Message.WriteString("");
                    Message.WriteString("MESSAGE");
                    Message.WriteString(Item.ExtraData.Split(new char[1] {
                            ';'
                        })[1].Split(new char[1] {
                            '\x0005'
                        })[0]);
                    Message.WriteString("PURCHASER_NAME");
                    Message.WriteString(Purchaser == null ? "" : Purchaser.Username);
                    Message.WriteString("PURCHASER_FIGURE");
                    Message.WriteString(Purchaser == null ? "" : Purchaser.Look);
                    Message.WriteString("PRODUCT_CODE");
                    Message.WriteString("A1 KUMIANKKA");
                    Message.WriteString("state");
                    Message.WriteString(Style.ToString());
                }
            }
            break;

            case InteractionType.MANNEQUIN:
                Message.WriteInteger(0);
                Message.WriteInteger(1);
                Message.WriteInteger(3);
                if (Item.ExtraData.Contains(";"))
                {
                    string[] Stuff = Item.ExtraData.Split(new char[1] {
                        ';'
                    });
                    Message.WriteString("GENDER");
                    Message.WriteString(Stuff[0].ToUpper() == "M" ? "M" : "F");
                    Message.WriteString("FIGURE");
                    Message.WriteString(Stuff[1]);
                    Message.WriteString("OUTFIT_NAME");
                    Message.WriteString(Stuff[2]);
                }
                else
                {
                    Message.WriteString("GENDER");
                    Message.WriteString("M");
                    Message.WriteString("FIGURE");
                    Message.WriteString("");
                    Message.WriteString("OUTFIT_NAME");
                    Message.WriteString("");
                }
                break;

            case InteractionType.TONER:
                if (Item.ExtraData.Contains(","))
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(5);
                    Message.WriteInteger(4);
                    Message.WriteInteger(Item.ExtraData.StartsWith("on") ? 1 : 0);
                    Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] {
                        ','
                    })[1]));
                    Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] {
                        ','
                    })[2]));
                    Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] {
                        ','
                    })[3]));
                }
                else
                {
                    Message.WriteInteger(0);
                    Message.WriteInteger(0);
                    Message.WriteString(string.Empty);
                }
                break;

            case InteractionType.BADGE_DISPLAY:
            case InteractionType.BADGE_TROC:
                Message.WriteInteger(0);
                Message.WriteInteger(2);
                Message.WriteInteger(4);

                if (Item.ExtraData.Contains(Convert.ToChar(9).ToString()))
                {
                    string[] BadgeData = Item.ExtraData.Split(Convert.ToChar(9));

                    Message.WriteString("0");          //No idea
                    Message.WriteString(BadgeData[0]); //Badge name
                    Message.WriteString(BadgeData[1]); //Owner
                    Message.WriteString(BadgeData[2]); //Date
                }
                else
                {
                    Message.WriteString("0");            //No idea
                    Message.WriteString(Item.ExtraData); //Badge name
                    Message.WriteString("");             //Owner
                    Message.WriteString("");             //Date
                }
                break;

            case InteractionType.tvyoutube:
                Message.WriteInteger(0);
                Message.WriteInteger(1);
                Message.WriteInteger(2);
                Message.WriteString("THUMBNAIL_URL");
                Message.WriteString((string.IsNullOrEmpty(Item.ExtraData)) ? "" : "https://cdn.wibbo.me/youtubethumbnail.php?videoid=" + Item.ExtraData);     //"https://i1.ytimg.com/vi/" + Item.ExtraData + "/default.jpg")
                Message.WriteString("VideoId");
                Message.WriteString(Item.ExtraData);
                break;
            }
        }