Beispiel #1
0
        internal void ModMuteUser()
        {
            if (!Session.GetHabbo().HasFuse("fuse_mute"))
            {
                return;
            }

            var UserId      = Request.PopWiredUInt();
            var Message     = Request.PopFixedString();
            var MuteMinutes = Request.PopWiredInt32();
            // 2 str: 1,2

            Habbo TargetHabbo = UsersCache.getHabboCache(UserId);

            if (TargetHabbo == null)
            {
                return;
            }

            if (MuteMinutes == 34)
            {
                MuteMinutes = 60;
            }

            ModerationTool.MuteUser(Session, TargetHabbo, MuteMinutes, Message);
        }
Beispiel #2
0
        internal static ServerMessage SerializeRoomTool(UInt32 RoomId)
        {
            var Room = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(RoomId);

            if (Room == null || Room.RoomData == null)
            {
                return(null);
            }

            Habbo Owner = UsersCache.getHabboCache(Room.RoomData.OwnerId);

            var Message = new ServerMessage(Outgoing.RoomTool);

            Message.AppendUInt(RoomId);                                               // flatId
            Message.AppendInt32(Room.RoomData.UsersNow);                              // userCount
            Message.AppendBoolean(Owner == null ? false : Owner.CurrentRoom == Room); // ownerInRoom
            Message.AppendUInt(Room.RoomData.OwnerId);                                // ownerId
            Message.AppendString(Room.RoomData.Owner);                                // ownerName
            Message.AppendBoolean(Room != null);                                      // show data?
            if (Room != null)
            {
                Message.AppendString(Room.RoomData.Name);        // roomName
                Message.AppendString(Room.RoomData.Description); // roomDesc
                Message.AppendInt32(Room.RoomData.Tags.Count);   // tagsCount

                foreach (var Tag in Room.RoomData.Tags)          // tags
                {
                    Message.AppendString(Tag);
                }
            }

            return(Message);
        }
Beispiel #3
0
        internal static ServerMessage SerializeRoomVisits(UInt32 UserId)
        {
            Habbo User = UsersCache.getHabboCache(UserId);

            ServerMessage Message = new ServerMessage(Outgoing.RoomsVisits);

            Message.AppendUInt(UserId);
            Message.AppendString(UsersCache.getUsernameById(UserId));
            if (User == null)
            {
                Message.AppendInt32(0);
            }
            else
            {
                Message.AppendInt32(User.RoomsVisited.Count);
                foreach (RoomVisits Room in User.RoomsVisited)
                {
                    // Message.AppendBoolean(Room.IsPublic);
                    Message.AppendUInt(Room.RoomId);
                    Message.AppendString(Room.RoomName);
                    Message.AppendInt32(Room.Hour);
                    Message.AppendInt32(Room.Minute);
                }
            }
            return(Message);
        }
Beispiel #4
0
        internal void GetGroupUsersPage(int PageCount, ServerMessage Message)
        {
            List <GroupUser> users = new List <GroupUser>();

            DataTable dTable = null;

            using (var dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT userid, rank, joined FROM groups_users WHERE groupid = '" + Id + "' ORDER BY rank ASC LIMIT " + (PageCount * 14) + ", 14");
                dTable = dbClient.getTable();
            }

            Message.AppendInt32(dTable.Rows.Count);
            foreach (DataRow dRow in dTable.Rows)
            {
                var zUser = UsersCache.getHabboCache(Convert.ToUInt32(dRow["userid"]));
                if (zUser == null)
                {
                    Message.AppendInt32(2);
                    Message.AppendInt32(0);
                    Message.AppendString("BUGUED");
                    Message.AppendString("");
                    Message.AppendString(""); // Se ha unido el.

                    continue;
                }

                Message.AppendInt32((int)dRow["rank"]);
                Message.AppendInt32((int)dRow["userid"]);
                Message.AppendString(zUser.Username);
                Message.AppendString(zUser.Look);
                Message.AppendString((string)dRow["joined"]); // Se ha unido el.
            }
        }
        public void Get()
        {
            // Arrange
            long accountId = 1;

            var fakeNowProvider = new FakeNowProvider();

            fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0);

            ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator();
            var account      = new Account(accountId, "ashley", "*****@*****.**", "beans");
            var timeWarpUser = new TimeWarpUser(account, calc);

            var usersCache = new UsersCache(new[] { timeWarpUser });

            var controller = new UserStateController(usersCache, fakeNowProvider, new FakeTimeWarpStatePersistence());

            //act
            fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5);
            var result = controller.Get(accountId);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(accountId, result.AccountId);
            Assert.AreEqual(Public.Models.v001.TimeWarpState.None, result.State);
        }
Beispiel #6
0
        private void GenerateMessage(int UsersCount)
        {
            Message = new ServerMessage(Outgoing.CommunityGoalHallOfFame);
            Message.AppendString(EventName); // landing.view.competition.hof." + x + ".rankdesc.X
            Message.AppendInt32(UsersCount);
            for (int i = 0; i < UsersCount; i++)
            {
                uint UserId = TopUsers[i];
                if (UserId == 0)
                {
                    break;
                }

                Habbo User = UsersCache.getHabboCache(UserId);
                if (User == null)
                {
                    break;
                }

                Message.AppendUInt(User.Id);
                Message.AppendString(User.Username);
                Message.AppendString(User.Look);
                Message.AppendInt32(i);                  // rank
                Message.AppendUInt(User.CoinsPurchased); // piruletas
            }
        }
Beispiel #7
0
 public LobbyServices(IUsersStore usersStore, GameBuildersCache gameBuildersCache, UsersCache usersCache, Func <User, string, Player> playerResolver)
 {
     _gameBuildersCache = gameBuildersCache;
     _usersStore        = usersStore;
     _usersCache        = usersCache;
     _playerResolver    = playerResolver;
 }
Beispiel #8
0
 public override bool IsEmpty()
 {
     lock (UsersCache)
     {
         return(UsersCache.All(x => x.Value.IsNull()));
     }
 }
Beispiel #9
0
        internal void Serialize(ServerMessage Request)
        {
            Request.AppendUInt(FromUser);
            Request.AppendString(mUsername);
            var user = UsersCache.getHabboCache(mUsername);

            try { Request.AppendString((user != null) ? user.Look : ""); } catch { Request.AppendString(""); }
        }
        public async Task Invoke(HttpContext context)
        {
            var taskUpdateFilter = UsersCache.UpdateUsersAndRoles();

            DetectLanguage(context.Request);

            await taskUpdateFilter;
            await _next.Invoke(context);
        }
