Esempio n. 1
0
        public Room LoadRoom(int Id, bool BotCheck)
        {
            Room Room = null;

            if (TryGetRoom(Id, out Room))
            {
                return(Room);
            }

            RoomData Data = GenerateRoomData(Id);

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

            Room = new Room(Data);

            if (!_rooms.ContainsKey(Room.RoomId))
            {
                _rooms.TryAdd(Room.RoomId, Room);
                new Thread(() => {
                    Thread.Sleep(2000);
                    RoleplayBotManager.DeployCachedBots(Room);
                }).Start();
            }

            return(Room);
        }
Esempio n. 2
0
        private void InitializeMafiaBots()
        {
            this.ClearMafiaBots();

            #region Get Bots from Cache

            List <RoleplayBot> MafiaBots = RoleplayBotManager.CachedRoleplayBots.Values.Where(RoleplayBot => RoleplayBot != null && RoleplayBot.AIType == RoleplayBotAIType.MAFIAWARS).ToList();

            RoleplayBot GreenBoss, BlueBoss, GreenThug1, GreenThug2, BlueThug1, BlueThug2;

            GreenBoss = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault();
            BlueBoss  = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault();

            GreenThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First();
            GreenThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last();

            BlueThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First();
            BlueThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last();

            GreenBoss.Dead       = false;
            GreenBoss.Invisible  = false;
            GreenThug1.Dead      = false;
            GreenThug1.Invisible = false;
            GreenThug2.Dead      = false;
            GreenThug2.Invisible = false;

            BlueBoss.Dead       = false;
            BlueBoss.Invisible  = false;
            BlueThug1.Dead      = false;
            BlueThug1.Invisible = false;
            BlueThug2.Dead      = false;
            BlueThug2.Invisible = false;

            #endregion

            #region Deploy bots
            RoleplayBotManager.DeployBotByID(GreenBoss.Id);
            RoleplayBotManager.DeployBotByID(BlueBoss.Id);

            RoleplayBotManager.DeployBotByID(GreenThug1.Id);
            RoleplayBotManager.DeployBotByID(GreenThug2.Id);

            RoleplayBotManager.DeployBotByID(BlueThug1.Id);
            RoleplayBotManager.DeployBotByID(BlueThug2.Id);
            #endregion

            #region Insert deployed bots into list
            new Thread(() => {
                Thread.Sleep(2000);
                this.MafiaBots.TryAdd("greenboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("greenthug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("greenthug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));

                this.MafiaBots.TryAdd("blueboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("bluethug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("bluethug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
            }).Start();
            #endregion
        }
Esempio n. 3
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            int BotId = Packet.PopInt();

            if (BotId == 0)
            {
                return;
            }

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null)
            {
                return;
            }

            RoomUser BotUser = null;

            if (!Room.GetRoomUserManager().TryGetBot(BotId, out BotUser))
            {
                return;
            }

            if (Session.GetHabbo().Id != BotUser.BotData.ownerID && !Session.GetHabbo().GetPermissions().HasRight("bot_place_any_override"))
            {
                Session.SendWhisper("Você só pode pegar seus próprios bots!");
                return;
            }

            if (BotUser.GetBotRoleplay() == null)
            {
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("UPDATE `bots` SET `room_id` = '0' WHERE `id` = @id LIMIT 1");
                    dbClient.AddParameter("id", BotId);
                    dbClient.RunQuery();
                }

                Room.GetGameMap().RemoveUserFromMap(BotUser, new System.Drawing.Point(BotUser.X, BotUser.Y));

                Session.GetHabbo().GetInventoryComponent().TryAddBot(new Bot(Convert.ToInt32(BotUser.BotData.Id), Convert.ToInt32(BotUser.BotData.ownerID), BotUser.BotData.Name, BotUser.BotData.Motto, BotUser.BotData.Look, BotUser.BotData.Gender));
                Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots()));
                Room.GetRoomUserManager().RemoveBot(BotUser.VirtualId, false);
            }
            else
            {
                Room.GetGameMap().RemoveUserFromMap(BotUser, new System.Drawing.Point(BotUser.X, BotUser.Y));

                Session.GetHabbo().GetInventoryComponent().TryAddBot(new Bot(Convert.ToInt32(BotUser.BotData.Id), Convert.ToInt32(BotUser.BotData.ownerID), BotUser.BotData.Name, BotUser.BotData.Motto, BotUser.BotData.Look, BotUser.BotData.Gender));
                Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots()));
                RoleplayBotManager.EjectDeployedBot(BotUser, Room, true);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Removes a bot friendship
        /// </summary>
        /// <param name="BotId"></param>
        internal void RemoveBotAsFriend(int BotId)
        {
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("DELETE FROM `rp_bots_friendships` WHERE `bot_id` = '" + BotId + "' AND `user_id` = '" + Client.GetHabbo().Id + "'");
            }

            Client.SendWhisper("Você removeu com sucesso " + RoleplayBotManager.GetCachedBotById(BotId).Name + " da sua lista de contatos do celular!", 1);
        }
Esempio n. 5
0
        public bool AbortHandler(params object [] Params)
        {
            Room Room = this.InteractingBot.DRoom;

            RoleplayBotManager.EjectDeployedBot(this.InteractingBot.DRoomUser, Room);
            this.InteractingBot.Invisible = true;
            this.Active = false;

            return(true);
        }
Esempio n. 6
0
        /// <summary>
        /// Sends a message to a bot
        /// </summary>
        /// <param name="BotId"></param>
        /// <param name="Message"></param>
        internal void MessageBot(int BotId, string Message)
        {
            var serverMessage = new NewConsoleMessageComposer(Client.GetHabbo().Id, Message);

            serverMessage.WriteInteger(BotId); //userid
            serverMessage.WriteString(Client.GetHabbo().Username);
            serverMessage.WriteInteger(0);

            RoomUser Bot = RoleplayBotManager.GetDeployedBotById(BotId - RoleplayBotManager.BotFriendMultiplyer);

            Bot.GetBotRoleplayAI().OnMessaged(Client, Message);
        }
Esempio n. 7
0
        /// <summary>
        /// Gets the bots outfit
        /// </summary>
        /// <returns></returns>
        public string[] GetOutFit()
        {
            string[] Outfit = new string[2];

            Outfit[0] = this.Figure;
            Outfit[1] = this.Motto;

            RoomUser User = RoleplayBotManager.GetDeployedBotById(this.Id);

            if (this.Dead)
            {
                if (this.Gender.ToLower() == "m")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-83.ch-215-83");
                }

                if (this.Gender.ToLower() == "f")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-83.ch-635-83");
                }

                Outfit[1] = "[MORTO] Paciente do Hospital";
            }
            else if (this.Jailed)
            {
                Random Random       = new Random();
                int    PrisonNumber = Random.Next(10000, 100000);

                if (Gender.ToLower() == "m")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-1323.sh-3016-92.ch-220-1323");
                }

                if (Gender.ToLower() == "f")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-1323.sh-3016-92.ch-3067-1323");
                }

                Outfit[1] = "[PRESO] ID do Criminoso [#" + PrisonNumber + "]";
            }
            else if (User != null && User.GetBotRoleplayAI() != null && User.GetBotRoleplayAI().OnDuty)
            {
                if (this.WorkUniform != "Nenhum")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, this.WorkUniform);
                }

                Outfit[1] = "[TRABALHANDO] [" + GroupManager.GetJob(this.Corporation).Name + "]";
            }

            return(Outfit);
        }
Esempio n. 8
0
        /// <summary>
        /// Handles teleporting
        /// </summary>
        /// <param name="Self">Bot's roomuser instance</param>
        /// <param name="Room">Bot's room</param>
        public void HandleTeleporting(RoomUser Self, Room Room)
        {
            if (Self == null || Room == null)
            {
                return;
            }

            RoleplayBot Bot = Self.GetBotRoleplay();

            if (!Bot.Teleported)
            {
                if (Bot.TeleporterEntering == null)
                {
                    Bot.Teleporting = false;
                    return;
                }

                if (Self.Coordinate == Bot.TeleporterEntering.Coordinate)
                {
                    // Lets teleport the bot!
                    Self.GetBotRoleplayAI().GetRoom().SendMessage(new UserRemoveComposer(Self.VirtualId));
                    Bot.Teleported   = true;
                    Bot.X            = Bot.TeleporterExiting.GetX;
                    Bot.Y            = Bot.TeleporterExiting.GetY;
                    Bot.SpawnId      = Bot.TeleporterExiting.RoomId;
                    Bot.LastTeleport = Bot.TeleporterExiting;
                    Room TeleRoom = RoleplayManager.GenerateRoom(Bot.TeleporterExiting.RoomId);
                    RoleplayBotManager.TransportDeployedBot(Self, TeleRoom.Id, true);

                    if (Bot != null && Bot.TimerManager != null && Bot.TimerManager.ActiveTimers != null && Bot.TimerManager.ActiveTimers.ContainsKey("teleport"))
                    {
                        Bot.TimerManager.ActiveTimers["teleport"].EndTimer();

                        if (Bot.UserAttacking != null && Bot.UserAttacking.GetHabbo() != null)
                        {
                            Bot.TimerManager.CreateTimer("attack", this, 10, true, Bot.UserAttacking.GetHabbo().Id);
                        }
                        else
                        {
                            Bot.MoveRandomly();
                        }
                    }
                }
                else
                {
                    // Lets make the bot walk to the teleport!
                    Self.MoveTo(Bot.TeleporterEntering.GetX, Bot.TeleporterEntering.GetY);
                }
            }
            return;
        }
