public ProfileInformationComposer(Habbo Data, GameClient Session, List<Group> Groups, int friendCount) : base(ServerPacketHeader.ProfileInformationMessageComposer) { DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Data.AccountCreated); base.WriteInteger(Data.Id); base.WriteString(Data.Username); base.WriteString(Data.Look); base.WriteString(Data.Motto); base.WriteString(origin.ToString("dd/MM/yyyy")); base.WriteInteger(Data.GetStats().AchievementPoints); base.WriteInteger(friendCount); // Friend Count base.WriteBoolean(Data.Id != Session.GetHabbo().Id && Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id)); // Is friend base.WriteBoolean(Data.Id != Session.GetHabbo().Id && !Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id) && Session.GetHabbo().GetMessenger().RequestExists(Data.Id)); // Sent friend request base.WriteBoolean((PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Data.Id)) != null); base.WriteInteger(Groups.Count); foreach (Group Group in Groups) { base.WriteInteger(Group.Id); base.WriteString(Group.Name); base.WriteString(Group.Badge); base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour1, true)); base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour2, false)); base.WriteBoolean(Data.GetStats().FavouriteGroupId == Group.Id); // todo favs base.WriteInteger(0);//what the f**k base.WriteBoolean(Group != null ? Group.ForumEnabled : true);//HabboTalk } base.WriteInteger(Convert.ToInt32(PlusEnvironment.GetUnixTimestamp() - Data.LastOnline)); // Last online base.WriteBoolean(true); // Show the profile }
public PetInformationComposer(Habbo Habbo) : base(ServerPacketHeader.PetInformationMessageComposer) { base.WriteInteger(Habbo.Id); base.WriteString(Habbo.Username); base.WriteInteger(Habbo.Rank); base.WriteInteger(10); base.WriteInteger(0); base.WriteInteger(0); base.WriteInteger(100); base.WriteInteger(100); base.WriteInteger(100); base.WriteInteger(100); base.WriteInteger(Habbo.GetStats().Respect); base.WriteInteger(Habbo.Id); base.WriteInteger(Convert.ToInt32(Math.Floor((PlusEnvironment.GetUnixTimestamp() - Habbo.AccountCreated) / 86400)));//How? base.WriteString(Habbo.Username); base.WriteInteger(1);//3 on hab base.WriteBoolean(false); base.WriteBoolean(false); base.WriteInteger(0);//5 on hab base.WriteInteger(0); // Anyone can ride horse base.WriteInteger(0); base.WriteInteger(0);//512 on hab base.WriteInteger(0);//1536 base.WriteInteger(0);//2560 base.WriteInteger(0);//3584 base.WriteInteger(0); base.WriteString(""); base.WriteBoolean(false); base.WriteInteger(-1);//255 on hab base.WriteInteger(-1); base.WriteInteger(-1); base.WriteBoolean(false); }
public UserObjectComposer(Habbo Habbo) : base(ServerPacketHeader.UserObjectMessageComposer) { base.WriteInteger(Habbo.Id); base.WriteString(Habbo.Username); base.WriteString(Habbo.Look); base.WriteString(Habbo.Gender.ToUpper()); base.WriteString(Habbo.Motto); base.WriteString(""); base.WriteBoolean(false); base.WriteInteger(Habbo.GetStats().Respect); base.WriteInteger(Habbo.GetStats().DailyRespectPoints); base.WriteInteger(Habbo.GetStats().DailyPetRespectPoints); base.WriteBoolean(false); // Friends stream active base.WriteString(Habbo.LastOnline.ToString()); // last online? base.WriteBoolean(Habbo.ChangingName); // Can change name base.WriteBoolean(false); }
public bool TryAuthenticate(string AuthTicket) { try { byte errorCode = 0; UserData userData = UserDataFactory.GetUserData(AuthTicket, out errorCode); if (errorCode == 1 || errorCode == 2) { Disconnect(); return false; } #region Ban Checking //Let's have a quick search for a ban before we successfully authenticate.. ModerationBan BanRecord = null; if (!string.IsNullOrEmpty(MachineId)) { if (PlusEnvironment.GetGame().GetModerationManager().IsBanned(MachineId, out BanRecord)) { if (PlusEnvironment.GetGame().GetModerationManager().MachineBanCheck(MachineId)) { Disconnect(); return false; } } } if (userData.user != null) { //Now let us check for a username ban record.. BanRecord = null; if (PlusEnvironment.GetGame().GetModerationManager().IsBanned(userData.user.Username, out BanRecord)) { if (PlusEnvironment.GetGame().GetModerationManager().UsernameBanCheck(userData.user.Username)) { Disconnect(); return false; } } } #endregion PlusEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.userID, userData.user.Username); _habbo = userData.user; if (_habbo != null) { userData.user.Init(this, userData); SendMessage(new AuthenticationOKComposer()); SendMessage(new AvatarEffectsComposer(_habbo.Effects().GetAllEffects)); //FurniListNotification -> why? SendMessage(new NavigatorSettingsComposer(_habbo.HomeRoom)); SendMessage(new FavouritesComposer(userData.user.FavoriteRooms)); SendMessage(new FigureSetIdsComposer(_habbo.GetClothing().GetClothingAllParts)); //1984 //2102 SendMessage(new UserRightsComposer(_habbo.Rank)); SendMessage(new AvailabilityStatusComposer()); //1044 SendMessage(new AchievementScoreComposer(_habbo.GetStats().AchievementPoints)); //3674 //3437 SendMessage(new BuildersClubMembershipComposer()); SendMessage(new CfhTopicsInitComposer()); SendMessage(new BadgeDefinitionsComposer(PlusEnvironment.GetGame().GetAchievementManager()._achievements)); SendMessage(new SoundSettingsComposer(_habbo.ClientVolume, _habbo.ChatPreference, _habbo.AllowMessengerInvites, _habbo.FocusPreference, FriendBarStateUtility.GetInt(_habbo.FriendbarState))); //SendMessage(new TalentTrackLevelComposer()); if (!string.IsNullOrEmpty(MachineId)) { if (this._habbo.MachineId != MachineId) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `machine_id` = @MachineId WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("MachineId", MachineId); dbClient.AddParameter("id", _habbo.Id); dbClient.RunQuery(); } } _habbo.MachineId = MachineId; } PermissionGroup PermissionGroup = null; if (PlusEnvironment.GetGame().GetPermissionManager().TryGetGroup(_habbo.Rank, out PermissionGroup)) { if (!String.IsNullOrEmpty(PermissionGroup.Badge)) if (!_habbo.GetBadgeComponent().HasBadge(PermissionGroup.Badge)) _habbo.GetBadgeComponent().GiveBadge(PermissionGroup.Badge, true, this); } SubscriptionData SubData = null; if (PlusEnvironment.GetGame().GetSubscriptionManager().TryGetSubscriptionData(this._habbo.VIPRank, out SubData)) { if (!String.IsNullOrEmpty(SubData.Badge)) { if (!_habbo.GetBadgeComponent().HasBadge(SubData.Badge)) _habbo.GetBadgeComponent().GiveBadge(SubData.Badge, true, this); } } if (!PlusEnvironment.GetGame().GetCacheManager().ContainsUser(_habbo.Id)) PlusEnvironment.GetGame().GetCacheManager().GenerateUser(_habbo.Id); _habbo.InitProcess(); if (userData.user.GetPermissions().HasRight("mod_tickets")) { SendMessage(new ModeratorInitComposer( PlusEnvironment.GetGame().GetModerationManager().UserMessagePresets, PlusEnvironment.GetGame().GetModerationManager().RoomMessagePresets, PlusEnvironment.GetGame().GetModerationManager().UserActionPresets, PlusEnvironment.GetGame().GetModerationTool().GetTickets)); } if (!string.IsNullOrWhiteSpace(PlusEnvironment.GetDBConfig().DBData["welcome_message"])) SendMessage(new MOTDNotificationComposer(PlusEnvironment.GetDBConfig().DBData["welcome_message"])); PlusEnvironment.GetGame().GetRewardManager().CheckRewards(this); return true; } } catch (Exception e) { Logging.LogCriticalException("Bug during user login: " + e); } return false; }