Beispiel #11
0
 public VueLobbyInfo GetVueLobbyInfo()
 {
     return(new VueLobbyInfo()
     {
         Id = Id,
         IsPrivate = LobbyInfo.IsPrivate,
         Name = LobbyInfo.Name,
         PlayersCount = UsersCache.Count(x => x.Value.IsNotNull())
     });
 }
        public void EndSession()
        {
            object ob = GetCurrentUserId();

            if (ob != null && UsersCache.ContainsKey(ob))
            {
                UsersCache.Remove(ob);
            }
            HttpContext.Current.Session.Remove("UserId");
        }
Beispiel #13
0
        internal void LoadLast()
        {
            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT owner_id, date_created FROM groups_forums_boards WHERE groupid = '" + GroupId + "' AND sub_post_id = '" + this.Id + "' OR id = '" + this.Id + "' ORDER BY id DESC LIMIT 1");
                DataRow dRow = dbClient.getRow();

                if (dRow != null)
                {
                    this.LastOwnerId   = Convert.ToUInt32(dRow["owner_id"]);
                    this.LastOwnerName = UsersCache.getUsernameById(this.LastOwnerId);
                    this.LastUnix      = Convert.ToDouble(dRow["date_created"]);
                }
            }
        }
Beispiel #14
0
        internal void Serialize(ServerMessage Message)
        {
            Habbo user = UsersCache.getHabboCache(this.ReportedId);

            Message.AppendInt32(1);                                     // length
            Message.AppendInt32(3);                                     // type: Bully
            Message.AppendInt32((DateTime.Now - startedTimer).Seconds); // timer sec
            Message.AppendBoolean(user == null);                        // false = usuario, true = null
            if (user != null)
            {
                Message.AppendString(user.Username);
                Message.AppendString(user.Look);
                Message.AppendString((user.CurrentRoom == null) ? "" : user.CurrentRoom.RoomData.Name);
            }
        }
Beispiel #15
0
        public void CreateNewAccountTest()
        {
            var accountsCache  = new AccountsCache(Enumerable.Empty <Account>());
            var userStateCache = new UsersCache(Enumerable.Empty <TimeWarpUser>());
            var persistence    = new FakeEntityPersistence <Account>();
            var calc           = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator();
            AccountController accountController = new AccountController(accountsCache, persistence, userStateCache, calc);

            var result = accountController.Post("new user", "eamil@sdaisd", "newPassword");

            var stored = persistence.SavedItems.Single();

            Assert.AreEqual(0, result);
            Assert.AreEqual("new user", stored.Name);
            Assert.AreEqual("eamil@sdaisd", stored.Email);
        }
Beispiel #16
0
        public EntityService()
        {
            _dialogsCache = new DialogsCache();
            _friendsCache = new FriendsCache();
            _usersCache = new UsersCache();
            _imageCache = new ImageCache();
            _messagesCache = new MessagesCache();

            Dialogs = new ObservableCollection<Dialog>();
            Contacts = new ObservableCollection<PhoneContact>();
            Friends = new ObservableCollection<FriendViewModel>();
            FriendsRequests = new ObservableCollection<FriendViewModel>();
            FriendsMutual = new ObservableCollection<FriendViewModel>();
            AttachmentPhotos = new Dictionary<string, Stream>();
            OtherUsers = new ObservableCollection<UserInfo>();

            IsLoadingMessagesHistory = false;

            _settings = new Settings(new ProtectDataAdapter());

            _stateCounter = new StateCounter(0, new List<int>());

            DefaultAvatar = ResourceHelper.GetBitmap(@"/SlXnaApp1;component/Images/Photo_Placeholder.png");
            CurrentUser = new CurrentUserInfo(null, DefaultAvatar);

            App.Current.UpdatesService.UserBecomeOffline += UpdatesService_UserBecomeOffline;
            App.Current.UpdatesService.UserBecomeOnline += UpdatesService_UserBecomeOnline;
            App.Current.UpdatesService.MessageAdded += UpdatesService_MessageAdded;
            App.Current.UpdatesService.MessageDeleted += UpdatesService_MessageDeleted;
            App.Current.UpdatesService.MessageFlagsChanged += UpdatesService_MessageFlagsChanged;
            App.Current.UpdatesService.MessageRemovedFlags += UpdatesService_MessageRemovedFlags;
            App.Current.UpdatesService.MessageSetFlags += UpdatesService_MessageSetFlags;
            App.Current.UpdatesService.ChatChanged += UpdatesService_ChatChanged;
            App.Current.UpdatesService.TypingInChatStarted += UpdatesService_TypingInChatStarted;
            App.Current.UpdatesService.TypingInGroupChatStarted += UpdatesService_TypingInGroupChatStarted;

            try
            {
                var info = App.GetResourceStream(new Uri("Resources/Untitled.wav", UriKind.Relative));
                _soundEffect = SoundEffect.FromStream(info.Stream);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Loading SoundEffect failed: " + ex.Message);
            }
        }
Beispiel #17
0
        internal static void FlushCache()
        {
            try
            {
                int usersCacheCount = UsersCache.ClearCache();
                ClientMessageFactory.flushCache();
                int totalRoomDataCount = OtanixEnvironment.GetGame().GetRoomManager().ClearRoomDataCache();
                int groups             = OtanixEnvironment.GetGame().GetGroup().ClearGroupsCache();

                OtanixEnvironment.GetGame().GetLandingTopUsersManager().Load();

                GC.Collect();
                GC.WaitForPendingFinalizers();

                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.WriteLine("[" + DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString() + "] finalizado " + usersCacheCount + " usuários, " + totalRoomDataCount + " quartos e " + groups + " grupos <" + integerClear + ">.");
                Console.ResetColor();
            }
            finally
            {
                integerClear = 0;
            }
        }
        public void Post()
        {
            // Arrange
            long accountId = 1;

            var fakeNowProvider = new FakeNowProvider();

            fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0);

            ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator();
            var account      = new Account(accountId, "ashley", "*****@*****.**", "beans");
            var timeWarpUser = new TimeWarpUser(account, calc);

            var usersCache = new UsersCache(new[] { timeWarpUser });

            var persistence = new FakeTimeWarpStatePersistence();


            var controller = new UserStateController(usersCache, fakeNowProvider, persistence);

            //act

            controller.Post(accountId, TimeWarpCommand.Rest);

            fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5);
            var result = controller.Get(accountId);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(accountId, result.AccountId);
            Assert.AreEqual(Public.Models.v001.TimeWarpState.Resting, result.State);
            Assert.AreEqual(TimeSpan.FromMilliseconds(095), result.TimeLeft);

            Assert.AreEqual(0.050000000000000044d, result.Progress);
            Assert.AreEqual(new DateTime(2000, 12, 12, 12, 12, 0, 0), result.PeriodStartTime);
        }