Esempio n. 9
0
        /// <summary>
        /// Begins death sequence
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null)
                {
                    base.EndTimer();
                    return;
                }
                if (!base.CachedBot.DRoomUser.GetBotRoleplay().Dead)
                {
                    base.EndTimer();
                    return;
                }

                if (base.CachedBot.DRoomUser == null)
                {
                    return;
                }

                TimeLeft -= 1000;

                if (TimeLeft > 0)
                {
                    return;
                }

                base.CachedBot.DRoomUser.Chat("*Libertado da prisão*", true);
                base.CachedBot.DRoomUser.GetBotRoleplay().Jailed = false;

                Room RandRoom = RoleplayManager.GenerateRoom(1);
                RoleplayBotManager.TransportDeployedBot(CachedBot.DRoomUser, RandRoom.Id, false);

                if (base.CachedBot.DRoomUser.GetBotRoleplay().RoamBot)
                {
                    base.CachedBot.MoveRandomly();
                }

                base.EndTimer();
                return;
            }
            catch
            {
                base.EndTimer();
            }
        }
Esempio n. 10
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int UserId = Packet.PopInt();

            if (UserId > 1000000)
            {
                int BotId = UserId - 1000000;
                var Bot   = RoleplayBotManager.GetCachedBotById(BotId);

                if (Bot != null)
                {
                    Session.SendMessage(new HabboUserBadgesComposer(null, Bot));
                }
            }
            else
            {
                Habbo Habbo = PlusEnvironment.GetHabboById(UserId);
                if (Habbo == null)
                {
                    return;
                }

                if (Session.GetRoleplay().CombatMode)
                {
                    if (Session.GetRoleplay().InCombat)
                    {
                        Session.GetRoleplay().InCombat = false;

                        if (Habbo.GetClient() != null && Habbo.GetClient().GetRoomUser() != null && !Habbo.GetClient().GetRoomUser().IsBot)
                        {
                            if (Session.GetRoleplay().EquippedWeapon == null)
                            {
                                CombatManager.GetCombatType("fist").Execute(Session, Habbo.GetClient());
                            }
                            else
                            {
                                CombatManager.GetCombatType("gun").Execute(Session, Habbo.GetClient());
                            }
                        }
                    }
                }

                Session.SendMessage(new HabboUserBadgesComposer(Habbo));
            }
        }
Esempio n. 11
0
        private void ClearMafiaBots()
        {
            lock (this.MafiaBots)
            {
                if (this.MafiaBots.Count > 0)
                {
                    foreach (RoomUser User in this.MafiaBots.Values)
                    {
                        if (User == null)
                        {
                            continue;
                        }

                        RoleplayBotManager.EjectDeployedBot(User, User.GetRoom(), false);
                    }

                    this.MafiaBots.Clear();
                }
            }
        }
Esempio n. 12
0
        /// <summary>
        /// Initiates the bots death
        /// </summary>
        public void InitiateDeath()
        {
            this.Dead          = true;
            this.UserAttacking = null;
            this.TimerManager.EndAllTimers();
            this.CurHealth = this.MaxHealth;

            RoomUser Bot = RoleplayBotManager.GetDeployedBotById(this.Id);

            if (Bot == null)
            {
                return;
            }

            int  HospitalRoomId = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"));
            Room Hospital       = RoleplayManager.GenerateRoom(HospitalRoomId);

            RoleplayBotManager.TransportDeployedBot(Bot, HospitalRoomId, true);
            this.TimerManager.CreateTimer("botdeath", this, 1000, true);
        }
Esempio n. 13
0
        private void UseTeleport()
        {
            RoomUser BotUserInstance = this.InteractingBot.DRoomUser;


            this.InteractingBot.X        = this.LeavingTeleport.GetX;
            this.InteractingBot.Y        = this.LeavingTeleport.GetY;
            this.InteractingBot.Z        = this.LeavingTeleport.GetZ;
            this.InteractingBot.SpawnRot = this.LeavingTeleport.Rotation;

            this.InteractingBot.DRoomUser.ClearMovement(true);

            this.InteractingBot.SpawnId      = this.LeavingTeleport.RoomId;
            this.InteractingBot.LastTeleport = this.LeavingTeleport;

            Room TeleRoom = RoleplayManager.GenerateRoom(this.LeavingTeleport.RoomId);

            RoleplayBotManager.TransportDeployedBot(BotUserInstance, TeleRoom.Id, true);

            this.UsedTeleport = true;
        }
Esempio n. 14
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int UserId = Packet.PopInt();

            if (UserId > 1000000)
            {
                int BotId = UserId - 1000000;
                var Bot   = RoleplayBotManager.GetCachedBotById(BotId);

                if (Bot != null)
                {
                    Session.SendMessage(new GetRelationshipsComposer(null, Bot));
                }
            }
            else
            {
                Habbo Habbo = PlusEnvironment.GetHabboById(UserId);

                if (Habbo == null)
                {
                    return;
                }


                #region Open user statistics dialogue (sockets)

                if (Habbo.GetClient() != null)
                {
                    if (Habbo.GetClient() != Session)
                    {
                        PlusEnvironment.GetGame().GetWebEventManager().ExecuteWebEvent(Session, "event_characterbar", "" + Habbo.Id);
                    }
                }

                #endregion

                Session.SendMessage(new GetRelationshipsComposer(Habbo));
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Stops the delivery bot
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null)
                {
                    base.EndTimer();
                    return;
                }

                Item Item = (Item)Params[0];

                if (Item != null)
                {
                    var Point = new Point(Item.GetX, Item.GetY);
                    if (base.CachedBot.DRoomUser.Coordinate != Point)
                    {
                        return;
                    }

                    Item.ExtraData = "2";
                    Item.UpdateState(false, true);
                    Item.RequestUpdate(2, true);
                }


                RoleplayBotManager.EjectDeployedBot(base.CachedBot.DRoomUser, base.CachedBot.DRoom);
                base.CachedBot.Invisible = true;

                base.EndTimer();
            }
            catch
            {
                base.EndTimer();
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Disposes of the roleplay bots instance
        /// </summary>
        public void Dispose()
        {
            if (DRoomUser != null)
            {
                if (DRoomUser.GetBotRoleplayAI() != null)
                {
                    DRoomUser.GetBotRoleplayAI().StopActivities();
                }

                RoleplayBotManager.EjectDeployedBot(this.DRoomUser, this.DRoom, false);
            }

            Id                 = 0;
            Name               = null;
            Figure             = null;
            Gender             = null;
            Motto              = null;
            VirtualId          = 0;
            MaxHealth          = 0;
            CurHealth          = 0;
            Strength           = 0;
            Level              = 0;
            SpawnId            = 0;
            OriginalId         = 0;
            Deployed           = false;
            Dead               = false;
            Jailed             = false;
            X                  = 0;
            Y                  = 0;
            oX                 = 0;
            oY                 = 0;
            Z                  = 0;
            oZ                 = 0;
            SpawnRot           = 0;
            RoomBotInstance    = null;
            HabboInstance      = null;
            Responses          = null;
            UserFollowing      = null;
            UserAttacking      = null;
            Attacking          = false;
            Roaming            = false;
            Following          = false;
            RoamBot            = false;
            RoamCityBot        = false;
            AddableBot         = false;
            Invisible          = false;
            TeleporterEntering = null;
            TeleporterExiting  = null;
            LastTeleport       = null;
            Teleporting        = false;
            Teleported         = false;
            FollowCooldown     = 0;
            AttackCooldown     = 0;
            RoamCooldown       = 0;
            LookCooldown       = 0;

            RoamInterval   = 0;
            AttackInterval = 0;
            FollowInterval = 0;

            RoomStayInterval = 0;
            RoomStayTime     = 0;
            AIType           = 0;

            TimerManager.EndAllTimers();
            TimerManager = null;

            CooldownManager.EndAllCooldowns();
            CooldownManager = null;

            this.RoomBotInstance.Dispose();
        }
Esempio n. 17
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Você deve incluir uma coisa para atualizar, e.x. :atualizar catalogo", 1);
                return;
            }

            string UpdateVariable = Params[1];

            switch (UpdateVariable.ToLower())
            {
            case "cata":
            case "catalog":
            case "catalogue":
            case "catalogo":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_catalog"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_catalog'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetCatalog().Init(PlusEnvironment.GetGame().GetItemManager());
                PlusEnvironment.GetGame().GetClientManager().SendMessage(new CatalogUpdatedComposer());
                Session.SendWhisper("Catálogo atualizado com sucesso.", 1);
                break;
            }

            case "items":
            case "furni":
            case "furniture":
            case "mobis":
            case "mobi":
            case "mobilias":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_furni"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_furni'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetItemManager().Init();
                Session.SendWhisper("Itens/Mobis atualizados com sucesso.", 1);
                break;
            }

            case "models":
            case "modelos":
            case "model":
            case "quartos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_models"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_models'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetRoomManager().LoadModels();
                Session.SendWhisper("Modelos de quartos atualizados com sucesso.", 1);
                break;
            }

            case "promotions":
            case "promocoes":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_promotions"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_promotions'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetLandingManager().LoadPromotions();
                Session.SendWhisper("Landing view promotions successfully updated.", 1);
                break;
            }

            case "youtube":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_youtube"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_youtube'", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetTelevisionManager().Init();
                Session.SendWhisper("A lista de televisões do Youtube foi atualizada com sucesso. ", 1);
                break;
            }

            case "filter":
            case "filtro":
            case "filtros":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_filter"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_filter'", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetChatManager().GetFilter().Init();
                Session.SendWhisper("Definições de filtro atualizadas com sucesso.", 1);
                break;
            }

            case "navigator":
            case "navegador":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_navigator"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_navigator'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetNavigator().Init();
                Session.SendWhisper("Itens do navegador atualizados com sucesso.", 1);
                break;
            }

            case "ranks":
            case "rights":
            case "permissions":
            case "cargos":
            case "permissao":
            case "permissoes":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_permissions"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_rights'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetPermissionManager().Init();

                foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                {
                    if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().GetPermissions() == null)
                    {
                        continue;
                    }

                    Client.GetHabbo().GetPermissions().Init(Client.GetHabbo());
                }

                Session.SendWhisper("Definições de Cargo atualizadas com sucesso.", 1);
                break;
            }

            case "config":
            case "settings":
            case "configuracoes":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_configuration"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_configuration'.", 1);
                    break;
                }

                PlusEnvironment.ConfigData = new ConfigData();
                Session.SendWhisper("Configuração do servidor atualizada com sucesso.", 1);
                break;
            }

            case "bans":
            case "ban":
            case "banimentos":
            case "banidos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bans"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_bans'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetModerationManager().ReCacheBans();
                Session.SendWhisper("A lista de banidos foi atualizada com sucesso.", 1);
                break;
            }

            case "quests":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_quests"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_quests'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetQuestManager().Init();
                Session.SendWhisper("Definições de Tarefas atualizadas com êxito.", 1);
                break;
            }

            case "achievements":
            case "conquistas":
            case "conquista":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_achievements"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_achievements'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetAchievementManager().LoadAchievements();
                Session.SendWhisper("Definições de conquistas atualizadas com êxito.", 1);
                break;
            }

            case "clothing":
            case "visuais":
            case "roupas":
            case "visual":
            case "roupa":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_clothing"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_clothing'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetCatalog().GetClothingManager().Init();
                Session.SendWhisper("Mobiliário de vestuário e preços recarregados.", 1);
                break;
            }

            case "moderation":
            case "moderacao":
            case "mods":
            case "moderadores":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_moderation"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_moderation'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetModerationManager().Init();
                PlusEnvironment.GetGame().GetClientManager().ModAlert("As predefinições de moderação foram atualizadas. Recarregue o cliente para ver as novas predefinições.");

                Session.SendWhisper("Configuração de moderação atualizada com sucesso.", 1);
                break;
            }

            case "tickets":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_tickets"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_tickets'.", 1);
                    break;
                }

                if (PlusEnvironment.GetGame().GetModerationTool().Tickets.Count > 0)
                {
                    PlusEnvironment.GetGame().GetModerationTool().Tickets.Clear();
                }

                PlusEnvironment.GetGame().GetClientManager().ModAlert("Os ingressos foram atualizados. Recarregue o cliente.");
                Session.SendWhisper("Os ingressos foram atualizados com sucesso.", 1);
                break;
            }

            case "vouchers":
            case "brindes":
            case "codigos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_vouchers"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_vouchers'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetCatalog().GetVoucherManager().Init();
                Session.SendWhisper("Vouchers/Códigos brinde atualizado com sucesso.", 1);
                break;
            }

            case "polls":
            case "perguntas":
            case "quiz":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_polls"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_polls'.", 1);
                    break;
                }

                int PollLoaded;
                PlusEnvironment.GetGame().GetPollManager().Init(out PollLoaded);
                Session.SendWhisper("Polls successfully updated.", 1);
                break;
            }

            case "gamecenter":
            case "centrodejogos":
            case "cjogos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_game_center"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_game_center'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetGameDataManager().Init();
                Session.SendWhisper("Cache do Centro de Jogos atualizado com sucesso.", 1);
                break;
            }

            case "pet_locale":
            case "lpet":
            case "petl":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_pet_locale"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_pet_locale'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetChatManager().GetPetLocale().Init();
                Session.SendWhisper("Pet locale cache successfully updated.", 1);
                break;
            }

            case "locale":
            case "local":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_locale"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_locale'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetLanguageLocale().Init();
                Session.SendWhisper("Local cache atualizado com sucesso.", 1);
                break;
            }

            case "mutant":
            case "mutante":
            case "mutantes":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_anti_mutant"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_anti_mutant'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetAntiMutant().Init();
                Session.SendWhisper("Anti mutante recarregado com sucesso.", 1);
                break;
            }

            case "bots":
            case "bot":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bots"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_bots'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetBotManager().Init();
                Session.SendWhisper("O gerenciador de Bots foi recarregado com sucesso", 1);
                break;
            }

            case "bots_speech":
            case "bots speech":
            case "speech":
            case "speeches":
            case "response":
            case "responses":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bots"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_bots'", 1);
                    break;
                }

                RoleplayBotManager.FetchCachedSpeeches();
                Session.SendWhisper("Bots speech and responses successfully reloaded", 1);
                break;
            }

            case "rewards":
            case "premios":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_rewards"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_rewards'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetRewardManager().Reload();
                Session.SendWhisper("O Gerenciador de recompensas foi recarregado com sucesso.", 1);
                break;
            }

            case "chat_styles":
            case "echats":
            case "estilos":
            case "estilo":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_chat_styles"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_chat_styles'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetChatManager().GetChatStyles().Init();
                Session.SendWhisper("Estilos de bate-papo recarregados com sucesso.", 1);
                break;
            }

            case "badges":
            case "badge_definitions":
            case "emblemas":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_badge_definitions"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_badge_definitions'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetBadgeManager().Init();
                Session.SendWhisper("Definições de emblemas recarregadas com sucesso.", 1);
                break;
            }

            case "rpdata":
            case "roleplaydata":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_roleplay_data"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_roleplaydata'.", 1);
                    break;
                }

                RoleplayData.Initialize();
                RoleplayManager.UpdateRPData();
                Session.SendWhisper("Dados do Roleplay recarregados com sucesso.", 1);
                break;
            }

            case "blacklist":
            case "listanegra":
            case "ln":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_blacklist"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_blacklist'.", 1);
                    break;
                }

                BlackListManager.Initialize();
                Session.SendWhisper("Lista negra recarregada com sucesso.", 1);
                break;
            }

            case "farming":
            case "agricultura":
            case "agricolas":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_farming"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_farming'.", 1);
                    break;
                }

                FarmingManager.Initialize();
                Session.SendWhisper("Artigos agrícolas recarregados com sucesso.", 1);
                break;
            }

            case "events":
            case "games":
            case "jogos":
            case "eventos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_events"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_events'.", 1);
                    break;
                }

                RoleplayGameManager.Initialize();
                Session.SendWhisper("Eventos recarregados com sucesso.", 1);
                break;
            }

            case "corps":
            case "jobs":
            case "corporations":
            case "gangs":
            case "gangues":
            case "empregos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_jobs"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_jobs'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetGroupManager().Initialize();
                Session.SendWhisper("Trabalhos e Gangues recarregados com sucesso.", 1);
                break;
            }

            case "turfs":
            case "turfcaptures":
            case "gangcaptures":
            case "territorio":
            case "territorios":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_turfs"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_turfs'.", 1);
                    break;
                }

                TurfManager.Initialize();
                Session.SendWhisper("Territórios e Zona de Captura recarregados com sucesso.", 1);
                break;
            }

            case "weapons":
            case "guns":
            case "armas":
            case "arma":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_weapons"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_weapons'.", 1);
                    break;
                }

                WeaponManager.Initialize();

                #region Refresh User Weapons

                lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
                {
                    foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                    {
                        if (Client == null || Client.GetHabbo() == null || Client.GetRoleplay() == null)
                        {
                            continue;
                        }

                        if (Client.GetRoleplay().EquippedWeapon == null)
                        {
                            continue;
                        }

                        Client.GetRoleplay().EquippedWeapon = null;

                        Client.GetRoleplay().OwnedWeapons = null;
                        Client.GetRoleplay().OwnedWeapons = Client.GetRoleplay().LoadAndReturnWeapons();

                        Client.SendWhisper("Um administrador atualizou as armas, sua arma foi retirada, equipe de novo!", 1);
                    }
                }

                #endregion

                Session.SendWhisper("Armas recarregadas com sucesso.", 1);
                break;
            }

            case "food":
            case "drinks":
            case "bebidas":
            case "bebida":
            case "alimentos":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_food"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_food'.", 1);
                    break;
                }

                FoodManager.Initialize();
                Session.SendWhisper("Alimentos e bebidas recarregados com sucesso.", 1);
                break;
            }

            case "houses":
            case "house":
            case "casas":
            case "casa":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_houses"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_houses'.", 1);
                    break;
                }

                PlusEnvironment.GetGame().GetHouseManager().Init();
                Session.SendWhisper("Casas recarregadas com sucesso.", 1);
                break;
            }

            case "crafting":
            case "construir":
            case "construcao":
            case "craft":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_crafting"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_crafting'.", 1);
                    break;
                }

                CraftingManager.Initialize();
                Session.SendWhisper("Áreas de construção recarregadas com sucesso..", 1);
                break;
            }

            case "lottery":
            case "loteria":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_lottery"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_lottery'.", 1);
                    break;
                }

                LotteryManager.Initialize();
                Session.SendWhisper("Loteria recarregados com sucesso.", 1);
                break;
            }

            case "todo":
            case "tarefas":
            case "tarefa":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_todo"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_todo'.", 1);
                    break;
                }

                ToDoManager.Initialize();
                Session.SendWhisper("Lista de Tarefas recarregada com sucesso.", 1);
                break;
            }

            case "bounty":
            case "bl":
            case "bounties":
            case "recompensa":
            case "recompensas":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bounty"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_bounty'.", 1);
                    break;
                }

                BountyManager.Initialize();
                Session.SendWhisper("Lista de recompensas recarregada com sucesso.", 1);
                break;
            }

            case "court":
            case "jury":
            case "juiz":
            case "politica":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_court"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_court'.", 1);
                    break;
                }

                RoleplayManager.CourtVoteEnabled = false;
                RoleplayManager.InnocentVotes    = 0;
                RoleplayManager.GuiltyVotes      = 0;

                RoleplayManager.CourtJuryTime        = 0;
                RoleplayManager.CourtTrialIsStarting = false;
                RoleplayManager.CourtTrialStarted    = false;
                RoleplayManager.Defendant            = null;
                RoleplayManager.InvitedUsersToJuryDuty.Clear();

                Session.SendWhisper("Juiz atualizado com sucesso.", 1);
                break;
            }

            case "chat":
            case "chats":
            case "chatroom":
            case "chatrooms":
            case "batepapos":
            case "batepapo":
            case "whatsapps":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_websocket_chat"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_websocket_chat'.", 1);
                    break;
                }

                HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.Initialiaze();
                Session.SendWhisper("Salas de chat atualizadas com sucesso.", 1);
                break;
            }

            case "gambling":
            case "texash":
            case "texas":
            case "texasholdem":
            {
                if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_gambling"))
                {
                    Session.SendWhisper("Opa, você não tem permissão em 'command_update_gambling'.", 1);
                    break;
                }

                TexasHoldEmManager.Initialize();
                Session.SendWhisper("Jogos do Texas Holdem atualizados com sucesso.", 1);
                break;
            }

            default:
                Session.SendWhisper("'" + UpdateVariable + "' não é uma coisa válida para recarregar.", 1);
                break;
            }
        }