Beispiel #19
0
        internal override void OnUserSay(RoomUser User, string Message)
        {
            if (User == null || User.GetClient() == null)
            {
                return;
            }

            if (GetRoom() == null)
            {
                return;
            }

            if (GetRoom().RoomData.OwnerId == User.HabboId)
            {
                if (Message.ToLower().Equals(LanguageLocale.GetValue("bot.soplon.keyword")))
                {
                    StringBuilder botMessage = new StringBuilder();
                    if (GetBotData().SoplonLeaveRoom.Count > 0)
                    {
                        foreach (UInt32 HabboId in GetBotData().SoplonLeaveRoom)
                        {
                            string Username = UsersCache.getUsernameById(HabboId);
                            if (String.IsNullOrEmpty(Username))
                            {
                                continue;
                            }

                            if ((LanguageLocale.GetValue("bot.soplon.leave").Length + botMessage.Length + Username.Length) >= 100)
                            {
                                botMessage = botMessage.Remove(botMessage.Length - 2, 2);

                                ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk);
                                ChatMessage.AppendInt32(GetRoomUser().VirtualId);
                                ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.leave"));
                                ChatMessage.AppendInt32(0);
                                ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR);
                                ChatMessage.AppendInt32(0);
                                ChatMessage.AppendInt32(-1);
                                User.GetClient().SendMessage(ChatMessage);

                                botMessage.Clear();
                            }

                            botMessage.Append(Username + ", ");
                        }

                        if (botMessage.Length > 0)
                        {
                            botMessage = botMessage.Remove(botMessage.Length - 2, 2);

                            ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk);
                            ChatMessage.AppendInt32(GetRoomUser().VirtualId);
                            ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.leave"));
                            ChatMessage.AppendInt32(0);
                            ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR);
                            ChatMessage.AppendInt32(0);
                            ChatMessage.AppendInt32(-1);
                            User.GetClient().SendMessage(ChatMessage);

                            botMessage.Clear();
                        }

                        GetBotData().SoplonLeaveRoom.Clear();
                    }

                    if (GetBotData().SoplonOnRoom.Count > 0)
                    {
                        foreach (UInt32 HabboId in GetBotData().SoplonOnRoom)
                        {
                            string Username = UsersCache.getUsernameById(HabboId);
                            if (String.IsNullOrEmpty(Username))
                            {
                                continue;
                            }

                            if ((LanguageLocale.GetValue("bot.soplon.onroom").Length + botMessage.Length + Username.Length) >= 100)
                            {
                                botMessage = botMessage.Remove(botMessage.Length - 2, 2);

                                ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk);
                                ChatMessage.AppendInt32(GetRoomUser().VirtualId);
                                ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.onroom"));
                                ChatMessage.AppendInt32(0);
                                ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR);
                                ChatMessage.AppendInt32(0);
                                ChatMessage.AppendInt32(-1);
                                User.GetClient().SendMessage(ChatMessage);

                                botMessage.Clear();
                            }

                            botMessage.Append(Username + ", ");
                        }

                        if (botMessage.Length > 0)
                        {
                            botMessage = botMessage.Remove(botMessage.Length - 2, 2);

                            ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk);
                            ChatMessage.AppendInt32(GetRoomUser().VirtualId);
                            ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.onroom"));
                            ChatMessage.AppendInt32(0);
                            ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR);
                            ChatMessage.AppendInt32(0);
                            ChatMessage.AppendInt32(-1);
                            User.GetClient().SendMessage(ChatMessage);

                            botMessage.Clear();
                        }

                        GetBotData().SoplonOnRoom.Clear();
                    }
                }
            }
        }
Beispiel #20
0
 public GameService(GamesCache gameCache, IUsersStore userStore, UsersCache usersCache)
 {
     _gameCache  = gameCache;
     _userStore  = userStore;
     _usersCache = usersCache;
 }
Beispiel #21
0
        internal GroupItem(DataRow dRow)
        {
            Id                = Convert.ToUInt32(dRow["id"]);
            Name              = (string)dRow["name"];
            Description       = (string)dRow["description"];
            RoomId            = Convert.ToUInt32(dRow["roomid"]);
            CustomColor1      = (int)dRow["customcolor1"];
            CustomColor2      = (int)dRow["customcolor2"];
            temChat           = OtanixEnvironment.EnumToBool((string)dRow["temChat"]);
            GroupBase         = (int)dRow["groupbase"];
            GroupBaseColor    = (int)dRow["groupbasecolor"];
            GroupBasePosition = (int)dRow["groupbaseposition"];
            var zGroupItem1 = ((string)dRow["groupitem1"]).Split(';');

            if (zGroupItem1.Count() == 3)
            {
                GroupItem1 = new int[] { int.Parse(zGroupItem1[0]), int.Parse(zGroupItem1[1]), int.Parse(zGroupItem1[2]) }
            }
            ;
            var zGroupItem2 = ((string)dRow["groupitem2"]).Split(';');

            if (zGroupItem2.Count() == 3)
            {
                GroupItem2 = new int[] { int.Parse(zGroupItem2[0]), int.Parse(zGroupItem2[1]), int.Parse(zGroupItem2[2]) }
            }
            ;
            var zGroupItem3 = ((string)dRow["groupitem3"]).Split(';');

            if (zGroupItem3.Count() == 3)
            {
                GroupItem3 = new int[] { int.Parse(zGroupItem3[0]), int.Parse(zGroupItem3[1]), int.Parse(zGroupItem3[2]) }
            }
            ;
            var zGroupItem4 = ((string)dRow["groupitem4"]).Split(';');

            if (zGroupItem4.Count() == 3)
            {
                GroupItem4 = new int[] { int.Parse(zGroupItem4[0]), int.Parse(zGroupItem4[1]), int.Parse(zGroupItem4[2]) }
            }
            ;
            GroupImage  = (string)dRow["groupimage"];
            HtmlColor1  = (string)dRow["htmlcolor1"];
            HtmlColor2  = (string)dRow["htmlcolor2"];
            DateCreated = (string)dRow["datecreated"];
            OwnerId     = Convert.ToUInt32(dRow["ownerid"]);
            OwnerName   = UsersCache.getUsernameById(OwnerId);
            Type        = Convert.ToInt32(dRow["type"]);
            RightsType  = Convert.ToInt32(dRow["rightsType"]);

            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT COUNT(*) FROM groups_users WHERE groupid = '" + Id + "' AND acepted = '1'");
                MembersCount = dbClient.getInteger();

                dbClient.setQuery("SELECT * FROM groups_forums WHERE groupid = " + Id);
                DataRow dForum = dbClient.getRow();

                if (dForum != null)
                {
                    Forum = new GroupForum(Id, Convert.ToInt32(dForum["can_read"]), Convert.ToInt32(dForum["can_write"]), Convert.ToInt32(dForum["can_create"]), Convert.ToInt32(dForum["can_moderate"]), true);
                }
            }
        }