Esempio n. 18
0
        /// <summary>
        /// Waits for delivery bot to arrive with package
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null || !RoleplayManager.CalledDelivery || RoleplayManager.DeliveryWeapon == null)
                {
                    base.EndTimer();
                    return;
                }

                TimeCount++;

                if (TimeCount < 1000)
                {
                    return;
                }

                if (!this.DeliveryArrived)
                {
                    RoleplayBot Bot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY);

                    if (Bot == null)
                    {
                        base.CachedBot.DRoomUser.Chat("O bot de entrega está ocupado agora, desculpe por isso!", true);
                        base.EndTimer();
                        return;
                    }
                    else
                    {
                        if (!this.DeliveryArrived)
                        {
                            Item Item = null;

                            Bot.GetStopWorkItem(base.CachedBot.DRoom, out Item);

                            if (Item == null)
                            {
                                base.CachedBot.DRoomUser.Chat("O bot de entrega está ocupado agora, desculpe por isso! ", true);
                                base.EndTimer();
                                return;
                            }

                            RoleplayBotManager.DeployBotByAI(RoleplayBotAIType.DELIVERY, "workitem", base.CachedBot.DRoom.Id);

                            this.DeliveryArrived = true;
                        }
                    }
                }


                if (base.CachedBot.DRoom.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == InteractionType.DELIVERY_BOX).ToList().Count <= 0)
                {
                    return;
                }

                TimeCount2++;

                if (TimeCount2 < 200)
                {
                    return;
                }

                RoleplayManager.CalledDelivery = false;
                HandleDelivery();
                base.EndTimer();
            }
            catch
            {
                base.EndTimer();
            }
        }
Esempio n. 19
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            Room Room = null;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
            {
                return;
            }

            if ((Room.AllowPets == 0 && !Room.CheckRights(Session, true)) || !Room.CheckRights(Session, true))
            {
                Session.SendMessage(new RoomErrorNotifComposer(1));
                return;
            }

            if (Room.GetRoomUserManager().PetCount > PlusStaticGameSettings.RoomPetPlacementLimit)
            {
                Session.SendMessage(new RoomErrorNotifComposer(2));//5 = I have too many.
                return;
            }

            Pet Pet = null;

            if (!Session.GetHabbo().GetInventoryComponent().TryGetPet(Packet.PopInt(), out Pet))
            {
                return;
            }

            if (Pet == null)
            {
                return;
            }

            if (Pet.PlacedInRoom)
            {
                Session.SendNotification("Este animal de estimação já está no quarto");
                return;
            }

            int X = Packet.PopInt();
            int Y = Packet.PopInt();

            if (!Room.GetGameMap().CanWalk(X, Y, false))
            {
                Session.SendMessage(new RoomErrorNotifComposer(4));
                return;
            }

            RoomUser OldPet = null;

            if (Room.GetRoomUserManager().TryGetPet(Pet.PetId, out OldPet))
            {
                Room.GetRoomUserManager().RemoveBot(OldPet.VirtualId, false);
            }

            Pet.X = X;
            Pet.Y = Y;

            Pet.PlacedInRoom = true;
            Pet.RoomId       = Room.RoomId;

            List <RandomSpeech> RndSpeechList = new List <RandomSpeech>();
            RoomBot             RoomBot       = new RoomBot(Pet.PetId, Pet.RoomId, "pet", "freeroam", Pet.Name, "", Pet.Look, X, Y, 0, 0, 0, 0, 0, 0, ref RndSpeechList, "", 0, Pet.OwnerId, false, 0, false, 0);

            if (RoomBot == null)
            {
                return;
            }

            //old//Room.GetRoomUserManager().DeployBot(RoomBot, Pet);
            RoleplayBotManager.DeployBotByID(RoomBot.Id, "owner", Room.Id);

            Pet.DBState = DatabaseUpdateState.NeedsUpdate;
            Room.GetRoomUserManager().UpdatePets();

            Pet ToRemove = null;

            if (!Session.GetHabbo().GetInventoryComponent().TryRemovePet(Pet.PetId, out ToRemove))
            {
                log.Error("Erro ao remover o animal de estimação: " + ToRemove.PetId);
                return;
            }

            Session.SendMessage(new PetInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetPets()));
        }
Esempio n. 20
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int     userID = Packet.PopInt();
            Boolean IsMe   = Packet.PopBoolean();

            if (userID >= 5000000)
            {
                Group Group = GroupManager.GetGang(userID - 5000000);
                Session.SendMessage(new GroupInfoComposer(Group, Session, true));
                return;
            }

            if (userID > 1000000)
            {
                RoleplayBot Bot = RoleplayBotManager.GetCachedBotById(userID - 1000000);

                List <Group> BotGroups = new List <Group>();
                if (Bot.Corporation > 0)
                {
                    Group Job = GroupManager.GetJob(Bot.Corporation);

                    if (Job != null)
                    {
                        BotGroups.Add(Job);
                    }
                }
                else
                {
                    Group Job = GroupManager.GetJob(1);

                    if (Job != null)
                    {
                        BotGroups.Add(Job);
                    }
                }

                Group Gang = GroupManager.GetGang(1000);

                if (Gang != null)
                {
                    BotGroups.Add(Gang);
                }

                int BotFriendCount = 0;

                using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("SELECT COUNT(0) FROM `rp_bots_friendships` WHERE `bot_id` = '" + Bot.Id + "'");
                    BotFriendCount = dbClient.getInteger();
                }
                Session.SendMessage(new ProfileInformationComposer(null, Session, BotGroups, BotFriendCount, Bot));
                return;
            }

            Habbo targetData = PlusEnvironment.GetHabboById(userID);

            List <Group> Groups = PlusEnvironment.GetGame().GetGroupManager().GetGroupsForUser(targetData.Id);

            int friendCount = 0;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT COUNT(0) FROM `messenger_friendships` WHERE (`user_one_id` = @userid OR `user_two_id` = @userid)");
                dbClient.AddParameter("userid", userID);
                friendCount = dbClient.getInteger();
            }

            Session.SendMessage(new ProfileInformationComposer(targetData, Session, Groups, friendCount));
        }
Esempio n. 21
0
        public static void InvokeCommand(string inputData)
        {
            if (string.IsNullOrEmpty(inputData))
            {
                return;
            }
            try
            {
                #region Command parsing
                string[] parameters = inputData.Split(' ');
                switch (parameters[0].ToLower())
                {
                    #region General

                    #region wha
                case "wha":
                {
                    string Notice = CommandManager.MergeParams(parameters, 1);

                    foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                    {
                        if (client == null)
                        {
                            continue;
                        }

                        if (client.GetHabbo() == null)
                        {
                            continue;
                        }

                        if (client.LoggingOut)
                        {
                            continue;
                        }

                        client.SendWhisper("[Alerta do HOTEL] " + Notice, 33);
                    }

                    log.Info("Enviado Alerta: '" + Notice + "'");

                    break;
                }
                    #endregion

                    #region ban
                case "pban":
                case "ban":
                case "banir":
                {
                    string     User    = parameters[1].ToLower();
                    GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User);
                    Session.SendNotification("Você foi banido!");

                    if (Session != null)
                    {
                        #region Online Ban
                        if (Session.GetHabbo() == null)
                        {
                            return;
                        }

                        PlusEnvironment.GetGame().GetModerationManager().BanUser("[SISTEMA]", ModerationBanType.USERNAME, Session.GetHabbo().Username, "Ban automático ", 1538641023.14615);

                        if (Session != null)
                        {
                            Session.Disconnect(true);
                        }
                        #endregion
                    }
                    else
                    {
                        #region Offline Ban
                        using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                        {
                            double ExpireTimestamp = 1538641023.14615;
                            dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('user', '" + User + "','Automatic console ban', " + ExpireTimestamp + ", '[SYSTEM]', '" + PlusEnvironment.GetUnixTimestamp() + "');");
                            dbClient.RunQuery();
                        }
                        #endregion
                    }


                    log.Info("Proibido permanentemente: '" + User + "'");

                    break;
                }
                    #endregion

                    #region unban
                case "unban":
                case "desbanir":
                case "desban":
                {
                    string User = parameters[1].ToLower();

                    using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        dbClient.SetQuery("SELECT `ip_last`,`machine_id` FROM `users` where `username` = '" + User + "' LIMIT 1");
                        var Row = dbClient.getRow();

                        var IPLast    = Convert.ToString(Row["ip_last"]);
                        var MachineID = Convert.ToString(Row["machine_id"]);

                        dbClient.RunQuery("DELETE FROM `bans` WHERE `value` = '" + User + "' OR `value` = '" + IPLast + "' OR `value` = '" + MachineID + "'");
                    }

                    log.Info("Desbanido com sucesso: '" + User + "'!");

                    break;
                }
                    #endregion

                    #region dc
                case "dc":
                case "desconectar":
                {
                    #region Variables
                    string     User    = parameters[1].ToLower();
                    GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User);
                    #endregion

                    #region Conditions
                    if (Session == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }
                    #endregion

                    Session.Disconnect(true);
                    log.Info("'" + User + "' desconectado com sucesso!");

                    break;
                }
                    #endregion

                    #region senduser
                case "senduser":
                case "uenviar":
                case "enviaru":
                {
                    #region Variables
                    string     User    = parameters[1].ToLower();
                    GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User);

                    int RoomId = 1;
                    if (!int.TryParse(parameters[2], out RoomId))
                    {
                        log.Info("Quarto ID inválido!");
                        return;
                    }

                    RoomId = Convert.ToInt32(parameters[2]);
                    Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId);
                    #endregion

                    #region Null checks
                    if (Session == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }

                    if (Session.GetRoleplay() == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }

                    if (Session.GetHabbo() == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }

                    if (TargetRoom == null)
                    {
                        log.Info("'Quarto' está nulo!");
                    }
                    #endregion

                    #region Conditions
                    if (TargetRoom == Session.GetHabbo().CurrentRoom)
                    {
                        log.Info("Este usuário já está nesta sala!");
                        return;
                    }

                    if (Session.GetRoleplay().IsDead)
                    {
                        Session.GetRoleplay().IsDead = false;
                        Session.GetRoleplay().ReplenishStats();
                    }

                    if (Session.GetRoleplay().IsJailed)
                    {
                        Session.GetRoleplay().IsJailed       = false;
                        Session.GetRoleplay().JailedTimeLeft = 0;
                    }
                    #endregion

                    RoleplayManager.SendUser(Session, RoomId, "Você foi enviado para o quarto " + TargetRoom.Name + " [Quarto ID: " + RoomId + "] por um administrador!");
                    log.Info("Enviou com sucesso: '" + Session.GetHabbo().Username + "' para o Quarto ID: '" + RoomId + "'");
                    break;
                }
                    #endregion

                    #region kill
                case "kill":
                case "matar":
                {
                    #region Variables
                    string     User    = parameters[1].ToLower();
                    GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User);
                    #endregion

                    #region Null Checks
                    if (Session == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }

                    if (Session.GetRoleplay() == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }

                    if (Session.GetHabbo() == null)
                    {
                        log.Info("'" + User + "' está offline!");
                        return;
                    }
                    #endregion

                    Session.GetRoleplay().CurHealth = 0;
                    log.Info("Matou com sucesso: '" + Session.GetHabbo().Username + "'");

                    break;
                }
                    #endregion


                    #endregion

                    #region Server Management

                    #region stop
                case "deslig":
                case "shutdown":
                case "parar":
                case "stop":
                {
                    Logging.DisablePrimaryWriting(true);
                    Logging.WriteLine("O servidor está salvando móveis de usuários, quartos, etc. ESPERE QUE O SERVIDOR FECHE, NÃO SALE DO PROCESSO NO GERADOR DE TAREFAS!!", ConsoleColor.Yellow);
                    PlusEnvironment.PerformShutDown(false);
                    break;
                }
                    #endregion

                    #region refresh
                case "update":
                case "refresh":
                case "atualizar":
                {
                    if (parameters.Length < 2)
                    {
                        Console.WriteLine("Comando inválido!: :atualizar <o que?>");
                        return;
                    }

                    string ToRefresh = parameters[1].ToLower();

                    switch (ToRefresh)
                    {
                        #region p
                    case "ranks":
                    case "rights":
                    case "permissions":
                    case "cargos":
                    case "permissoes":
                    {
                        PlusEnvironment.GetGame().GetPermissionManager().Init();

                        log.Info("Direitos atualizados com sucesso!");

                        break;
                    }
                        #endregion

                        #region rpbots
                    case "bots":
                    case "bot":
                    case "rpbots":
                    case "rpbot":
                    case "robos":
                    {
                        log.Info("Successfully refreshed Roleplay bots!");
                        RoleplayBotManager.Initialize(true);

                        lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
                        {
                            foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                            {
                                if (client == null || client.GetHabbo() == null)
                                {
                                    continue;
                                }

                                client.SendWhisper("[SISTEMA]Todos os BOTS foram atualizados!", 33);
                            }
                        }
                    }
                    break;
                        #endregion

                        #region users
                    case "users":
                    case "usuarios":
                    {
                        foreach (GameClient user in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                        {
                            if (user == null)
                            {
                                continue;
                            }

                            if (user.LoggingOut)
                            {
                                continue;
                            }

                            if (user.GetRoleplay() != null)
                            {
                                if (user.GetRoleplay().WebSocketConnection != null)
                                {
                                    user.GetRoleplay().SendTopAlert("Todos os usuários foram atualizados, você será desconectado, entre novamente!");
                                }
                            }

                            user.Disconnect(false);
                        }

                        break;
                    }
                        #endregion

                        #region chats
                    case "chats":
                    case "wpp":
                    case "whatsapp":
                    case "grupos":
                    {
                        HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.Initialiaze();
                        break;
                    }
                        #endregion

                        #region botwait
                    case "botwait":
                    case "botesperando":
                    case "espera":
                    case "bespera":
                    {
                        foreach (RoomUser User in RoleplayBotManager.DeployedRoleplayBots.Values)
                        {
                            if (User == null)
                            {
                                continue;
                            }

                            if (User.GetBotRoleplay() == null)
                            {
                                continue;
                            }

                            log.Info(User.GetBotRoleplay().Name + " (Bot Esperando: " +
                                     User.GetBotRoleplay().RoomStayTime + "/" +
                                     User.GetBotRoleplay().RoomStayInterval + ") : (Contagem do Bot: " +
                                     User.GetBotRoleplay().RoamCooldown + ")" + " : (Bot Virtual ID: " + User.GetBotRoleplay().VirtualId + ")");
                        }
                    }
                    break;
                        #endregion

                        #region commands
                    case "commands":
                    case "comandos":
                    {
                        PlusEnvironment.GetGame().GetChatManager()._commands = new CommandManager(":");
                        Console.WriteLine("Todos os comandos foram atualizados!", ConsoleColor.Yellow);
                    }
                    break;
                        #endregion
                    }
                }
                break;
                    #endregion

                    #region sockets
                case "sockets":
                case "websockets":
                case "socket":
                {
                    Logging.WriteLine("Contador Socket:" + PlusEnvironment.GetGame().GetWebEventManager()._webSockets.Count + "", ConsoleColor.Yellow);
                    string Append = "";

                    foreach (Fleck.IWebSocketConnection Connection in PlusEnvironment.GetGame().GetWebEventManager()._webSockets.Keys.ToList())
                    {
                        Append += "WebSocket ID: " + PlusEnvironment.GetGame().GetWebEventManager().GetSocketsUserID(Connection) + "\n";
                        Append += "Socket disponível: " + Connection.IsAvailable.ToString() + "\n";
                        Append += "Socket caminho: " + Connection.ConnectionInfo.Path.Trim() + "\n";
                        Append += "Socket pronto: " + PlusEnvironment.GetGame().GetWebEventManager().SocketReady(Connection).ToString() + "\n";
                        Append += "\n\n";
                    }


                    Logging.WriteLine(Append);
                }
                break;
                    #endregion

                    #region sockets
                case "chats":
                {
                    Logging.WriteLine("TOTAL Contagem de grupos:" + HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.RunningChatRooms.Count + "", ConsoleColor.Red);
                    string Append = "";

                    foreach (HabboRoleplay.Web.Util.ChatRoom.WebSocketChatRoom ChatRoom in HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.RunningChatRooms.Values)
                    {
                        Append += "\n\nNome do Chat: " + ChatRoom.ChatName + "\n";
                        Append += "Dono do Chat: " + ChatRoom.ChatOwner + "\n";
                        Append += "Usuários: " + ChatRoom.ChatUsers.Count + "\n";
                        Append += "Chatlog: " + ChatRoom.ChatLogs.Count + "\n";
                        Append += "<--------Usuários-------->";
                        foreach (GameClient User in ChatRoom.ChatUsers.Keys)
                        {
                            Append += "\nUsuário: " + User.GetHabbo().Username + "";
                        }
                        Append += "\n---------------------";
                    }


                    Logging.WriteLine(Append, ConsoleColor.Red);
                }
                break;
                    #endregion

                    #region clear
                case "clear":
                case "limpar":
                {
                    Console.Clear();
                    break;
                }
                    #endregion

                    #region alert
                case "alert":
                case "alerta":
                case "alertar":
                {
                    string Notice = inputData.Substring(6);

                    PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("console.noticefromadmin") + "\n\n" + Notice));

                    log.Info("Alerta enviado com sucesso.");
                    break;
                }
                    #endregion

                    #region furni and catalog commands

                    #region Catalog stuff
                case "updatefurni":
                case "attmobis":
                {
                    PlusEnvironment.GetGame().GetItemManager().UpdateFurniSpecial();
                    PlusEnvironment.GetGame().GetItemManager().ProductDataMaker();
                    PlusEnvironment.GetGame().GetItemManager().DownloadFurnis();
                    log.Info("Completamente atualizado todos os furni!");
                    break;
                }

                case "furnidata":
                case "attdata":
                {
                    PlusEnvironment.GetGame().GetItemManager().UpdateFurniSpecial();
                    log.Info("Completamente atualizado todos os dados!.");
                    break;
                }

                case "furni":
                case "mobis":
                {
                    PlusEnvironment.GetGame().GetItemManager().DownloadFurnis();
                    log.Info("Successfully updated database with furnidata.");
                    break;
                }

                case "productdata":
                case "cache":
                {
                    PlusEnvironment.GetGame().GetItemManager().ProductDataMaker();
                    break;
                }
                    #endregion

                    #region FurniFix2
                case "furnifix2":
                case "fixmobis":
                {
                    using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        dbClient.SetQuery("SELECT * FROM `furniture_old`");
                        DataTable Table = dbClient.getTable();

                        dbClient.SetQuery("SELECT * FROM `items`");
                        DataTable ToFix = dbClient.getTable();

                        int Count  = 0;
                        int Count2 = 0;

                        if (Table != null && ToFix != null)
                        {
                            Dictionary <int, int> Changes = new Dictionary <int, int>();

                            int counter  = 0;
                            int counter2 = 0;

                            foreach (DataRow Row in Table.Rows)
                            {
                                string Name = Convert.ToString(Row["item_name"]);
                                int    Id   = Convert.ToInt32(Row["id"]);

                                ItemData Data = null;
                                if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Name, out Data))
                                {
                                    continue;
                                }

                                if (Changes.ContainsKey(Id))
                                {
                                    continue;
                                }

                                counter++;
                                Changes.Add(Id, Data.Id);

                                if (counter > 100)
                                {
                                    counter2++;
                                    counter = 0;
                                    Console.WriteLine("Anotação: " + (counter2 * 100) + " itens adicionados até agora");
                                }
                            }
                            Console.WriteLine("Fez a anotaçãos");

                            StringBuilder String = new StringBuilder();

                            foreach (DataRow Row in ToFix.Rows)
                            {
                                int    DataId       = Convert.ToInt32(Row["id"]);
                                int    UserId       = Convert.ToInt32(Row["user_id"]);
                                int    RoomId       = Convert.ToInt32(Row["room_id"]);
                                int    BaseItem     = Convert.ToInt32(Row["base_item"]);
                                string ExtraData    = Row["extra_data"].ToString();
                                int    X            = Convert.ToInt32(Row["x"]);
                                int    Y            = Convert.ToInt32(Row["y"]);
                                double Z            = Convert.ToDouble(Row["z"]);
                                int    Rot          = Convert.ToInt32(Row["rot"]);
                                string WallPos      = Row["wall_pos"].ToString();
                                int    LimitedNum   = Convert.ToInt32(Row["limited_number"]);
                                int    LimitedStack = Convert.ToInt32(Row["limited_stack"]);

                                if (Changes.ContainsKey(BaseItem))
                                {
                                    Count++;

                                    if (Count >= 100)
                                    {
                                        Count = 0;
                                        Count2++;
                                        Console.WriteLine("Atualizado " + (Count2 * 100) + " items até agora!");
                                    }

                                    String.Append("INSERT INTO `items_new` VALUES ('" + DataId + "','" + UserId + "','" + RoomId + "','" + Changes[BaseItem] + "','" + ExtraData + "','" + X + "','" + Y + "','" + Z + "','" + Rot + "','" + WallPos + "','" + LimitedNum + "','" + LimitedStack + "');\n");
                                }
                            }
                            ConsoleWriter.Writer.WriteProductData(String.ToString());
                        }
                        Console.WriteLine("Terminado!");
                    }
                    break;
                }
                    #endregion

                    #region FurniFix
                case "furnifix":
                case "mobifix":
                {
                    Dictionary <int, int> Changes = new Dictionary <int, int>();

                    using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        dbClient.SetQuery("SELECT * FROM `furniture_fix`");
                        DataTable Table = dbClient.getTable();

                        if (Table != null)
                        {
                            foreach (DataRow Row in Table.Rows)
                            {
                                string Name  = Convert.ToString(Row["item_name"]);
                                int    OldId = Convert.ToInt32(Row["id"]);
                                int    NewId = Convert.ToInt32(Row["new_id"]);

                                if (NewId == 0 && !Changes.ContainsKey(OldId))
                                {
                                    dbClient.SetQuery("SELECT * FROM `furniture` WHERE `item_name` = '" + Name.ToLower() + "' LIMIT 1");
                                    DataRow Data = dbClient.getRow();

                                    if (Data != null)
                                    {
                                        int RealNewId = Convert.ToInt32(Data["id"]);

                                        Changes.Add(OldId, RealNewId);
                                    }
                                }
                            }
                            Console.WriteLine("terminado na anotação");

                            foreach (var Pair in Changes)
                            {
                                dbClient.RunQuery("UPDATE `furniture_fix` SET `new_id` = '" + Pair.Value + "' WHERE `id` = '" + Pair.Key + "' LIMIT 1");
                            }

                            Console.WriteLine("TABELA DE FIXAÇÃO DE MOBILIÁRIO FINALIZADA");
                        }
                    }
                    break;
                }
                    #endregion

                    #endregion

                    #endregion

                    #region Default
                default:
                {
                    log.Error(parameters[0].ToLower() + " é um comando desconhecido ou não suportado. Digite ajuda para obter mais informações");
                    break;
                }
                    #endregion
                }
                #endregion
            }
            catch (Exception e)
            {
                log.Error("Erro no comando [" + inputData + "]: " + e);
            }
        }