Beispiel #22
0
 public static BackofficeUserModel GetBackofficeUser(this Controller contr)
 {
     return(UsersCache.GetUsersRolePair(contr.GetUserId()).User);
 }
Beispiel #23
0
 public static UserRolesPair GetUserRolesPair(this Controller controller)
 {
     return(UsersCache.GetUsersRolePair(controller.GetUserId()));
 }
Beispiel #24
0
        internal void OnCycle()
        {
            if (this.bullyState == BullyState.SEARCHING_USER)
            {
                if ((DateTime.Now - customTimer).Seconds >= 15)
                {
                    GameClient guardianClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(this.GuardianId);
                    if (guardianClient != null)
                    {
                        ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert);
                        guardianClient.SendMessage(Message3);

                        guardianClient.GetHabbo().AlfaServiceId = 0;
                        guardianClient.GetHabbo().ExitAlfaState();
                    }

                    if (!this.nullGuardians.Contains(this.GuardianId))
                    {
                        this.nullGuardians.Add(this.GuardianId);
                    }

                    if (!this.SearchGuardian())
                    {
                        this.SerializeNoGuardians();
                        OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
                        return;
                    }
                }
                else if (this.NeedUpdate)
                {
                    this.NeedUpdate = false;

                    if (!this.nullGuardians.Contains(this.GuardianId))
                    {
                        this.nullGuardians.Add(this.GuardianId);
                    }

                    if (!this.SearchGuardian())
                    {
                        this.SerializeNoGuardians();
                        OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
                        return;
                    }
                }
            }
            else if (this.bullyState == BullyState.WAITING_RESPONSE)
            {
                if ((DateTime.Now - customTimer).Seconds >= 59)
                {
                    GameClient guardianClient = Guardian;
                    if (guardianClient != null)
                    {
                        ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert);
                        guardianClient.SendMessage(Message3);
                    }

                    this.bullySolution = BullySolution.EXIT;
                    this.bullyState    = BullyState.FINISHED;
                }
            }
            else if (this.bullyState == BullyState.FINISHED)
            {
                switch (this.bullySolution)
                {
                case BullySolution.NONE:
                case BullySolution.EXIT:
                case BullySolution.RELOAD:
                {
                    GameClient _Reporter = Reporter;
                    if (_Reporter != null)
                    {
                        OtanixEnvironment.GetGame().GetModerationTool().SendNewTicket(_Reporter, 104, (int)ReportedId, "Acoso", new string[0]);
                    }

                    break;
                }

                case BullySolution.ACCEPTABLE:
                {
                    // none (:
                    break;
                }

                case BullySolution.BULLY:
                case BullySolution.HORROR:
                {
                    Habbo habbo = UsersCache.getHabboCache(ReportedId);
                    if (habbo == null)
                    {
                        return;
                    }

                    ModerationTool.MuteUser(null, habbo, 10, "");
                    break;
                }

                    /*case BullySolution.HORROR:
                     *  {
                     *      GameClient TargetClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(ReportedId);
                     *      Habbo habbo = UsersCache.getHabboCache(ReportedId);
                     *
                     *      if (habbo != null && habbo.Rank <= 1)
                     *          //OtanixEnvironment.GetGame().GetBanManager().BanUser(TargetClient, habbo.Username, "", "Baneado por los HabboAlfas.", 21600, null);
                     *      break;
                     *  }*/
                }

                GameClient guardianClient = Guardian;
                if (guardianClient != null && guardianClient.GetHabbo() != null)
                {
                    guardianClient.GetHabbo().AlfaServiceId   = 0;
                    guardianClient.GetHabbo().AlfaHelpEnabled = false;

                    if (bullySolution == BullySolution.ACCEPTABLE || bullySolution == BullySolution.BULLY || bullySolution == BullySolution.HORROR)
                    {
                        ServerMessage EndVotation = new ServerMessage(Outgoing.FinishAlfaVotation);
                        EndVotation.AppendInt32((Int32)bullySolution);
                        EndVotation.AppendInt32((Int32)bullySolution);
                        EndVotation.AppendInt32(0); // array
                        guardianClient.SendMessage(EndVotation);
                    }

                    // Con esto enviaremos al Guardián al inicio de la lista para que puedan ayudar los últimos guardianes.
                    // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveGuardian(GuardianId);
                    // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().AddGuardian(GuardianId);
                }

                if (this.AlfaChatLog.Length > 0)
                {
                    OtanixEnvironment.GetGame().GetAlfaManager().LoadAlfaLog(this.GuardianId, "BULLY", this.AlfaChatLog, (Int32)this.bullySolution);
                }

                OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(GuardianId, "ACH_GuideChatReviewer", 1);

                GameClient reporterClient = Reporter;
                if (reporterClient != null)
                {
                    ServerMessage reporterAlert = new ServerMessage(Outgoing.ResolvedAlfa);
                    reporterAlert.AppendInt32(3);
                    reporterClient.SendMessage(reporterAlert);
                }

                OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
            }
        }
Beispiel #25
0
        internal void Fill(DataRow Row, uint modelId = 0)
        {
            Id                   = modelId != 0 ? modelId : Convert.ToUInt32(Row["id"]);
            Name                 = (string)Row["caption"];
            Description          = (string)Row["description"];
            Type                 = (string)Row["roomtype"];
            Owner                = (string)Row["owner"];
            OwnerId              = UsersCache.getIdByUsername(Owner);
            State                = (int)Row["state"];
            Category             = (int)Row["category"];
            UsersNow             = 0;
            UsersMax             = Convert.ToUInt32(Row["users_max"]);
            ModelName            = (string)Row["model_name"];
            LastModelName        = ModelName;
            Score                = (int)Row["score"];
            Tags                 = new List <string>();
            TradeSettings        = (int)Row["trade_settings"];
            AllowPets            = OtanixEnvironment.EnumToBool(Row["allow_pets"].ToString());
            AllowPetsEating      = OtanixEnvironment.EnumToBool(Row["allow_pets_eat"].ToString());
            AllowWalkthrough     = OtanixEnvironment.EnumToBool(Row["allow_walkthrough"].ToString());
            AllowRightsOverride  = OtanixEnvironment.EnumToBool(Row["allow_rightsoverride"].ToString());
            AllowDiagonalEnabled = OtanixEnvironment.EnumToBool(Row["allow_diagonals"].ToString());
            AntiFloodSettings    = (int)Row["antiflood_settings"];
            ChatDistance         = (int)Row["chat_distance"];
            Hidewall             = OtanixEnvironment.EnumToBool(Row["allow_hidewall"].ToString());
            Password             = (string)Row["password"];
            Wallpaper            = (string)Row["wallpaper"];
            Floor                = (string)Row["floor"];
            Landscape            = (string)Row["landscape"];
            FloorThickness       = (int)Row["floorthickness"];
            WallThickness        = (int)Row["wallthickness"];
            MuteFuse             = Convert.ToInt32((string)Row["moderation_mute_fuse"]);
            KickFuse             = Convert.ToInt32((string)Row["moderation_kick_fuse"]);
            BanFuse              = Convert.ToInt32((string)Row["moderation_ban_fuse"]);
            GroupId              = Convert.ToUInt32(Row["groupId"]);
            BubbleMode           = Convert.ToInt32((string)Row["bubble_mode"]);
            BubbleType           = Convert.ToInt32((string)Row["bubble_type"]);
            BubbleScroll         = Convert.ToInt32((string)Row["bubble_scroll"]);
            WallHeight           = Convert.ToInt32(Row["wall_height"]);
            RollerSpeed          = Convert.ToUInt32(Row["roller_speed"]);
            temEmblema           = (string)Row["temEmblema"];

            DisabledCommands = new List <int>();
            foreach (string StrCommandId in Row["disable_commands"].ToString().Split(','))
            {
                int CommandId = -1;
                if (!int.TryParse(StrCommandId, out CommandId))
                {
                    continue;
                }

                if (!DisabledCommands.Contains(CommandId))
                {
                    DisabledCommands.Add(CommandId);
                }
            }

            foreach (var Tag in Row["tags"].ToString().Split(','))
            {
                Tags.Add(Tag);
            }

            mModel = OtanixEnvironment.GetGame().GetRoomManager().GetModel(ModelName, Id);
        }
Beispiel #26
0
        private void processCommand(String data)
        {
            String header = data.Split(';')[0];

            switch (header.ToLower())
            {
            case "enterroom":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);
                uint RoomID  = uint.Parse(data.Split(';')[2]);

                UsersCache.AddUserProvisionalRoom(HabboID, RoomID);

                break;
            }

            case "goroom":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);
                uint RoomID  = uint.Parse(data.Split(';')[2]);

                GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboID);
                if (client == null || client.GetMessageHandler() == null)
                {
                    return;
                }

                Room room = OtanixEnvironment.GetGame().GetRoomManager().LoadRoom(RoomID);
                if (room == null)
                {
                    return;
                }

                client.GetMessageHandler().enterOnRoom3(room);

                break;
            }

            case "getevents":
            {
                int             count      = int.Parse(data.Split(';')[1]);
                StringBuilder   strBuilder = new StringBuilder();
                List <RoomData> rooms      = OtanixEnvironment.GetGame().GetRoomManager().GetEventManager().GetFourRecentEvents(count);

                foreach (RoomData room in rooms)
                {
                    if (room != null && room.Event != null)
                    {
                        strBuilder.Append(room.Id + "" + (char)10 + "" + room.Event.Name + (char)10 + "" + room.UsersNow + "" + (char)13);
                    }
                }

                if (strBuilder.Length > 0)
                {
                    strBuilder.Remove(strBuilder.Length - 1, 1);
                }

                sendCommand(strBuilder.ToString());

                break;
            }

            case "getactiverooms":
            {
                int             count      = int.Parse(data.Split(';')[1]);
                StringBuilder   strBuilder = new StringBuilder();
                List <RoomData> rooms      = OtanixEnvironment.GetGame().GetRoomManager().GetMostActiveRooms(count);

                foreach (RoomData room in rooms)
                {
                    if (room != null)
                    {
                        strBuilder.Append(room.Id + "" + (char)10 + "" + room.UsersNow + "" + (char)13);
                    }
                }

                if (strBuilder.Length > 0)
                {
                    strBuilder.Remove(strBuilder.Length - 1, 1);
                }

                sendCommand(strBuilder.ToString());

                break;
            }

            case "getmotto":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.Motto.ToString());
                }

                break;
            }

            case "updatemotto":
            {
                uint   HabboID = uint.Parse(data.Split(';')[1]);
                string Motto   = data.Split(';')[2];

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null && habbo.GetClient() != null)
                {
                    habbo.Motto = Motto;

                    ServerMessage UpdateMotto = new ServerMessage(Outgoing.UpdateUserInformation);
                    UpdateMotto.AppendInt32(-1);
                    UpdateMotto.AppendString(habbo.Look);
                    UpdateMotto.AppendString(habbo.Gender.ToLower());
                    UpdateMotto.AppendString(habbo.Motto);
                    UpdateMotto.AppendUInt(habbo.AchievementPoints);
                    habbo.GetClient().SendMessage(UpdateMotto);

                    if (habbo.CurrentRoom != null)
                    {
                        ServerMessage UpdateMottoInRoom = new ServerMessage(Outgoing.UpdateUserInformation);
                        UpdateMottoInRoom.AppendInt32(habbo.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(habbo.Id).VirtualId);
                        UpdateMottoInRoom.AppendString(habbo.Look);
                        UpdateMottoInRoom.AppendString(habbo.Gender.ToLower());
                        UpdateMottoInRoom.AppendString(habbo.Motto);
                        UpdateMottoInRoom.AppendUInt(habbo.AchievementPoints);
                        habbo.CurrentRoom.SendMessage(UpdateMottoInRoom);
                    }
                }

                break;
            }

            case "getlook":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.Look.ToString());
                }

                break;
            }

            case "getrespects":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.Respect.ToString());
                }

                break;
            }

            case "getpetitionsdisable":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.HasFriendRequestsDisabled.ToString());
                }

                break;
            }

            case "updatepetitionsdisable":
            {
                uint HabboID          = uint.Parse(data.Split(';')[1]);
                bool petitionsDisable = OtanixEnvironment.EnumToBool(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    habbo.HasFriendRequestsDisabled = petitionsDisable;
                }

                break;
            }

            case "gettradesdisable":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.BlockTrade.ToString());
                }

                break;
            }

            case "updatetradesdisable":
            {
                uint HabboID       = uint.Parse(data.Split(';')[1]);
                bool tradesDisable = OtanixEnvironment.EnumToBool(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    habbo.BlockTrade = tradesDisable;
                }

                break;
            }

            case "getignoreroominvitations":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.IgnoreRoomInvitations.ToString());
                }

                break;
            }

            case "updateignoreroominvitations":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);
                bool ignoreRoomInvitations = OtanixEnvironment.EnumToBool(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    habbo.IgnoreRoomInvitations = ignoreRoomInvitations;
                }

                break;
            }

            case "getdontfocususers":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.DontFocusUser.ToString());
                }

                break;
            }

            case "updatedontfocususers":
            {
                uint HabboID        = uint.Parse(data.Split(';')[1]);
                bool dontFocusUsers = OtanixEnvironment.EnumToBool(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    habbo.DontFocusUser = dontFocusUsers;
                }

                break;
            }

            case "getprefoldchat":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.preferOldChat.ToString());
                }

                break;
            }

            case "updateprefoldchat":
            {
                uint HabboID     = uint.Parse(data.Split(';')[1]);
                bool prefOldChat = OtanixEnvironment.EnumToBool(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    habbo.preferOldChat = prefOldChat;
                }

                break;
            }

            case "getdiamonds":
            {
                uint HabboID = uint.Parse(data.Split(';')[1]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);

                if (habbo != null)
                {
                    sendCommand(habbo.Diamonds.ToString());
                }

                break;
            }

            case "updatediamonds":
            {
                uint HabboID  = uint.Parse(data.Split(';')[1]);
                int  Diamonds = int.Parse(data.Split(';')[2]);

                Habbo habbo = UsersCache.getHabboCache(HabboID);
                if (habbo != null)
                {
                    if (Diamonds < 0)
                    {
                        habbo.Diamonds -= (uint)Math.Abs(Diamonds);
                    }
                    else
                    {
                        habbo.Diamonds += (uint)Diamonds;
                    }

                    habbo.UpdateExtraMoneyBalance();
                }

                break;
            }

            case "updatechatsettings":
            {
                uint HabboId = uint.Parse(data.Split(';')[1]);

                GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboId);
                if (client != null && client.GetHabbo() != null)
                {
                    using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        dbClient.setQuery("SELECT chat_color FROM users WHERE id = '" + HabboId + "'");
                        client.GetHabbo().ChatColor = dbClient.getString();
                    }
                }

                break;
            }

            case "updatecoins":
            {
                uint HabboId = uint.Parse(data.Split(';')[1]);
                uint Coins   = uint.Parse(data.Split(';')[2]);

                GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboId);
                if (client != null && client.GetHabbo() != null)
                {
                    client.GetHabbo().CoinsPurchased += Coins;
                }

                break;
            }
            }
        }