Esempio n. 22
0
        public bool RequestBuddy(string UserQuery)
        {
            int  userID;
            bool hasFQDisabled;

            #region Bot Friendship
            if (RoleplayBotManager.GetDeployedBotByName(UserQuery) != null)
            {
                RoomUser BotUser = RoleplayBotManager.GetDeployedBotByName(UserQuery);

                if (BotUser.GetBotRoleplay() == null)
                {
                    return(false);
                }

                if (GetClient().GetRoleplay().BotFriendShips.ContainsKey(BotUser.GetBotRoleplay().Id))
                {
                    GetClient().SendWhisper("Você já é amigo deste NPC!", 1);
                    return(false);
                }

                if (!BotUser.GetBotRoleplay().AddableBot)
                {
                    GetClient().SendWhisper("Você não pode adicionar este bot!", 1);
                    return(false);
                }

                BotUser.Chat("OK " + GetClient().GetHabbo().Username + ", eu adicionei você à lista de contatos do meu telefone!", true);
                GetClient().GetRoleplay().AddBotAsFriend(BotUser.GetBotRoleplay().Id);

                return(true);
            }
            #endregion

            if (GetClient().GetRoleplay().PhoneType <= 0)
            {
                GetClient().SendWhisper("Você não tem um telefone para fazer isso! Compre um na Loja de Celulares [Quarto ID: 25]", 1);
                return(false);
            }

            GameClient client = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(UserQuery);
            if (client == null)
            {
                DataRow Row = null;
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("SELECT `id`,`block_newfriends` FROM `users` WHERE `username` = @query LIMIT 1");
                    dbClient.AddParameter("query", UserQuery.ToLower());
                    Row = dbClient.getRow();
                }

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

                userID        = Convert.ToInt32(Row["id"]);
                hasFQDisabled = PlusEnvironment.EnumToBool(Row["block_newfriends"].ToString());
            }
            else
            {
                userID        = client.GetHabbo().Id;
                hasFQDisabled = client.GetHabbo().AllowFriendRequests;
            }

            if (hasFQDisabled)
            {
                GetClient().SendMessage(new MessengerErrorComposer(39, 3));
                return(false);
            }

            int ToId = userID;
            if (RequestExists(ToId))
            {
                return(true);
            }

            int PhoneType = 0;
            if (client == null || client.GetHabbo() == null || client.GetRoleplay() == null)
            {
                using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("SELECT `phone` FROM `rp_stats` WHERE `id` = @userid LIMIT 1");
                    dbClient.AddParameter("userid", userID);
                    PhoneType = dbClient.getInteger();
                }
            }
            else
            {
                PhoneType = client.GetRoleplay().PhoneType;
            }

            if (PhoneType <= 0)
            {
                GetClient().SendWhisper("Desculpe, " + UserQuery + " não tem um telefone!", 1);
                return(false);
            }

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("REPLACE INTO `messenger_requests` (`from_id`,`to_id`) VALUES ('" + _userId + "','" + ToId + "')");
            }

            GameClient ToUser = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(ToId);
            if (ToUser == null || ToUser.GetHabbo() == null)
            {
                return(true);
            }

            MessengerRequest Request = new MessengerRequest(ToId, _userId, PlusEnvironment.GetGame().GetClientManager().GetNameById(_userId));

            ToUser.GetHabbo().GetMessenger().OnNewRequest(_userId);

            using (UserCache ThisUser = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(_userId))
            {
                if (ThisUser != null)
                {
                    ToUser.SendMessage(new NewBuddyRequestComposer(ThisUser));
                }
            }

            _requests.Add(ToId, Request);
            return(true);
        }