Beispiel #27
0
 public ChatService(UsersCache usersCache)
 {
     _usersCache = usersCache;
 }
Beispiel #28
0
        internal bool tryLogin(string AuthTicket)
        {
            try
            {
                if (GetConnection() == null)
                {
                    return(false);
                }

                var userData = UserDataFactory.GetUserData(AuthTicket);
                if (userData == null)
                {
                    this.Disconnect();
                    return(false);
                }

                OtanixEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.user.Id, userData.user.Username);
                Habbo = userData.user;

                if (userData.user.Username == null || GetHabbo() == null)
                {
                    SendBanMessage("Você não possui um nome.");
                    return(false);
                }

                userData.user.Init(userData);
                Habbo.MachineId = MachineId;

                var response = new QueuedServerMessage(Connection);

                var authok = new ServerMessage(Outgoing.AuthenticationOK);
                response.appendResponse(authok);

                var HomeRoom = new ServerMessage(Outgoing.HomeRoom);
                HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // first home
                HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // current home
                response.appendResponse(HomeRoom);

                var FavouriteRooms = new ServerMessage(Outgoing.FavouriteRooms);
                FavouriteRooms.AppendInt32(30); // max rooms
                FavouriteRooms.AppendInt32(userData.user.FavoriteRooms.Count);
                foreach (var Id in userData.user.FavoriteRooms.ToArray())
                {
                    FavouriteRooms.AppendUInt(Id);
                }
                response.appendResponse(FavouriteRooms);

                var sendClub = new ServerMessage(Outgoing.SerializeClub);
                sendClub.AppendString("club_habbo");
                sendClub.AppendInt32(0);      // days left
                sendClub.AppendInt32(0);      // days multiplier
                sendClub.AppendInt32(0);      // months left
                sendClub.AppendInt32(0);      // ???
                sendClub.AppendBoolean(true); // HC PRIVILEGE
                sendClub.AppendBoolean(true); // VIP PRIVILEGE
                sendClub.AppendInt32(0);      // days i have on hc
                sendClub.AppendInt32(0);      // days i've purchased
                sendClub.AppendInt32(495);    // value 4 groups
                response.appendResponse(sendClub);

                var roomAccessConfig = new ServerMessage(Outgoing.RoomAccessConfig);
                roomAccessConfig.AppendBoolean(true); // isOpen
                roomAccessConfig.AppendBoolean(false);
                roomAccessConfig.AppendBoolean(true);
                response.appendResponse(roomAccessConfig);

                var fuserights = new ServerMessage(Outgoing.Fuserights);
                fuserights.AppendInt32(2);                                       // normal|hc|vip
                fuserights.AppendUInt(GetHabbo().Rank);
                fuserights.AppendBoolean(GetHabbo().HasFuse("fuse_ambassador")); // embajador ?
                // fuserights.AppendInt32(0); // New Identity (1 == 1 min and Alert!)
                response.appendResponse(fuserights);

                var newidentity = new ServerMessage(Outgoing.SendNewIdentityState);
                newidentity.AppendInt32(GetHabbo().NewIdentity);
                response.appendResponse(newidentity);

                var HabboInformation = new ServerMessage(Outgoing.HabboInfomation);
                HabboInformation.AppendUInt(GetHabbo().Id);
                HabboInformation.AppendString(GetHabbo().Username);
                HabboInformation.AppendString(GetHabbo().Look);
                HabboInformation.AppendString(GetHabbo().Gender.ToUpper());
                HabboInformation.AppendString(GetHabbo().Motto);
                HabboInformation.AppendString(GetHabbo().RealName);
                HabboInformation.AppendBoolean(false);
                HabboInformation.AppendUInt(GetHabbo().Respect);
                HabboInformation.AppendUInt(GetHabbo().DailyRespectPoints); // respect to give away
                HabboInformation.AppendUInt(GetHabbo().DailyPetRespectPoints);
                HabboInformation.AppendBoolean(true);
                HabboInformation.AppendString(OtanixEnvironment.UnixTimeStampToDateTime(GetHabbo().LastOnline).ToString());
                HabboInformation.AppendBoolean(GetHabbo().NameChanges < EmuSettings.MAX_NAME_CHANGES); // CHANGENAME - HabboInformation.AppendBoolean((this.GetHabbo().Diamonds<=0||this.GetHabbo().NameChanges>=ButterflyEnvironment.maxNameChanges)?false:true);
                HabboInformation.AppendBoolean(false);
                response.appendResponse(HabboInformation);

                var IsGuide            = (Habbo.Rank > 1) ? true : false;
                var VoteInCompetitions = false;
                var Trade     = true;
                var Citizien  = (Habbo.CitizenshipLevel >= 4) ? true : false;
                var JudgeChat = (Habbo.Rank > 2) ? true : false;
                var NavigatorThumbailCamera = false;
                var navigatorphaseTwo       = true;
                var Camera        = true;
                var CallHelpers   = true;
                var BuilderAtWork = true;
                var MouseZoom     = false;

                var Allows = new ServerMessage(Outgoing.PerkAllowancesMessageParser);
                Allows.AppendInt32(11); // count
                Allows.AppendString("TRADE");
                Allows.AppendString((!Trade) ? "requirement.unfulfilled.citizenship_level_3" : "");
                Allows.AppendBoolean(Trade);
                Allows.AppendString("NAVIGATOR_ROOM_THUMBNAIL_CAMERA");
                Allows.AppendString((!NavigatorThumbailCamera) ? "" : "");
                Allows.AppendBoolean(NavigatorThumbailCamera);
                Allows.AppendString("NAVIGATOR_PHASE_TWO_2014");
                Allows.AppendString((!navigatorphaseTwo) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(navigatorphaseTwo);
                Allows.AppendString("VOTE_IN_COMPETITIONS");
                Allows.AppendString((!VoteInCompetitions) ? "requirement.unfulfilled.helper_level_2" : "");
                Allows.AppendBoolean(VoteInCompetitions);
                Allows.AppendString("BUILDER_AT_WORK");
                Allows.AppendString((!BuilderAtWork) ? "requirement.unfulfilled.group_membership" : "");
                Allows.AppendBoolean(BuilderAtWork);
                Allows.AppendString("MOUSE_ZOOM");
                Allows.AppendString((!MouseZoom) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(MouseZoom);
                Allows.AppendString("CAMERA");
                Allows.AppendString((!Camera) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(Camera);
                Allows.AppendString("CALL_ON_HELPERS");
                Allows.AppendString((!CallHelpers) ? "requirement.unfulfilled.citizenship_level_1" : "");
                Allows.AppendBoolean(CallHelpers);
                Allows.AppendString("CITIZEN");
                Allows.AppendString((!Citizien) ? "requirement.unfulfilled.citizenship_level_3" : "");
                Allows.AppendBoolean(Citizien);
                Allows.AppendString("USE_GUIDE_TOOL");
                Allows.AppendString((!IsGuide) ? "requirement.unfulfilled.helper_level_4" : "");
                Allows.AppendBoolean(IsGuide);
                Allows.AppendString("JUDGE_CHAT_REVIEWS");
                Allows.AppendString((!JudgeChat) ? "requirement.unfulfilled.citizenship_level_6" : "");
                Allows.AppendBoolean(JudgeChat);
                response.appendResponse(Allows);

                var enabledBuilderClub = new ServerMessage(Outgoing.EnableBuilderClub);
                enabledBuilderClub.AppendInt32(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetRemainingTime() : 0); // Tiempo restante de Constructor (2678400 = 1 mes entero (s))
                enabledBuilderClub.AppendUInt(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetMaxItems() : 50);      // Furnis que puedo alquilar
                enabledBuilderClub.AppendInt32(20000);                                                                          // Se puede ampliar la alquilación hasta..
                enabledBuilderClub.AppendInt32(0);
                response.appendResponse(enabledBuilderClub);

                response.appendResponse(GetHabbo().GetUserClothingManager().SerializeClothes());

                var achivPoints = new ServerMessage(Outgoing.AchievementPoints);
                achivPoints.AppendUInt(GetHabbo().AchievementPoints);
                response.appendResponse(achivPoints);

                var loadVolumen = new ServerMessage(Outgoing.LoadVolumen);
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[0]));
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[1]));
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[2]));
                loadVolumen.AppendBoolean(GetHabbo().preferOldChat);
                loadVolumen.AppendBoolean(GetHabbo().IgnoreRoomInvitations);
                loadVolumen.AppendBoolean(GetHabbo().DontFocusUser); // fcus user
                loadVolumen.AppendInt32(0);                          //
                loadVolumen.AppendInt32(0);                          // freeFlowChat
                response.appendResponse(loadVolumen);

                var muteUsers = new ServerMessage(Outgoing.SerializeMuteUsers);
                muteUsers.AppendInt32(GetHabbo().MutedUsers.Count);
                foreach (string IgnoreName in GetHabbo().MutedUsers)
                {
                    muteUsers.AppendString(IgnoreName);
                }
                response.appendResponse(muteUsers);

                TargetedOffer to = OtanixEnvironment.GetGame().GetTargetedOfferManager().GetRandomStaticTargetedOffer();
                if (to != null)
                {
                    if (!GetHabbo().TargetedOffers.ContainsKey(to.Id) || GetHabbo().TargetedOffers[to.Id] < to.PurchaseLimit)
                    {
                        response.appendResponse(OtanixEnvironment.GetGame().GetTargetedOfferManager().SerializeTargetedOffer(to));
                    }
                }

                /*var giftOptions = new ServerMessage(Outgoing.NewUserExperienceGiftOfferParser);
                 * giftOptions.AppendInt32(1); // foreach
                 * {
                 *  giftOptions.AppendInt32(0);
                 *  giftOptions.AppendInt32(0);
                 *  giftOptions.AppendInt32(1); // foreach (items?)
                 *  {
                 *      giftOptions.AppendString("Testeando"); // itemName ??
                 *      giftOptions.AppendInt32(1); // foreach
                 *      {
                 *          giftOptions.AppendString("a1_kumiankka"); // item 1
                 *          giftOptions.AppendString(""); // item 2 (if is empty == null)
                 *      }
                 *  }
                 * }
                 * response.appendResponse(giftOptions);*/

                response.appendResponse(OtanixEnvironment.GetGame().GetAchievementManager().AchievementPrede);

                if (GetHabbo().HomeRoom <= 0)
                {
                    var homeRoom = new ServerMessage(Outgoing.OutOfRoom);
                    response.appendResponse(homeRoom);
                }
                else
                {
                    Room room = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(GetHabbo().HomeRoom);
                    if (room != null)
                    {
                        this.GetMessageHandler().enterOnRoom3(room);
                    }
                }

                response.sendResponse();

                // Verifica a conta staff
                if (GetHabbo().Rank > 5)
                {
                    ServerMessage VerificaSenha = new ServerMessage(Outgoing.MobilePhoneNumero);
                    VerificaSenha.AppendInt32(1);
                    VerificaSenha.AppendInt32(1);
                    SendMessage(VerificaSenha);
                }
                // Termina de verificar a conta staff

                Ban BanReason = OtanixEnvironment.GetGame().GetBanManager().GetBanReason(Habbo.Username, Habbo.MachineId);
                if (BanReason != null)
                {
                    SendScrollNotif("Você tem um banimento do tipo: " + BanReason.Type + "\r\nMotivo: " + BanReason.ReasonMessage);
                    Disconnect();
                    return(false);
                }

                GetHabbo().InitMessenger();

                if (GetHabbo().GetAvatarEffectsInventoryComponent() != null)
                {
                    SendMessage(GetHabbo().GetAvatarEffectsInventoryComponent().Serialize());
                }

                SendMessage(OtanixEnvironment.GetGame().GetModerationTool().SerializeCfhTopics());

                if (LanguageLocale.welcomeAlertEnabled)
                {
                    string strAlert = BlackWordsManager.SpecialReplace(LanguageLocale.welcomeAlert, this);

                    if (LanguageLocale.welcomeAlertType == 0)
                    {
                        SendScrollNotif(strAlert);
                    }
                    else if (LanguageLocale.welcomeAlertType == 1)
                    {
                        SendNotif(strAlert);
                    }
                    else if (LanguageLocale.welcomeAlertType == 2)
                    {
                        SendNotifWithImage(strAlert, LanguageLocale.welcomeAlertImage);
                    }
                }

                OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Habbo.Id, "ACH_EmailVerification", 1);

                GetHabbo().UpdateCreditsBalance();
                GetHabbo().UpdateExtraMoneyBalance();
                GetHabbo().setMeOnline();
                GetHabbo().InitExtra();

                UsersCache.enterProvisionalRoom(this);

                return(true);
            }
            catch (UserDataNotFoundException e)
            {
                SendScrollNotif(LanguageLocale.GetValue("login.invalidsso") + "extra data: " + e);
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("Invalid Dario bug duing user login: "******"Login error: " + e);
            }
            return(false);
        }
        internal void BanUser(GameClient Client, string Username, string MachineId, string Reason, double LengthSeconds, GameClient Session)
        {
            string Var    = Username;
            string RawVar = "user";

            if (Username.Length > 0)
            {
                RawVar = "user";
                Var    = Username;
            }
            else if (MachineId.Length > 0)
            {
                RawVar = "machine";
                Var    = MachineId;
            }

            double Expire = OtanixEnvironment.GetUnixTimestamp() + LengthSeconds;

            if (RawVar == "user")
            {
                if (UsersCache.getIdByUsername(Username) == 0)
                {
                    Session.SendNotif(LanguageLocale.GetValue("input.usernotfound"));
                    return;
                }
            }

            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("REPLACE INTO bans (bantype,value,reason,expire,added_by,added_date) VALUES (@rawvar,@var,@reason,'" + Expire + "',@mod,'" + DateTime.Now.ToLongDateString() + "')");
                dbClient.addParameter("rawvar", RawVar);
                dbClient.addParameter("var", Var);
                dbClient.addParameter("reason", Reason);
                dbClient.addParameter("mod", (Session == null) ? "Automatic-BAN" : Session.GetHabbo().Username);
                dbClient.runQuery();
            }

            switch (RawVar)
            {
            case "user":
            {
                Ban ban = new Ban(ModerationBanType.USERNAME, Var, Reason, Expire);
                if (!bannedUsernames.ContainsKey(Var))
                {
                    bannedUsernames.Add(Var, ban);
                }

                break;
            }

            case "machine":
            {
                Ban ban = new Ban(ModerationBanType.MACHINEID, Var, Reason, Expire);
                if (!bannedMachinedId.ContainsKey(Var))
                {
                    bannedMachinedId.Add(Var, ban);
                }

                break;
            }
            }

            if (Client != null && Client.GetConnection() != null)
            {
                Client.SendBanMessage(LanguageLocale.GetValue("moderation.banned") + " " + Reason);
                Client.Disconnect();
            }
        }
Beispiel #30
0
        /// <summary>
        /// Actualiza el progreso una recompensa.
        /// </summary>
        /// <param name="Session"></param>
        /// <param name="UserId"></param>
        /// <param name="AchievementGroup"></param>
        /// <param name="ProgressAmount"></param>
        /// <returns></returns>
        public bool ProgressUserAchievement(uint UserId, string AchievementGroup, int ProgressAmount)
        {
            Habbo Habbo = UsersCache.getHabboCache(UserId);

            if (Habbo == null)
            {
                return(false);
            }

            GameClient Session = Habbo.GetClient();

            Achievement AchievementData = GetAchievementByName(AchievementGroup);

            if (AchievementData == null)
            {
                return(false);
            }

            UserAchievement UserData = Habbo.GetAchievementData(AchievementGroup);

            if (UserData == null)
            {
                UserData = new UserAchievement(AchievementGroup, 0, 0);
                Habbo.Achievements.Add(AchievementGroup, UserData);
            }

            uint TotalLevels = (uint)AchievementData.Levels.Length;

            if (UserData.Level == TotalLevels)
            {
                return(false); // ya está todo completado
            }

            uint TargetLevel = UserData.Level + 1;

            if (TargetLevel > TotalLevels)
            {
                TargetLevel = TotalLevels;
            }

            uint TargetRequeriment = AchievementData.Levels[TargetLevel - 1];

            UserData.Progress += ProgressAmount;

            if (UserData.Progress >= TargetRequeriment)
            {
                UserData.Level++;

                if (TargetLevel == 1)
                {
                    Habbo.GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel);
                }
                else
                {
                    Habbo.GetBadgeComponent().UpdateBadge(AchievementGroup + TargetLevel);
                }

                Habbo.AchievementPoints += AchievementData.Reward;

                if (Session != null)
                {
                    Session.SendMessage(AchievementUnlockedComposer.Compose(AchievementData, TargetLevel, AchievementData.Reward));
                    Session.SendMessage(AchievementScoreUpdateComposer.Compose(Habbo.AchievementPoints));
                }
            }

            if (Session != null)
            {
                Session.SendMessage(AchievementProgressComposer.Compose(AchievementData, UserData));
            }

            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("REPLACE INTO user_achievements VALUES (" + Habbo.Id + ", @group, " + UserData.Level + ", " + UserData.Progress + ")");
                dbClient.addParameter("group", AchievementGroup);
                dbClient.runQuery();
            }

            if (Session == null)
            {
                Habbo.SaveBadges();
            }

            return(true);
        }
 public ContactsOperations()
 {
     cache = UsersCache.Instance;
 }