Esempio n. 23
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Por favor, insira o item que você gostaria de entregar!", 1);
                return;
            }

            if (RoleplayManager.CalledDelivery)
            {
                Session.SendWhisper("O remetente está muito ocupado agora mesmo! Por favor, tente novamente mais tarde.", 1);
                return;
            }

            bool DeliveryCame = false;

            string Item = Params[1];

            switch (Item.ToLower())
            {
                #region Weapons
            case "glock":
            case "magnum":
            case "mp5":
            case "pistola":
            {
                if (!Room.DeliveryEnabled)
                {
                    Session.SendWhisper("O remetente não entrega a este quarto!", 1);
                    break;
                }

                if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything"))
                {
                    Session.SendWhisper("Você deve estar trabalhando para chamar o homem de entrega!", 1);
                    break;
                }

                if (!GroupManager.HasJobCommand(Session, "weapon") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything"))
                {
                    Session.SendWhisper("Você não trabalha na loja de armas!", 1);
                    break;
                }

                var Weapon = WeaponManager.getWeapon(Item.ToLower());

                if (Weapon == null)
                {
                    Session.SendWhisper("Por algum motivo, esta arma não pôde ser encontrada", 1);
                    break;
                }

                if (Weapon.Stock > 0)
                {
                    Session.SendWhisper("Aguarde até o " + Weapon.PublicName + " acabar o estoque para chamar o entregador!", 1);
                    break;
                }

                RoleplayBot Bot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY);

                if (Bot == null)
                {
                    Session.SendWhisper("Nenhum mecanismo de entrega foi encontrado, entre em contato com um membro da equipe!", 1);
                    break;
                }

                RoleplayManager.UserWhoCalledDelivery = Session.GetHabbo().Id;
                RoleplayManager.CalledDelivery        = true;
                RoleplayManager.DeliveryWeapon        = Weapon;

                new Thread(() =>
                    {
                        if (Session.GetRoomUser() != null)
                        {
                            Session.Shout("*Pega seu telefone e chama o remetente, ordenando um novo estoque de " + Weapon.PublicName + "*", 4);
                            Session.GetRoomUser().ApplyEffect(EffectsList.CellPhone);
                        }

                        Thread.Sleep(3000);

                        if (Session.GetRoomUser() != null)
                        {
                            Session.GetRoomUser().ApplyEffect(0);
                        }
                    }).Start();

                var BotUser = RoleplayBotManager.GetDeployedBotById(Bot.Id);
                new Thread(() =>
                    {
                        Thread.Sleep(15000);


                        RoleplayBot DeliverrBot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY);

                        if (!DeliveryCame)
                        {
                            if (DeliverrBot == null)
                            {
                                Session.SendWhisper("Não é possível obter o bot de entrega, tente novamente mais tarde!", 1);
                                Thread.CurrentThread.Abort();
                                return;
                            }
                            else
                            {
                                RoleplayBotManager.DeployBotByAI(RoleplayBotAIType.DELIVERY, "default", Room.Id);
                                DeliveryCame = true;
                            }
                        }

                        while (Room != null && Room.GetRoomItemHandler() != null && Room.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == HabboHotel.Items.InteractionType.DELIVERY_BOX).ToList().Count <= 0)
                        {
                            Thread.Sleep(10);
                        }

                        Thread.Sleep(2000);
                        RoleplayManager.CalledDelivery = false;
                    }).Start();
                break;
            }
                #endregion

                #region Default
            default:
            {
                Session.SendWhisper("Isso não é um item entregue!", 1);
                break;
            }
                #endregion
            }
        }
Esempio n. 24
0
        /// <summary>
        /// Loads bot friendships
        /// </summary>
        internal void LoadBotFriendships()
        {
            BotFriendShips = new ConcurrentDictionary <int, RoleplayBot>();

            DataTable BotFriends = null;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `bot_id` FROM `rp_bots_friendships` WHERE `user_id` = '" + Client.GetHabbo().Id + "'");
                BotFriends = dbClient.getTable();

                if (BotFriends == null)
                {
                    return;
                }

                foreach (DataRow BotUser in BotFriends.Rows)
                {
                    int BotId = Convert.ToInt32(BotUser["bot_id"]);

                    RoleplayBot Botfriend = RoleplayBotManager.GetCachedBotById(BotId);

                    if (Botfriend == null)
                    {
                        return;
                    }

                    MessengerBuddy newfriend = new MessengerBuddy(Botfriend.Id + RoleplayBotManager.BotFriendMultiplyer,
                                                                  Botfriend.Name,
                                                                  Botfriend.Figure,
                                                                  Botfriend.Motto, 0, false, true, true);

                    int addid = Botfriend.Id + RoleplayBotManager.BotFriendMultiplyer;

                    if (Client.GetHabbo() == null)
                    {
                        return;
                    }

                    if (Client.GetHabbo().GetMessenger() == null)
                    {
                        return;
                    }

                    if (Client.GetHabbo().GetMessenger()._friends == null)
                    {
                        return;
                    }

                    if (!Client.GetHabbo().GetMessenger()._friends.ContainsKey(addid))
                    {
                        Client.GetHabbo().GetMessenger()._friends.Add(addid, newfriend);
                    }

                    if (!BotFriendShips.ContainsKey(Botfriend.Id))
                    {
                        BotFriendShips.TryAdd(Botfriend.Id, Botfriend);
                    }

                    Client.SendMessage(Client.GetHabbo().GetMessenger().SerializeUpdate(newfriend));
                }
            }
        }
Esempio n. 25
0
 public RoomUser GetDeployedInstance()
 {
     return(RoleplayBotManager.GetDeployedBotById(this.Id));
 }
Esempio n. 26
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            Room Room;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
            {
                return;
            }

            if (!Room.CheckRights(Session, true))
            {
                return;
            }

            int BotId = Packet.PopInt();
            int X     = Packet.PopInt();
            int Y     = Packet.PopInt();

            if (!Room.GetGameMap().CanWalk(X, Y, false) || !Room.GetGameMap().ValidTile(X, Y))
            {
                Session.SendNotification("Você não pode colocar um bot aqui!");
                return;
            }

            Bot Bot = null;

            if (!Session.GetHabbo().GetInventoryComponent().TryGetBot(BotId, out Bot))
            {
                return;
            }


            RoleplayBot RoleplayBotInstance;

            if (RoleplayBotManager.CachedRoleplayBots.TryGetValue(BotId, out RoleplayBotInstance))
            {
                RoleplayBotManager.DeployBotByID(BotId);
                return;
            }

            int BotCount = 0;

            foreach (RoomUser User in Room.GetRoomUserManager().GetUserList().ToList())
            {
                if (User == null || User.IsPet || !User.IsBot)
                {
                    continue;
                }

                BotCount += 1;
            }

            if (BotCount >= 5 && !Session.GetHabbo().GetPermissions().HasRight("bot_place_any_override"))
            {
                Session.SendNotification("Desculpa; 5 bots por quarto apenas!");
                return;
            }

            //TODO: Hmm, maybe not????
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("UPDATE `bots` SET `room_id` = '" + Room.RoomId + "', `x` = @CoordX, `y` = @CoordY WHERE `id` = @BotId LIMIT 1");
                dbClient.AddParameter("BotId", Bot.Id);
                dbClient.AddParameter("CoordX", X);
                dbClient.AddParameter("CoordY", Y);
                dbClient.RunQuery();
            }

            List <RandomSpeech> BotSpeechList = new List <RandomSpeech>();

            //TODO: Grab data?
            DataRow GetData = null;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `ai_type`,`rotation`,`walk_mode`,`automatic_chat`,`speaking_interval`,`mix_sentences`,`chat_bubble` FROM `bots` WHERE `id` = @BotId LIMIT 1");
                dbClient.AddParameter("BotId", Bot.Id);
                GetData = dbClient.getRow();

                dbClient.SetQuery("SELECT `text` FROM `bots_speech` WHERE `bot_id` = @BotId");
                dbClient.AddParameter("BotId", Bot.Id);
                DataTable BotSpeech = dbClient.getTable();

                foreach (DataRow Speech in BotSpeech.Rows)
                {
                    BotSpeechList.Add(new RandomSpeech(Convert.ToString(Speech["text"]), Bot.Id));
                }
            }

            RoomUser BotUser = Room.GetRoomUserManager().DeployBot(new RoomBot(Bot.Id, Session.GetHabbo().CurrentRoomId, Convert.ToString(GetData["ai_type"]), Convert.ToString(GetData["walk_mode"]), Bot.Name, "", Bot.Figure, X, Y, 0, 4, 0, 0, 0, 0, ref BotSpeechList, "", 0, Bot.OwnerId, PlusEnvironment.EnumToBool(GetData["automatic_chat"].ToString()), Convert.ToInt32(GetData["speaking_interval"]), PlusEnvironment.EnumToBool(GetData["mix_sentences"].ToString()), Convert.ToInt32(GetData["chat_bubble"])), null);

            BotUser.Chat("Hello!", false, 0);

            Room.GetGameMap().UpdateUserMovement(new System.Drawing.Point(X, Y), new System.Drawing.Point(X, Y), BotUser);


            Bot ToRemove = null;

            if (!Session.GetHabbo().GetInventoryComponent().TryRemoveBot(BotId, out ToRemove))
            {
                Console.WriteLine("Erro ao remover Bot: " + ToRemove.Id);
                return;
            }
            Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots()));
        }
Esempio n. 27
0
        public void UnloadRoom(Room Room, bool RemoveData = false)
        {
            if (Room == null)
            {
                return;
            }

            #region Roleplay Checks

            #region Turf
            Turf Turf = TurfManager.GetTurf(Room.RoomId);

            if (Turf != null)
            {
                Turf.Flag        = null;
                Turf.FlagSpawned = false;
            }
            #endregion

            #region Texas Hold Em
            List <TexasHoldEm> Games = TexasHoldEmManager.GetGamesByRoomId(Room.Id);
            if (Games.Count > 0)
            {
                foreach (TexasHoldEm Game in Games)
                {
                    if (Game != null)
                    {
                        #region PotSquare Check
                        Game.PotSquare.Furni = null;
                        #endregion

                        #region JoinGate Check
                        Game.JoinGate.Furni = null;
                        #endregion

                        #region Player1 Check
                        foreach (TexasHoldEmItem Item in Game.Player1.Values)
                        {
                            Item.Furni = null;
                        }
                        #endregion

                        #region Player2 Check
                        foreach (TexasHoldEmItem Item in Game.Player2.Values)
                        {
                            Item.Furni = null;
                        }
                        #endregion

                        #region Player3 Check
                        foreach (TexasHoldEmItem Item in Game.Player3.Values)
                        {
                            Item.Furni = null;
                        }
                        #endregion

                        #region Banker Check
                        foreach (TexasHoldEmItem Item in Game.Banker.Values)
                        {
                            Item.Furni = null;
                        }
                        #endregion
                    }
                }
            }
            #endregion

            #region Farming
            List <FarmingSpace> FarmingSpaces = FarmingManager.GetFarmingSpacesByRoomId(Room.Id);
            if (FarmingSpaces.Count > 0)
            {
                foreach (FarmingSpace Space in FarmingSpaces)
                {
                    if (Space != null)
                    {
                        Space.Item    = null;
                        Space.Spawned = false;
                    }
                }
            }
            #endregion

            #region Houses
            List <House> Houses = PlusEnvironment.GetGame().GetHouseManager().GetHousesBySignRoomId(Room.Id);
            if (Houses.Count > 0)
            {
                foreach (House House in Houses)
                {
                    if (House.Sign != null)
                    {
                        House.Sign.Item    = null;
                        House.Sign.Spawned = false;
                    }
                }
            }
            #endregion

            #region Bots
            RoleplayBotManager.EjectRoomsDeployedBots(Room);
            #endregion

            #endregion

            new Thread(() => {
                Thread.Sleep(200);
                Room room = null;
                if (this._rooms.TryRemove(Room.RoomId, out room))
                {
                    Room.Dispose();

                    if (RemoveData)
                    {
                        RoomData Data = null;
                        this._loadedRoomData.TryRemove(Room.Id, out Data);
                    }
                }
            }).Start();
        }
Esempio n. 28
0
        public static void Initialize()
        {
            ServerStarted           = DateTime.Now;
            Console.ForegroundColor = ConsoleColor.DarkGreen;
            Console.WriteLine();
            Console.WriteLine("                     ____  __           ________  _____  __");
            Console.WriteLine(@"                    / __ \/ /_  _______/ ____/  |/  / / / /");
            Console.WriteLine("                   / /_/ / / / / / ___/ __/ / /|_/ / / / / ");
            Console.WriteLine("                  / ____/ / /_/ (__  ) /___/ /  / / /_/ /  ");
            Console.WriteLine(@"                 /_/   /_/\__,_/____/_____/_/  /_/\____/ ");

            Console.ForegroundColor = ConsoleColor.Green;

            Console.WriteLine("                                " + PrettyVersion + " <Feito por " + PrettyBuild + ">");
            Console.WriteLine("                                suamae");

            Console.WriteLine("");
            Console.Title    = "Plus Emulador [Carregando...]";
            _defaultEncoding = Encoding.Default;

            Console.WriteLine("");
            Console.WriteLine("");

            CultureInfo = CultureInfo.CreateSpecificCulture("pt-BR");


            try
            {
                _configuration = new ConfigurationData(Path.Combine(Application.StartupPath, @"config.ini"));

                var connectionString = new MySqlConnectionStringBuilder
                {
                    ConnectionTimeout     = 60,
                    Database              = GetConfig().data["db.name"],
                    DefaultCommandTimeout = 120,
                    Logging             = false,
                    MaximumPoolSize     = uint.Parse(GetConfig().data["db.pool.maxsize"]),
                    MinimumPoolSize     = uint.Parse(GetConfig().data["db.pool.minsize"]),
                    Password            = GetConfig().data["db.password"],
                    Pooling             = true,
                    Port                = uint.Parse(GetConfig().data["db.port"]),
                    Server              = GetConfig().data["db.hostname"],
                    UserID              = GetConfig().data["db.username"],
                    AllowZeroDateTime   = true,
                    ConvertZeroDateTime = true,
                };

                _manager = new DatabaseManager(connectionString.ToString());

                if (!_manager.IsConnected())
                {
                    log.Error("Falha ao conectar ao específico servidor MySQL.");
                    Console.ReadKey(true);
                    Environment.Exit(1);
                    return;
                }


                log.Info("Conectado a database!");

                //Reset our statistics first.
                int randomInt = ((System.Diagnostics.Debugger.IsAttached) ? 0 : 1);
                using (IQueryAdapter dbClient = GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.RunQuery("TRUNCATE `catalog_marketplace_data`");
                    dbClient.RunQuery("UPDATE `rooms` SET `users_now` = '0' WHERE `users_now` > '0';");
                    dbClient.RunQuery("UPDATE `users` SET `online` = '0' WHERE `online` = '1'");
                    dbClient.RunQuery("UPDATE `server_status` SET `users_online` = '0', `loaded_rooms` = '0', `environment_status` = '" + randomInt + "'");
                }

                //Get the configuration & Game set.
                ConfigData = new ConfigData();
                _game      = new Game();

                //Have our encryption ready.
                HabboEncryptionV2.Initialize(new RSAKeys());

                //Make sure MUS is working.
                MusSystem = new MusSocket(GetConfig().data["mus.tcp.bindip"], int.Parse(GetConfig().data["mus.tcp.port"]), GetConfig().data["mus.tcp.allowedaddr"].Split(Convert.ToChar(";")), 0);

                //Accept connections.
                _connectionManager = new ConnectionHandling(int.Parse(GetConfig().data["game.tcp.port"]), int.Parse(GetConfig().data["game.tcp.conlimit"]), int.Parse(GetConfig().data["game.tcp.conperip"]), GetConfig().data["game.tcp.enablenagles"].ToLower() == "true");
                _connectionManager.init();

                _game.StartGameLoop();

                TimeSpan TimeUsed = DateTime.Now - ServerStarted;

                Console.WriteLine();

                log.Info("EMULATOR -> READY! (" + TimeUsed.Seconds + " s, " + TimeUsed.Milliseconds + " ms)");
            }
            catch (KeyNotFoundException e)
            {
                Logging.WriteLine("Verifique o seu arquivo de configuração - alguns valores parecem estar faltando.", ConsoleColor.Red);
                Logging.WriteLine("Pressione qualquer tecla para desligar...");
                Logging.WriteLine(e.ToString());
                Console.ReadKey(true);
                Environment.Exit(1);
                return;
            }
            catch (InvalidOperationException e)
            {
                Logging.WriteLine("Falha ao inicializar Plus Emulador: " + e.Message, ConsoleColor.Red);
                Logging.WriteLine("Pressione qualquer tecla para desligar...");
                Console.ReadKey(true);
                Environment.Exit(1);
                return;
            }
            catch (Exception e)
            {
                Logging.WriteLine("Erro fatal para iniciar: " + e, ConsoleColor.Red);
                Logging.WriteLine("Pressione qualquer tecla para fechar.");

                Console.ReadKey();
                Environment.Exit(1);
            }


            RoleplayBotManager.Initialize(false);
        }