Beispiel #1
0
 internal void QueueRoomKick(RoomKick kick)
 {
     lock (roomKick.SyncRoot)
     {
         roomKick.Enqueue(kick);
     }
 }
Beispiel #2
0
        public static Boolean Parse(GameClient Session, string Input)
        {
            if (!Input.StartsWith(":"))
            {
                return false;
            }

            Input = Input.Substring(1);
            string[] Params = Input.Split(' ');

            #region Commands
            switch (Params[0].ToLower())
            {
                #region User Commands
                #region Commands (:commands)
                case "commands":
                case "cmds":
                    {
                        if (Session.GetHabbo().HasCmd("commands"))
                        {
                            DataTable data;
                            StringBuilder builder = new StringBuilder();

                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                dbClient.setQuery("SELECT command,params,description FROM fuse_cmds WHERE rank <= " + Session.GetHabbo().Rank + " ORDER BY id DESC");// LIMIT " + min + ",15");// + max+ "");
                                data = dbClient.getTable();
                            }

                            builder.Append("You have the following commands available to use:\n");
                            foreach (DataRow row in data.Rows)
                            {
                                builder.Append(":" + Convert.ToString(row[0]) + " " + Convert.ToString(row[1]) + "\n - " + Convert.ToString(row[2]) + "\n");
                            }
                            Session.SendNotifWithScroll(builder.ToString());
                        }
                        return true;
                    }
                #endregion

                #region About (:about)
                case "about":
                case "info":
                    {
                        if (Session.GetHabbo().HasCmd("about"))
                        {
                            StringBuilder About = new StringBuilder();

                            About.Append("Plus Emulator - Release 2.1  \n\r  @forum.ragezone.com ");

                            Session.SendNotifWithScroll(About.ToString());
                        }
                        return true;
                    }
                #endregion

                #region Sit (:sit)
                case "sit":
                    {
                        if (Session.GetHabbo().HasCmd("sit"))
                        {
                            RoomUser user = null;
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin"))
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                if (Client != null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (user == null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            else
                            {
                                user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            //Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0);

                            if (user.Statusses.ContainsKey("lie") || user.isLying || user.RidingHorse || user.IsWalking)
                            {
                                return true;
                            }

                            if (!user.Statusses.ContainsKey("sit"))
                            {
                                if ((user.RotBody % 2) == 0)
                                {
                                    if (user == null)
                                        return true;

                                    try
                                    {
                                        user.Statusses.Add("sit", "1.0");
                                        user.Z -= 0.35;
                                        user.isSitting = true;
                                        user.UpdateNeeded = true;
                                    }
                                    catch { }
                                }
                                else
                                {
                                    user.RotBody--;
                                    user.Statusses.Add("sit", "1.0");
                                    user.Z -= 0.35;
                                    user.isSitting = true;
                                    user.UpdateNeeded = true;
                                }
                            }
                            else if (user.isSitting == true)
                            {
                                user.Z += 0.35;
                                user.Statusses.Remove("sit");
                                user.Statusses.Remove("1.0");
                                user.isSitting = false;
                                user.UpdateNeeded = true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Lie (:lie)
                case "lie":
                case "lay":
                    {
                        if (Session.GetHabbo().HasCmd("lie"))
                        {
                            RoomUser user = null;
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin"))
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                if (Client != null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (user == null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            else
                            {
                                user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0);
                            if (!room.GetGameMap().ValidTile(user.X + 2, user.Y + 2) && !room.GetGameMap().ValidTile(user.X + 1, user.Y + 1))
                            {
                                SendChatMessage(Session, "Try lying somewhere valid!");
                                return true;
                            }

                            if (user.Statusses.ContainsKey("sit") || user.isSitting || user.RidingHorse || user.IsWalking)
                            {
                                return true;
                            }

                            if (!user.Statusses.ContainsKey("lay"))
                            {
                                if ((user.RotBody % 2) == 0)
                                {
                                    if (user == null)
                                        return true;

                                    try
                                    {
                                        user.Statusses.Add("lay", "1.0 null");
                                        user.Z -= 0.35;
                                        user.isLying = true;
                                        user.UpdateNeeded = true;
                                    }
                                    catch { }
                                }
                                else
                                {
                                    user.RotBody--;
                                    user.Statusses.Add("lay", "1.0 null");
                                    user.Z -= 0.35;
                                    user.isLying = true;
                                    user.UpdateNeeded = true;
                                }

                            }
                            else
                            {
                                user.Z += 0.35;
                                user.Statusses.Remove("lay");
                                user.Statusses.Remove("1.0");
                                user.isLying = false;
                                user.UpdateNeeded = true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Pickall (:pickall)
                case "pickall":
                    {
                        if (Session.GetHabbo().HasCmd("pickall"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                if (TargetRoom.Group != null)
                                {
                                    Session.SendNotif("You are unable to pickall in group rooms.");
                                    return true;
                                }

                                if (TargetRoom.ForSale)
                                {
                                    Session.SendNotif("You are unable to pickall a room whilst it is for sale.");
                                    return true;
                                }

                                List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session);

                                if (Session.GetHabbo().GetInventoryComponent() != null)
                                {
                                    Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems);
                                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                                }
                            }
                            else
                            {
                                Session.SendNotif("An error occured.");
                            }
                        }
                        return true;
                    }
                #endregion

                #region Unload (:unload)
                case "unload":
                    {
                        if (Session.GetHabbo().HasCmd("unload"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(TargetRoom);
                                TargetRoom.RequestReload();
                            }
                        }
                        return true;
                    }
                #endregion

                #region Set Max (:setmax)
                case "setmax":
                    {
                        if (Session.GetHabbo().HasCmd("setmax"))
                        {
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "You must enter a number to set");
                                return true;
                            }

                            try
                            {
                                int Max = int.Parse(Params[1]);

                                if ((Max > 101 && Session.GetHabbo().Rank < 3))
                                {
                                    Session.SendNotif("The maximum users is 100");
                                    return true;
                                }
                                else if (Max < 10 && Session.GetHabbo().Rank < 3)
                                {
                                    Session.SendNotif("The minimum users is 10");
                                    return true;
                                }

                                Room room = Session.GetHabbo().CurrentRoom;
                                room.UsersMax = Max;
                                room.SetMaxUsers(Max);
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region User Info (:userinfo)
                case "userinfo":
                case "ui":
                    {
                        if (Session.GetHabbo().HasCmd("userinfo"))
                        {
                            string username = Params[1];
                            bool UserOnline = true;
                            if (string.IsNullOrEmpty(username))
                            {
                                Session.SendNotif("Please enter a username");
                                return true;
                            }

                            GameClient tTargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username);

                            if (tTargetClient == null || tTargetClient.GetHabbo() == null)
                            {
                                DataRow Row;
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("SELECT username, rank, online, id, motto, credits FROM users WHERE username=@user LIMIT 1");
                                    dbClient.addParameter("user", username);
                                    Row = dbClient.getRow();

                                    Session.SendNotif("User Info for " + username + ":\r" +
                                "Rank: " + Row[1].ToString() + " \r" +
                                "User Id: " + Row[3].ToString() + " \r" +
                                "Motto: " + Row[4].ToString() + " \r" +
                                "Credits: " + Row[5].ToString() + " \r");
                                }
                                return true;
                            }
                            Habbo User = tTargetClient.GetHabbo();

                            //Habbo User = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(username).GetHabbo();
                            StringBuilder RoomInformation = new StringBuilder();

                            if (User.CurrentRoom != null)
                            {
                                RoomInformation.Append(" - ROOM INFORMAtiON [" + User.CurrentRoom.RoomId + "] - \r");
                                RoomInformation.Append("Owner: " + User.CurrentRoom.Owner + "\r");
                                RoomInformation.Append("Room Name: " + User.CurrentRoom.Name + "\r");
                                RoomInformation.Append("Current Users: " + User.CurrentRoom.UserCount + "/" + User.CurrentRoom.UsersMax);
                            }
                            Session.SendNotif("User info for: " + username + ":\r" +
                                "Rank: " + User.Rank + " \r" +
                                "Online: " + UserOnline.ToString() + " \r" +
                                "User Id: " + User.Id + " \r" +
                                "Current Room: " + User.CurrentRoomId + " \r" +
                                "Motto: " + User.Motto + " \r" +
                                "Credits: " + User.Credits + " \r" +
                                "Muted: " + User.Muted.ToString() + "\r" +
                                "\r\r" + RoomInformation.ToString());

                        }
                        return true;
                    }
                #endregion

                #region Disable Diagonal (:disablediagonal)
                case "disablediagonal":
                case "disablediag":
                case "togglediagonal":
                    {
                        if (Session.GetHabbo().HasCmd("togglediagonal"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = Session.GetHabbo().CurrentRoom;

                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                if (TargetRoom.GetGameMap().DiagonalEnabled)
                                    TargetRoom.GetGameMap().DiagonalEnabled = false;
                                else
                                    TargetRoom.GetGameMap().DiagonalEnabled = true;

                            }
                        }
                        return true;
                    }
                #endregion

                #region Freeze (:freeze)
                case "freeze":
                    {
                        if (Session.GetHabbo().HasCmd("freeze"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]);
                            if (Target != null)
                                Target.Frozen = true;
                        }
                        return true;
                    }
                #endregion

                #region unFreeze (:unfreeze)
                case "unfreeze":
                    {
                        if (Session.GetHabbo().HasCmd("unfreeze"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]);
                            if (Target != null)
                                Target.Frozen = false;
                        }
                        return true;
                    }
                #endregion

                #region SaveFurni (:savefurni)
                case "savefurni":
                case "save":
                    {
                        if (Session.GetHabbo().HasCmd("save"))
                        {
                            //using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            //Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SaveFurniture(dbClient);
                        }
                        return true;
                    }
                #endregion

                #region Set Speed (:setspeed)
                case "setspeed":
                    {
                        if (Session.GetHabbo().HasCmd("setspeed"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                try
                                {
                                    Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SetSpeed(int.Parse(Params[1]));
                                }
                                catch { Session.SendNotif("Numbers Only!"); }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Regenerate maps (:regenmaps)
                case "regenmaps":
                case "reloadmaps":
                case "fixroom":
                    {
                        if (Session.GetHabbo().HasCmd("regenmaps"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom == null)
                                return true;

                            if (!TargetRoom.CheckRights(Session, true))
                                return true;

                            TargetRoom.GetGameMap().GenerateMaps();
                            Session.SendNotif("The room map has been refreshed!");
                        }
                        return true;
                    }
                #endregion

                #region Empty Pets (:emptypets)
                case "emptypets":
                case "removepets":
                    {
                        if (Session.GetHabbo().HasCmd("emptypets"))
                        {
                            Session.SendNotif("Your pet inventory has been cleared!");
                        }
                        return true;
                    }
                #endregion

                #region Redeem Credits (:convertcredits)
                case "convertcredits":
                    {
                        if (Session.GetHabbo().HasCmd("convertcredits"))
                        {
                            try
                            {
                                Session.GetHabbo().GetInventoryComponent().Redeemcredits(Session);
                                SendChatMessage(Session, "All credits have successfully been converted!");
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e);
                            }
                        }
                        return true;
                    }
                #endregion

                #region Mute Bots (:mutebots)
                case "mutebots":
                case "mutepets":
                    {
                        if (Session.GetHabbo().HasCmd("mutebots"))
                        {
                            if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;
                                if (Room.MutedBots)
                                    Room.MutedBots = false;
                                else
                                    Room.MutedBots = true;

                                SendChatMessage(Session, "Muted bots have been toggled");
                            }
                        }
                        return true;
                    }
                #endregion

                #region SellRoom / BuyRoom
                    #region Sell Room (:sellroom)
                    case "sellroom":
                        {
                            if (Session.GetHabbo().HasCmd("sellroom"))
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;
                                Int32 Value = 0;
                                if (Room == null)
                                    return true;

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

                                if (Params.Length == 1)
                                {
                                    Session.SendNotif("In order to sell a room, you must include a value. \n\nPLEASE NOTE:\nIf you sell a room you CANNOT get any of it back!");
                                    return true;
                                }
                            else if (Room.Group != null)
                            {
                                Session.SendNotif("You cannot sell a room with a group on it.\n Delete the group first by typing :deletegroup");
                                return true;
                            }
                                else if (!SilverwaveEnvironment.IsNum(Params[1]))
                                {
                                    SendChatMessage(Session, "You must enter a number!");
                                    return true;
                                }
                                else
                                    Value = Convert.ToInt32(Params[1]);

                                if (Value < 0)
                                {
                                    SendChatMessage(Session, "You can not sell a room for less than 0 credits!");
                                    return true;
                                }

                                if (Room.ForSale)
                                {
                                    Room.SalePrice = Value;
                                }
                                else
                                {
                                    Room.ForSale = true;
                                    Room.SalePrice = Value;
                                }

                                foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers())
                                {
                                User.SendChatMsg("This room is for sale! The current asking price is " + Value + " credits! Buy it by saying :buyroom");
                                }

                            Session.SendNotif("In order to sell a room, you must include a value. \n\nPLEASE NOTE:\nIf you sell a room you CANNOT get any of it back!\n\n" +
                            "You can cancel selling a room by typing ':buyroom 0' (Without '')");

                            }
                            return true;
                        }
                    #endregion

                    #region Buy Room (:buyroom)
                    case "buyroom":
                        {
                            if (Session.GetHabbo().HasCmd("buyroom"))
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;
                            RoomUser RoomOwner = Room.GetRoomUserManager().GetRoomUserByHabbo(Room.Owner);
                            if (Room == null)
                            {
                                return true;
                            }
                            if (Room.Owner == Session.GetHabbo().Username)
                            {
                                SendChatMessage(Session, "You already own this room!");
                                    return true;
                            }

                                if (!Room.ForSale)
                                {
                                    SendChatMessage(Session, "This room is not for sale!");
                                    return true;
                                }

                                if (Session.GetHabbo().Credits < Room.SalePrice)
                                {
                                    SendChatMessage(Session, "You do not have enough credits to buy this room!");
                                    return true;
                                }

                            if (RoomOwner == null || RoomOwner.GetClient() == null)
                            {
                                SendChatMessage(Session, "An unknown error occured, this room is no longer for sale.");
                                Room.ForSale = false;
                                Room.SalePrice = 0;
                                return true;
                            }
                            GameClient Owner = RoomOwner.GetClient();

                                Session.GetHabbo().Credits -= Room.SalePrice;
                            Session.GetHabbo().UpdateCreditsBalance();
                            Owner.GetHabbo().Credits += Room.SalePrice;
                            Owner.GetHabbo().UpdateCreditsBalance();

                                Room.Owner = Session.GetHabbo().Username;
                                Room.OwnerId = (int)Session.GetHabbo().Id;
                            Room.RoomData.Owner = Session.GetHabbo().Username;
                            Room.RoomData.OwnerId = (int)Session.GetHabbo().Id;
                            uint RoomId = Room.RoomId;

                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.runFastQuery("UPDATE rooms SET owner='" + Session.GetHabbo().Username + "' WHERE id='" + Room.RoomId + "' LIMIT 1");
                                }
                            Session.GetHabbo().UsersRooms.Add(Room.RoomData);
                            Owner.GetHabbo().UsersRooms.Remove(Room.RoomData);
                                SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room);

                            RoomData Data = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(RoomId);
                            Data.SerializeRoomData(new ServerMessage(), true, Session, false);
                            Session.GetMessageHandler().PrepareRoomForUser(Room.RoomId, "");

                        }
                        return true;
                    }
                #endregion
                #endregion

                #region Dance (:dance)
                case "dance":
                    {
                        int DanceId = 1;
                        if (Params.Length > 1)
                        {
                            if (int.TryParse(Params[1], out DanceId))
                            {
                                DanceId = 1;
                            }
                        }

                        if (DanceId > 4 || DanceId < 0)
                        {
                            Session.SendWhisper("The dance ID must be between 0 and 4!");
                            DanceId = 0;
                            }

                        ServerMessage Response = new ServerMessage();
                        Response.Init(Outgoing.Dance);
                        Response.AppendInt32(Session.CurrentRoomUserID);
                        Response.AppendInt32(DanceId);
                        Session.GetHabbo().CurrentRoom.SendMessage(Response);
                            return true;
                        }
                    #endregion

                #region DeleteGroup (:deletegroup)
                case "deletegroup":
                    {
                        if (Session.GetHabbo().HasCmd("deletegroup"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;

                            if (!Room.CheckRights(Session, true, false))
                            {
                                Session.SendNotif("You do not own this room!");
                                return true;
                            }

                            if (Params.Length == 1 || Params[1].ToLower() != "yes")
                            {
                                Session.SendNotif("Are you sure you want to delete this group?\n" +
                                    "Once you delete it you will never be able to get it back.\n\n" +
                                    "To continue, type ':deletegroup yes' (without '')");

                                return true;
                            }

                            if (Room.Group == null)
                            {
                                Session.SendNotif("This room does not have a group.");
                                return true;
                            }

                            Group Group = Room.Group;

                            foreach (GroupUser User in Group.Members.Values)
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(User.Id);

                                if (Client == null)
                                {
                                    continue;
                                }

                                Client.GetHabbo().UserGroups.Remove(User);
                                if (Client.GetHabbo().FavouriteGroup == Group.Id)
                                {
                                    Client.GetHabbo().FavouriteGroup = 0;
                                }
                            }

                            Room.RoomData.Group = null;
                            SilverwaveEnvironment.GetGame().GetGroupManager().DeleteGroup(Group.Id);
                            SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room);
                        }
                        return true;
                    }
                #endregion
                #endregion

                #region VIP Commands
                #region Moonwalk (:moonwalk)
                case "moonwalk":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_moonwalk"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                                return true;

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            roomuser.moonwalkEnabled = !roomuser.moonwalkEnabled;

                            if (roomuser.moonwalkEnabled)
                                SendChatMessage(Session, "Moonwalk enabled!");
                            else
                                SendChatMessage(Session, "Moonwalk disabled!");
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        }
                        return true;
                    }
                #endregion

                #region Mimic (:mimic)
                case "mimic":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_mimic"))
                        {
                            string copyTarget = Params[1];

                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(copyTarget);
                            string gender = null;
                            string figure = null;
                            if (Target != null)
                            {

                                gender = Target.GetClient().GetHabbo().Gender;
                                figure = Target.GetClient().GetHabbo().Look;

                                //if (!AntiMutant.ValidateLook(figure, gender))
                                {
                                    //SendChatMessage(Session, "This figure appears to be invalid!");
                                  //  return true;
                                }
                                Session.GetHabbo().Gender = gender;
                                Session.GetHabbo().Look = figure;
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("UPDATE users SET gender = @gender, look = @look WHERE username = @username");
                                    dbClient.addParameter("gender", gender);
                                    dbClient.addParameter("look", figure);
                                    dbClient.addParameter("username", Session.GetHabbo().Username);
                                    dbClient.runQuery();
                                }
                                Room Room = Session.GetHabbo().CurrentRoom;

                                if (Room == null)
                                {
                                    return true;
                                }

                                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (User == null)
                                {
                                    return true;
                                }

                                Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation);
                                Session.GetMessageHandler().GetResponse().AppendInt32(-1);
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto);
                                Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints);
                                Session.GetMessageHandler().SendResponse();

                                ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation);
                                RoomUpdate.AppendInt32(User.VirtualId);
                                RoomUpdate.AppendString(Session.GetHabbo().Look);
                                RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower());
                                RoomUpdate.AppendString(Session.GetHabbo().Motto);
                                RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints);
                                Room.SendMessage(RoomUpdate);
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        return true;
                    }
                #endregion

                #region Push (:push)
                case "push":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_push"))
                        {
                            Room TargetRoom;
                            RoomUser TargetRoomUser;
                            RoomUser TargetRoomUser1;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "You must enter a user");
                                return true;
                            }

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1]));

                            if (TargetRoomUser == null)
                            {
                                SendChatMessage(Session, "Could not find that user!");
                                return true;
                            }

                            if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username)
                            {
                                SendChatMessage(Session, "Come on, surely you don't want to push yourself!");
                                return true;
                            }

                            TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (TargetRoomUser1 == null || TargetRoomUser.TeleportEnabled)
                            {
                                return true;
                            }

                            //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1))
                            if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2)))
                            {
                                if (TargetRoomUser1.RotBody == 4)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); }

                                if (TargetRoomUser1.RotBody == 0)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); }

                                if (TargetRoomUser1.RotBody == 6)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); }

                                if (TargetRoomUser1.RotBody == 2)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); }

                                if (TargetRoomUser1.RotBody == 3)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1);
                                }

                                if (TargetRoomUser1.RotBody == 1)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1);
                                }

                                if (TargetRoomUser1.RotBody == 7)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1);
                                }

                                if (TargetRoomUser1.RotBody == 5)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1);
                                }

                                TargetRoomUser.UpdateNeeded = true;
                                TargetRoomUser1.UpdateNeeded = true;
                                TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY));
                                TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*pushes " + Params[1] + "*", 0, TargetRoomUser1.LastBubble,-1));
                            }
                            else
                            {
                                SendChatMessage(Session, Params[1] + " is not close enough.");
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);

                        return true;
                    }
                #endregion

                #region Pull (:pull)
                case "pull":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_pull"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                            {
                                return true;
                            }

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (roomuser == null)
                            {
                                return true;
                            }
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "Unable to find user!");
                                return true;
                            }

                            GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (Target == null)
                            return true;

                            if (Target.GetHabbo().Id == Session.GetHabbo().Id)
                            {
                                SendChatMessage(Session, "You cannot pull yourself!");
                                return true;
                            }
                            RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id);
                            if (TargetUser == null)
                                return true;

                            if (TargetUser.TeleportEnabled)
                                return true;
                            if (!((Math.Abs((int)(roomuser.X - TargetUser.X)) >= 3) || (Math.Abs((int)(roomuser.Y - TargetUser.Y)) >= 3)))
                            {
                                room.SendMessage(new ChatComposer(roomuser.VirtualId, "*pulls " + Params[1] + "*", 0, roomuser.LastBubble,-1));
                                if (roomuser.RotBody % 2 != 0)
                                    roomuser.RotBody--;

                                if (roomuser.RotBody == 0)
                                    TargetUser.MoveTo(roomuser.X, roomuser.Y - 1);
                                else if (roomuser.RotBody == 2)
                                    TargetUser.MoveTo(roomuser.X + 1, roomuser.Y);
                                else if (roomuser.RotBody == 4)
                                    TargetUser.MoveTo(roomuser.X, roomuser.Y + 1);
                                else if (roomuser.RotBody == 6)
                                    TargetUser.MoveTo(roomuser.X - 1, roomuser.Y);

                            }
                            else
                            {
                                SendChatMessage(Session, "This user is too far away!");
                                return true;
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        return true;
                    }
                #endregion

                #region Enable (:enable)
                case "enable":
                case "effect":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_enable"))
                        {
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "You must enter an effect ID");
                                return true;
                            }
                            RoomUser TargetRoomUser = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);
                            if (TargetRoomUser.RidingHorse)
                            {
                                SendChatMessage(Session, "You cannot enable effects whilst riding a horse!");
                                return true;
                            }
                            else if (TargetRoomUser.team != Team.none)
                            {
                                return true;
                            }
                            else if (TargetRoomUser.isLying)
                                return true;

                            string Effect = Params[1];
                            double EffectID;
                            bool isNum = double.TryParse(Effect, out EffectID);
                            if (isNum)
                            {
                                //if(EffectID != 97)
                                Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(int.Parse(EffectID.ToString()));
                            }
                            else
                            {
                                SendChatMessage(Session, "Try using a number for the effects!");
                                return true;
                            }
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        }
                        return true;
                    }
                #endregion

                #region Change name (:flagme)
                case "flagme":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_flagme"))
                        {
                            SendChatMessage(Session, "In order to change your name, click yourself and choose \"Change Name\"");
                            SendChatMessage(Session, "You can only change your name every 12 hours.");
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE_2);
                        }
                        return true;
                    }
                #endregion

                #region Empty (:empty)
                case "emptyitems":
                case "empty":
                    {
                        if (Session.GetHabbo().HasCmd("emptyitems"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("Are you sure you want to clear your inventory? You will lose all the furniture!\n" +
                                 "To confirm, type \":emptyitems yes\". \n\nOnce you do this, there is no going back!\n(If you do not want to empty it, just ignore this message!)\n\n" +
                                 "PLEASE NOTE! If you have more than 3000 items, the hidden items will also be DELETED.");
                                return true;
                            }
                            else
                            {
                                if (Params.Length == 2)
                                {
                                    if (Params[1].ToString() == "yes")
                                    {
                                        //GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                        Session.GetHabbo().GetInventoryComponent().ClearItems();
                                        Session.SendNotif("Your inventory has been cleared!");
                                        return true;
                                    }
                                }
                            }

                        }
                        return true;
                    }
                #endregion

                #region Toll (:toll)
                case "toll":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_toll"))
                        {
                            Room TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            RoomUser User = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);

                            if (TargetRoom.CheckRights(Session, true))
                            {
                                if (Params.Length == 1)
                                {
                                    SendChatMessage(Session, "You must include a price!");
                                    return true;
                                }

                                string toll = Params[1];
                                double Price;
                                bool isNum = double.TryParse(toll, out Price);
                                if (!isNum)
                                {
                                    SendChatMessage(Session, "The price must be a number!");
                                    return true;
                                }
                                else if (Price < 0)
                                {
                                    SendChatMessage(Session, "The price cannot be a negative number");
                                    return true;
                                }

                                int x = 0;
                                int y = 0;
                                //0 - MINUS Y
                                //2 - PLUS X
                                //4 - PLUS Y
                                //6 - MINUS X
                                if (User.RotBody == 0)
                                {
                                    x = User.X;
                                    y = User.Y - 1;
                                }
                                else if (User.RotBody == 2)
                                {
                                    x = User.X + 1;
                                    y = User.Y;
                                }
                                else if (User.RotBody == 4)
                                {
                                    x = User.X;
                                    y = User.Y + 1;
                                }
                                else if (User.RotBody == 6)
                                {
                                    x = User.X - 1;
                                    y = User.Y;
                                }

                                //RoomItem item = SilverwaveEnvironment.GetGame().GetItemManager().GetItem();
                                List<RoomItem> Items = TargetRoom.GetGameMap().GetAllRoomItemForSquare(x, y);
                                if (Items.Count == 0)
                                {
                                    SendChatMessage(Session, "Could not find any items on that square!");
                                    return true;
                                }
                                int i = 0;
                                foreach (RoomItem item in TargetRoom.GetGameMap().GetAllRoomItemForSquare(x, y))
                                {
                                    if (i == 1)
                                        continue;
                                    if (item.GetBaseItem().InteractionType == InteractionType.onewaygate || item.GetBaseItem().InteractionType == InteractionType.teleport)
                                    {
                                        i++;
                                        item.TollPrice = Convert.ToInt32(Price);
                                        using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                        {
                                            dbClient.runFastQuery("UPDATE item_tolls SET toll_price=" + Price + " WHERE item_id=" + item.Id + " LIMIT 1");
                                            SendChatMessage(Session, "The toll price has been set to " + Price + " credits!");
                                        }
                                    }
                                }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Hit (:hit)
                case "hit":
                    {
                        if (Session.GetHabbo().HasCmd("hit"))
                        {
                            Room TargetRoom;
                            RoomUser TargetRoomUser;
                            RoomUser TargetRoomUser1;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "You must enter a user");
                                return true;
                            }

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1]));

                            if (TargetRoomUser == null)
                            {
                                SendChatMessage(Session, "Could not find that user!");
                                return true;
                            }

                            if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username)
                            {
                                SendChatMessage(Session, "Come on, surely you don't want to hit yourself!");
                                return true;
                            }

                            TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (TargetRoomUser1 == null)
                            {
                                return true;
                            }

                            //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1))
                            if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2)))
                            {
                                TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY));
                                TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*hits " + Params[1] + "*", 0, TargetRoomUser1.LastBubble,-1));
                            }
                        }
                        return true;
                    }
                #endregion

                #region Override (:override)
                case "override":
                    {
                        if (Session.GetHabbo().HasCmd("override"))
                        {
                            Room currentRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser roomUserByHabbo = null;
                            currentRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            if (currentRoom != null)
                            {
                                roomUserByHabbo = currentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                                if (roomUserByHabbo != null)
                                {
                                    if (roomUserByHabbo.AllowOverride)
                                    {
                                        roomUserByHabbo.AllowOverride = false;
                                        SendChatMessage(Session, "Override has been disabled!");
                                    }
                                    else
                                    {
                                        roomUserByHabbo.AllowOverride = true;
                                        SendChatMessage(Session, "Override has been enabled!");
                                    }
                                    currentRoom.GetGameMap().GenerateMaps(true);
                                }
                            }

                        }
                        return true;
                    }
                #endregion

                #region Faceless
                case "faceless":
                    {
                        string[] figureParts;
                        string[] headParts;

                        figureParts = Session.GetHabbo().Look.Split('.');
                        foreach (string Part in figureParts)
                        {
                            if (Part.StartsWith("hd"))
                            {
                                headParts = Part.Split('-');

                                if (!headParts[1].Equals("99999"))
                                    headParts[1] = "99999";
                                else
                                    break;

                                string NewHead = "hd-" + headParts[1] + "-" + headParts[2];

                                Session.GetHabbo().Look = Session.GetHabbo().Look.Replace(Part, NewHead);
                                break;
                            }
                        }

                        using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("UPDATE users SET look =  @Look WHERE username =  @username");
                            dbClient.addParameter("look", Session.GetHabbo().Look);
                            dbClient.addParameter("username", Session.GetHabbo().Username);
                            dbClient.runQuery();
                        }

                        Room Room = Session.GetHabbo().CurrentRoom;

                        if (Room == null)
                            break;

                        RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                        if (User == null)
                            break;

                        #region Messages
                        Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation);
                        Session.GetMessageHandler().GetResponse().AppendInt32(-1);
                        Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
                        Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
                        Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto);
                        Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints);
                        Session.GetMessageHandler().SendResponse();

                        ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation);
                        RoomUpdate.AppendInt32(User.VirtualId);
                        RoomUpdate.AppendString(Session.GetHabbo().Look);
                        RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower());
                        RoomUpdate.AppendString(Session.GetHabbo().Motto);
                        RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints);
                        Room.SendMessage(RoomUpdate);
                        #endregion
                        break;
                    }
                #endregion
                #endregion

                #region Moderation Commands
                #region Kick (:kick)
                case "kick":
                    {
                        if (Session.GetHabbo().HasCmd("kick"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);
                            Room TargetRoom = TargetClient.GetHabbo().CurrentRoom;

                            if (TargetClient == null)
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }

                            if (Session.GetHabbo().Rank <= TargetClient.GetHabbo().Rank)
                            {
                                Session.SendNotif("You are not allowed to kick that user.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().CurrentRoomId < 1)
                            {
                                Session.SendNotif("That user is not in a room and can not be kicked.");
                                return true;
                            }

                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(TargetClient.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            TargetRoom.GetRoomUserManager().RemoveUserFromRoom(TargetClient, true, false);
                            TargetClient.CurrentRoomUserID = -1;

                            if (Params.Length > 2)
                            {
                                TargetClient.SendNotif("A moderator has kicked you from the room for the following reason: " + MergeParams(Params, 2));
                            }
                            else
                            {
                                TargetClient.SendNotif("A moderator has kicked you from the room.");
                            }
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Room Mute (:roommute) / Room unmute (:roomunmute)
                case "roommute":
                    {
                        if (Session.GetHabbo().HasCmd("roommute") || Session.GetHabbo().HasCmd("roomunmute"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (!Session.GetHabbo().CurrentRoom.RoomMuted)
                                Session.GetHabbo().CurrentRoom.RoomMuted = true;

                            string Msg = MergeParams(Params, 1);

                            ServerMessage Message = new ServerMessage();
                            Message.Init(Outgoing.SendNotif);
                            Message.AppendString("This room has been muted because:\n" + Msg);
                            Message.AppendString("");
                            TargetRoom.SendMessage(Message);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Room Mute", "Room muted");
                        }
                        return true;
                    }
                case "roomunmute":
                    {
                        if (Session.GetHabbo().HasCmd("roomunmute"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom.RoomMuted)
                                Session.GetHabbo().CurrentRoom.RoomMuted = false;
                            ServerMessage Message = new ServerMessage();
                            Message.Init(Outgoing.SendNotif);
                            Message.AppendString("You have been unmuted.");
                            Message.AppendString("");
                            TargetRoom.SendMessage(Message);
                        }
                        return true;
                    }
                #endregion

                #region Mute (:mute)
                case "mute":
                    {
                        if (Session.GetHabbo().HasCmd("mute"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= 4)
                            {
                                Session.SendNotif("You are not allowed to (un)mute that user.");
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Muted user");
                            TargetClient.GetHabbo().Mute();
                        }
                        return true;
                    }
                #endregion

                #region Flood (:flood)
                case "flood":
                    {
                        if (Session.GetHabbo().HasCmd("flood"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (Params.Length != 3)
                            {
                                Session.SendNotif("You must include a username and a time for the person you want to flood.");
                                return true;
                            }
                            TargetClient.GetHabbo().FloodTime = SilverwaveEnvironment.GetUnixTimestamp() + Convert.ToInt32(Params[2]);
                            ServerMessage Packet = new ServerMessage(Outgoing.FloodFilter);
                            Packet.AppendInt32(Convert.ToInt32(Params[2]));
                            TargetClient.SendMessage(Packet);
                        }
                        return true;
                    }
                #endregion

                #region Unmute (:unmute)
                case "unmute":
                    {
                        if (Session.GetHabbo().HasCmd("unmute"))
                        {

                            string TargetUser = null;
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }

                            if (!TargetClient.GetHabbo().Muted)
                            {
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Un Muted user");

                            TargetClient.GetHabbo().Unmute();
                        }
                        return true;
                    }
                #endregion

                #region Summon (:summon)
                case "summon":
                case "come":
                    {
                        if (Session.GetHabbo().HasCmd("summon"))
                        {
                            if (Params.Length < 1)
                            {
                                Session.SendNotif("No use specified");
                                return true;

                            }
                            string username = Params[1];
                            GameClient client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username);
                            if (client == null)
                            {
                                Session.SendNotif("Could not find user \"" + username + "\"");
                                return true;
                            }
                            client.SendNotif("You have been summoned by " + Session.GetHabbo().Username);
                            RoomData Room = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().CurrentRoomId);
                            Room.SerializeRoomData(new ServerMessage(), (client.GetHabbo().CurrentRoom == null), client);
                            //client.GetMessageHandler().PrepareRoomForUser(Session.GetHabbo().CurrentRoomId, "");
                            client.SendMessage(new RoomForwardComposer(false, Session.GetHabbo().CurrentRoomId));
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Follow (:follow)
                case "follow":
                case "stalk":
                    {
                        if (Session.GetHabbo().HasCmd("follow"))
                        {
                            GameClient TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendNotif("This user could not be found");
                                return true;
                            }

                            if (TargetClient == null || TargetClient.GetHabbo().CurrentRoom == null || TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom)
                            {
                                return true;
                            }

                            Session.SendMessage(new RoomForwardComposer(false, TargetClient.GetHabbo().CurrentRoom.RoomId));

                            //Session.GetMessageHandler().PrepareRoomForUser(TargetClient.GetHabbo().CurrentRoom.RoomId, "");
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Room kick (:roomkick)
                case "roomkick":
                    {
                        if (Session.GetHabbo().HasCmd("roomkick"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            string ModMsg = MergeParams(Params, 1);

                            RoomKick kick = new RoomKick(ModMsg, (int)Session.GetHabbo().Rank);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Room kick", "Kicked the whole room");
                            TargetRoom.QueueRoomKick(kick);
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Super ban (:superban)
                case "superban":
                    {
                        if (Session.GetHabbo().HasCmd("superban"))
                        {
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null)
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= Session.GetHabbo().Rank)
                            {
                                Session.SendNotif("You are not allowed to ban that user.");
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Ban", "Long ban forever");

                            SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetClient, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), false, false);

                        }
                        return true;
                    }
                #endregion

                #region Show Whispers (:togglewhisper)
                case "togglewhisper":
                    {
                        if (Session.GetHabbo().HasCmd("togglewhisper"))
                        {
                            /*if (Session.GetHabbo().ShowRoomWhispers)
                            {
                                Session.GetHabbo().ShowRoomWhispers = false;
                                SendChatMessage(Session, "Room Whispers viewing disabled.");
                            }
                            else
                            {
                                Session.GetHabbo().ShowRoomWhispers = true;
                                SendChatMessage(Session, "Room Whispers viewing enabled.");
                            }*/
                        }
                        return true;
                    }
                #endregion

                #region Roomalert (:roomalert)
                case "roomalert":
                    {
                        if (Session.GetHabbo().HasCmd("roomalert"))
                        {
                            Room currentRoom = Session.GetHabbo().CurrentRoom;
                            currentRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            if (currentRoom != null)
                            {
                                string s = MergeParams(Params, 1);
                                ServerMessage message = new ServerMessage();
                                message.Init(Outgoing.SendNotif);
                                message.AppendString(s);
                                message.AppendString("");
                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Alert", "Room alert with message [" + s + "]");
                                currentRoom.QueueRoomMessage(message);
                            }
                        }
                    }
                    return true;
                #endregion

                case "alert":
                    {
                        if (Session.GetHabbo().HasCmd("alert"))
                        {
                            if (Params[1] == null || Params[2] == null)
                            {
                                Session.SendNotif("You left something empty.");
                                return true;
                            }
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);
                            Room TargetRoom = TargetClient.GetHabbo().CurrentRoom;

                            if (TargetClient == null)
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }

                            TargetClient.SendNotif(Params[2] + " -" + Session.GetHabbo().Username);
                        }
                        return true;
                    }
                #endregion

                #region Administration Commands
                #region Fast walk
                case "fastwalk":
                    {
                        if (Session.GetHabbo().HasCmd("fastwalk"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (!User.FastWalking)
                            {
                                User.FastWalking = true;
                            }
                            else
                            {
                                User.FastWalking = false;
                            }
                        }

                        return true;
                    }
                #endregion

                case "givebelcredits":
                    {
                        if (Session.GetHabbo().Rank > 7)
                        {

                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().BelCredits = TargetClient.GetHabbo().BelCredits + creditsToAdd;
                                    TargetClient.GetHabbo().UpdateCreditsBalance();
                                    return true;
                                }
                                else
                                {
                                    Session.SendNotif("Numbers Only!");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }
                        }
                        return true;
                    }

                #region Promote room
                case "promoteroom":
                    {
                        if (Session.GetHabbo().HasCmd("promoteroom"))
                        {
                            if (Params[1] == null)
                            {
                                Session.SendNotif("You need to enter event name and description.");
                                return true;
                            }

                            int Time;

                            if (!int.TryParse(Params[1], out Time))
                            {
                                Session.SendNotif("You need use command like :promoteroom time (time being how long to run event for in seconds).");
                                return true;
                            }

                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            SilverwaveEnvironment.GetGame().GetRoomEvents().AddNewEvent(Room.RoomId, "Default Name", "Default Desc", Session);
                        }

                        return true;
                    }
                #endregion

                #region Mass Dance (:massdance)
                case "massdance":
                    {
                        if (Session.GetHabbo().HasCmd("massdance") || Session.GetHabbo().Username == "MOD-billsonnn")
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();

                            int DanceId = Convert.ToInt32(Params[1]);
                            if (DanceId > 4)
                            {
                                Session.SendNotif("That is an invalid dance ID");
                                return true;
                            }

                            if (DanceId > 0 && User.CarryItemID > 0)
                            {
                                User.CarryItem(0);
                            }

                            User.DanceId = DanceId;
                            foreach (RoomUser user in users)
                            {
                                ServerMessage DanceMessage = new ServerMessage(Outgoing.Dance);
                                DanceMessage.AppendInt32(user.VirtualId);
                                DanceMessage.AppendInt32(DanceId);
                                Room.SendMessage(DanceMessage);
                                user.DanceId = DanceId;
                            }
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Go Boom (:goboom)
                case "goboom":
                    {
                        if (Session.GetHabbo().HasCmd("goboom"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser user in users)
                            {
                                user.ApplyEffect(108);
                            }
                        }
                        return true;
                    }
                #endregion

                #region Mass Enable (:massenable)
                case "massenable":
                    {
                        if (Session.GetHabbo().HasCmd("massenable"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser user in users)
                            {
                                if (user.RidingHorse)
                                    continue;
                                user.ApplyEffect(Convert.ToInt32(Params[1]));
                            }
                        }
                        return true;
                    }
                #endregion
                #region Give Credits (:credits)
                case "givecredits":
                case "credits":
                case "coins":
                    {
                        if (Session.GetHabbo().HasCmd("coins"))
                        {

                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().Credits = TargetClient.GetHabbo().Credits + creditsToAdd;
                                    TargetClient.GetHabbo().UpdateCreditsBalance();
                                    TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("coins.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("coins.awardmessage2"));
                                    Session.SendNotif(LanguageLocale.GetValue("coins.updateok"));
                                    return true;
                                }
                                else
                                {
                                    Session.SendNotif("Numbers Only!");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Give Pixels (:pixels)
                case "pixels":
                case "givepixels":
                    {
                        if (Session.GetHabbo().HasCmd("pixels"))
                        {

                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().ActivityPoints = TargetClient.GetHabbo().ActivityPoints + creditsToAdd;
                                    Session.GetHabbo().NotifyNewPixels(creditsToAdd);
                                    TargetClient.GetHabbo().UpdateActivityPointsBalance();
                                    TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("pixels.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("pixels.awardmessage2"));
                                    Session.SendNotif(LanguageLocale.GetValue("pixels.updateok"));
                                    return true;
                                }
                                else
                                {
                                    Session.SendNotif("Numbers Only!");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendNotif("User could not be found.");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Hotel Alert (:ha)
                case "ha":
                    if (Session.GetHabbo().HasCmd("ha"))
                    {
                        string Notice = MergeParams(Params, 1);

                        ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage);
                        HotelAlert.AppendString(Notice + "\r\n" + "- " + Session.GetHabbo().Username);

                        SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(HotelAlert);

                        SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Notice + "]");
                        return true;
                    }
                    return true;
                #endregion

                #region Shutdown (:shutdown)
                case "shutdown":
                    {
                        if (Session.GetHabbo().HasCmd("shutdown"))
                        {
                            Task ShutdownTask = new Task(SilverwaveEnvironment.PerformShutDown);
                            ShutdownTask.Start();
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Shutdown", "Issued shutdown command");
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Disconnect (:kill)
                case "disconnect":
                case "kill":
                case "dc":
                    {
                        if (Session.GetHabbo().HasCmd("kill"))
                        {
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null)
                            {
                                Session.SendNotif("User not found.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= 4 && !Session.GetHabbo().HasFuse("fuse_disconnect_anyone"))
                            {
                                Session.SendNotif("You are not allowed to disconnect that user.");
                                return true;
                            }
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Disconnect", "User disconnected by user");

                            TargetClient.GetConnection().Dispose();
                        }
                        return true;
                    }
                #endregion

                #region Position (:coords)
                case "coord":
                case "coords":
                case "position":
                    {
                        if (Session.GetHabbo().HasCmd("coords"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser TargetRoomUser = null;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (TargetRoomUser == null)
                            {
                                return true;
                            }

                            Session.SendNotif("X: " + TargetRoomUser.X + "\n - Y: " + TargetRoomUser.Y + "\n - Z: " + TargetRoomUser.Z + "\n - Rot: " + TargetRoomUser.RotBody + ", sqState: " + TargetRoom.GetGameMap().GameMap[TargetRoomUser.X, TargetRoomUser.Y].ToString() + "\n\n - RoomID: " + Session.GetHabbo().CurrentRoomId);
                        }
                        return true;
                    }
                #endregion

                #region Teleport (:teleport)
                case "teleport":
                case "tele":
                    {
                        if (Session.GetHabbo().HasCmd("teleport"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser TargetRoomUser = null;

                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (TargetRoomUser.RidingHorse)
                            {
                                SendChatMessage(Session, "You cannot teleport whilst riding a horse!");
                                return true;
                            }
                            if (TargetRoomUser == null)
                                return true;

                            TargetRoomUser.TeleportEnabled = !TargetRoomUser.TeleportEnabled;

                            TargetRoom.GetGameMap().GenerateMaps();
                        }
                        return true;
                    }
                #endregion

                #region Update (:update_x)
                #region Update Catalog
                case "update_catalog":
                case "reload_catalog":
                case "recache_catalog":
                case "refresh_catalog":
                case "update_catalogue":
                case "reload_catalogue":
                case "recache_catalogue":
                case "refresh_catalogue":
                    {
                        if (Session.GetHabbo().HasCmd("update_catalog"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetCatalog().Initialize(dbClient);
                            }
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(new ServerMessage(Outgoing.UpdateShop));

                            Session.SendNotif("The catalog has been refreshed!");
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Update Items
                case "update_items":
                case "reload_items":
                case "recache_items":
                case "refresh_items":
                    {
                        if (Session.GetHabbo().HasCmd("update_items"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetItemManager().LoadItems(dbClient);
                            }
                            Session.SendNotif("Item definitions have been refreshed!");
                        }

                        return true;
                    }
                #endregion

                #region Update Filter
                case "update_filter":
                case "reload_filter":
                case "recache_filter":
                case "refresh_filter":
                    {
                        if (Session.GetHabbo().HasCmd("update_filter"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                LanguageLocale.InitSwearWord(dbClient);
                            }
                        }
                        return true;
                    }
                #endregion

                #region Update Navigator
                case "update_navigator":
                case "reload_navigator":
                case "recache_navigator":
                case "refresh_navigator":
                    {
                        if (Session.GetHabbo().HasCmd("update_navigator"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetNavigator().Initialize(dbClient);
                            }
                            Session.SendNotif("The navigator has been updated!");
                        }
                        return true;
                    }
                #endregion

                #region Update Ranks
                case "update_ranks":
                case "reload_ranks":
                case "recache_ranks":
                case "refresh_ranks":
                    {
                        if (Session.GetHabbo().HasCmd("update_ranks"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetRoleManager().LoadRights(dbClient);
                            }
                            Session.SendNotif("Ranks have been refreshed!");
                        }
                        return true;
                    }
                #endregion

                #region Update Settings
                case "update_settings":
                case "reload_settings":
                case "recache_settings":
                case "refresh_settings":
                    {
                        if (Session.GetHabbo().HasCmd("update_settings"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                SilverwaveEnvironment.ConfigData = new ConfigData(dbClient);
                        }
                        return true;
                    }
                #endregion

                #region Update Groups
                case "update_groups":
                case "reload_groups":
                case "recache_groups":
                case "refresh_groups":
                    {
                        if (Session.GetHabbo().HasCmd("update_groups"))
                        {
                            SilverwaveEnvironment.GetGame().GetGroupManager().InitGroups();
                            Session.SendNotif("Groups have been successfully reloaded");
                        }

                        return true;
                    }
                #endregion

                #region Update Bans
                case "update_bans":
                    {
                        if (Session.GetHabbo().HasCmd("update_bans"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                SilverwaveEnvironment.GetGame().GetBanManager().LoadBans(dbClient);

                            Session.SendNotif("Bans have been refreshed!");
                        }
                        return true;
                    }
                #endregion

                #region Update Quests
                case "update_quests":
                    {
                        if (Session.GetHabbo().HasCmd("update_quests"))
                        {
                            SilverwaveEnvironment.GetGame().GetQuestManager().Initialize(SilverwaveEnvironment.GetDatabaseManager().getQueryreactor());
                            Session.SendNotif("Quests have been successfully reloaed!");
                        }
                        return true;
                    }
                #endregion
                #endregion

                #region Super Pull (:spull)
                case "spull":
                    {
                        if (Session.GetHabbo().HasCmd("spull"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                            {
                                SendChatMessage(Session, "Error in finding room!");
                                return true;
                            }

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (roomuser == null)
                            {
                                SendChatMessage(Session, "Unable to find user!");
                                return true;
                            }
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "Unable to find user!");
                                return true;
                            }

                            GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id);
                            if (Target.GetHabbo().Id == Session.GetHabbo().Id)
                            {
                                SendChatMessage(Session, "You cannot pull yourself!");
                                return true;
                            }

                            if (TargetUser.TeleportEnabled)
                                return true;

                            if (roomuser.RotBody % 2 != 0)
                                roomuser.RotBody--;
                            room.SendMessage(new ChatComposer(roomuser.VirtualId, "*pulls " + Params[1] + "*", 0, roomuser.LastBubble,-1));
                            if (roomuser.RotBody == 0)
                                TargetUser.MoveTo(roomuser.X, roomuser.Y - 1);
                            else if (roomuser.RotBody == 2)
                                TargetUser.MoveTo(roomuser.X + 1, roomuser.Y);
                            else if (roomuser.RotBody == 4)
                                TargetUser.MoveTo(roomuser.X, roomuser.Y + 1);
                            else if (roomuser.RotBody == 6)
                                TargetUser.MoveTo(roomuser.X - 1, roomuser.Y);
                        }
                        return true;
                    }
                #endregion

                #region Global Credits (:globalcredits)
                case "globalcredits":
                    {
                        if (Session.GetHabbo().HasCmd("globalcredits"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You need to enter an amount!");
                                return true;
                            }
                            try
                            {
                                int Amount = int.Parse(Params[1]);
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                    dbClient.runFastQuery("UPDATE users SET credits=credits+" + Amount);

                                SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone in the database");

                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Mass Credits (:masscredits)
                case "masscredits":
                    {
                        if (Session.GetHabbo().HasCmd("masscredits"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You need to enter an amount!");
                                return true;
                            }
                            try
                            {
                                int Amount = int.Parse(Params[1]);
                                SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone online");
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Give Badge (:badge)
                case "badge":
                case "givebadge":
                    {
                        if (Session.GetHabbo().HasCmd("badge"))
                        {
                            if (Params.Length != 3)
                            {
                                Session.SendNotif("You must include a username and badgecode!");
                                return true;
                            }
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                TargetClient.GetHabbo().GetBadgeComponent().GiveBadge(Params[2], true, TargetClient);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Badge", "Badge given to user [" + Params[2] + "]");
                                TargetClient.SendNotif("You have just been given a badge!");
                                return true;
                            }
                            else
                            {
                                Session.SendNotif("User was not found");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Room Badge (:roombadge)
                case "roombadge":
                    {
                        if (Session.GetHabbo().HasCmd("roombadge"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You must enter a badge code!");
                                return true;
                            }

                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                                return true;

                            TargetRoom.QueueRoomBadge(Params[1]);
                            ServerMessage nMessage = new ServerMessage();
                            nMessage.Init(Outgoing.SendNotif);
                            nMessage.AppendString("You have just recieved a badge!");
                            nMessage.AppendString("");
                            TargetRoom.SendMessage(nMessage);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Roombadge in room [" + TargetRoom.RoomId + "] with badge [" + Params[1] + "]");
                        }
                        return true;
                    }
                #endregion

                #region Mass Badge (:massbadge)
                case "massbadge":
                    {
                        if (Session.GetHabbo().HasCmd("massbadge"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You must enter a badge code!");
                                return true;
                            }
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBadgeUpdate(Params[1]);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Mass badge with badge [" + Params[1] + "]");
                            ServerMessage nMessage = new ServerMessage();
                            nMessage.Init(Outgoing.SendNotif);
                            nMessage.AppendString("You have just recieved a badge!");
                            nMessage.AppendString("");
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage);
                        }
                        return true;
                    }
                #endregion

                #region All eyes on me (:alleyesonme)
                case "alleyesonme":
                    {
                        if (Session.GetHabbo().HasCmd("alleyesonme"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                                return true;
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser Us in users)
                            {
                                if (Session.GetHabbo().Id == Us.userID)
                                    continue;
                                Us.SetRot(Rotation.Calculate(Us.X, Us.Y, User.X, User.Y));
                            }
                        }
                        return true;
                    }
                #endregion

                #region IP Ban (:ipban)
                case "ipban":
                case "banip":
                    {
                        if (Session.GetHabbo().HasCmd("ipban"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You must include a username and reason!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("An unknown error occured whilst finding this user!");
                                return true;
                            }
                            try
                            {
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false);
                            }
                            catch (Exception e) { Console.WriteLine(e); }

                        }
                        return true;
                    }
                #endregion

                #region Machine Ban (:machineban)
                case "machineban":
                case "banmachine":
                case "mban":
                    {
                        if (Session.GetHabbo().HasCmd("machineban"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You must include a username and reason!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("An unknown error occured whilst finding this user!");
                                return true;
                            }

                            if (string.IsNullOrWhiteSpace(TargetUser.MachineId))
                            {
                                Session.SendNotif("Unable to ban this user, they don't have a machine ID");
                                return true;
                            }

                            try
                            {
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "You have been banned! The reason given was:\n" + MergeParams(Params, 2), false, true);
                            }
                            catch (Exception e) { Console.WriteLine(e); }

                        }
                        return true;
                    }
                #endregion

                #region Machine and IP ban (:mip)
                case "mip":
                    {
                        if (Session.GetHabbo().HasCmd("mip"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("You must include a username and reason!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("An unknown error occured whilst finding this user!");
                                return true;
                            }
                            try
                            {
                                if (string.IsNullOrWhiteSpace(TargetUser.MachineId))
                                {
                                    Session.SendNotif("Unable to ban this user, they don't have a machine ID");
                                    return true;
                                }
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "You have been banned! The reason given was:\n" + MergeParams(Params, 2), false, true);
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false);
                            }
                            catch (Exception e) { Console.WriteLine(e); }
                        }
                        return true;
                    }
                #endregion

                #region All around me (:allaroundme)
                case "allaroundme":
                    {
                        if (Session.GetHabbo().HasCmd("allaroundme"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                            {
                                Session.SendNotif("An unknown error occured!");
                                return true;
                            }
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser Us in users)
                            {
                                if (Session.GetHabbo().Id == Us.userID)
                                    continue;
                                Us.MoveTo(User.X, User.Y, true);
                            }
                            if (Params.Length == 2)
                            {
                                if (Params[1] == "override")
                                {
                                    foreach (RoomUser Us in users)
                                    {
                                        if (Session.GetHabbo().Id == Us.userID)
                                            continue;
                                        Us.AllowOverride = true;
                                        Us.MoveTo(User.X, User.Y, true);
                                        Us.AllowOverride = false;
                                    }
                                }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Hotel alert w/link (:hal)
                case "hal":
                    {
                        if (Session.GetHabbo().HasCmd("hal"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            // Hotel Alert pluss link :hal <link> <message>
                            string Link = Params[1];

                            string Message = MergeParams(Params, 2);

                            ServerMessage nMessage = new ServerMessage(Outgoing.SendNotif);
                            nMessage.AppendString(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Message + "\r\n-" + Session.GetHabbo().Username);
                            nMessage.AppendString(Link);
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Message + "]");
                        }
                        return true;
                    }
                #endregion

                #region Staff Alert (:sa)
                case "sa":
                    {
                        if (Session.GetHabbo().HasCmd("sa"))
                        {
                            string Message = "Message from staff: \n" + Params[1] + "\n - " + Session.GetHabbo().Username;
                            ServerMessage message = new ServerMessage(Outgoing.BroadcastMessage);
                            message.AppendString(Message);
                            SilverwaveEnvironment.GetGame().GetClientManager().StaffAlert(message);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "StaffAlert", "Staff alert [" + Message + "]");
                        }
                        return true;
                    }
                #endregion

                #region Spectators Mode (:invisible)
                case "invisible":
                case "spec":
                case "spectatorsmode":
                    {
                        if (Session.GetHabbo().HasCmd("invisible"))
                        {
                            Session.GetHabbo().SpectatorMode = true;
                            Session.SendNotif("Reload the room to be invisible");

                            //RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);
                            //User.IsSpectator = true;
                        }
                        return true;
                    }
                #endregion

                #region Add Bannable Word (:banword)
                case "banword":
                    {
                        if (Session.GetHabbo().HasCmd("banword"))
                        {
                            string BannedWord = Params[1];
                            if (!string.IsNullOrWhiteSpace(BannedWord))
                            {
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("INSERT INTO wordfilter (`word`, `addedby`, `bannable`) VALUES " +
                                        "(@ban, '" + Session.GetHabbo().Username + "', '0');");
                                    dbClient.addParameter("ban", BannedWord.ToLower());
                                    dbClient.runQuery();
                                    LanguageLocale.InitSwearWord(dbClient);
                                    Session.SendNotif("'" + BannedWord + "' has been added to the bannable list");
                                }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Unidle (:unidle)
                case "unidle":
                    {
                        if (Session.GetHabbo().HasCmd("unidle"))
                        {
                            Habbo Habbo = SilverwaveEnvironment.getHabboForName(Params[1]);
                            if (Habbo == null)
                                return true;

                            RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Habbo.Id);

                            if (User == null)
                                return true;

                            User.UnIdle();
                        }
                        return true;
                    }
                #endregion

                #region Make Public (:public)
                case "public":
                    {
                        if (Session.GetHabbo().HasCmd("public"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;
                            if (Room == null)
                                return true;
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                dbClient.runFastQuery("UPDATE rooms SET roomtype='public' WHERE id=" + Room.RoomId + " LIMIT 1");
                            Room.Type = "public";
                            Room.RoomData.Type = "public";
                            Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true);
                        }
                        return true;
                    }
                #endregion

                #region Make Private (:private)
                case "private":
                    {
                        if (Session.GetHabbo().HasCmd("private"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;
                            if (Room == null)
                                return true;
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                dbClient.runFastQuery("UPDATE rooms SET roomtype='private' WHERE id=" + Room.RoomId + " LIMIT 1");
                            Room.Type = "private";
                            Room.RoomData.Type = "private";
                            Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true);
                        }
                        return true;
                    }
                #endregion

                #region Mass Action (:massact)
                case "massact":
                    {
                        if (Session.GetHabbo().HasCmd("massact"))
                        {
                            try
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;

                                List<RoomUser> Users = Room.GetRoomUserManager().GetRoomUsers();
                                int Num = Int16.Parse(Params[1]);

                                ServerMessage Message = new ServerMessage();

                                foreach (RoomUser User in Users)
                                {
                                    if (User == null)
                                        continue;

                                    Room.SendMessage(new ActionComposer(User, Num));
                                }
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Close Alert (:closealert)
                case "closealert":
                    {
                        if (Session.GetHabbo().HasCmd("closealert"))
                        {
                            int Time = int.Parse(Params[1]);

                            ServerMessage Message = new ServerMessage(Outgoing.ClosingAlert);
                            Message.AppendInt32(Time);
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(Message);
                        }
                        return true;
                    }
                #endregion
                #endregion
            }
            return false;
            #endregion
        }
Beispiel #3
0
        public static Boolean Parse(GameClient Session, string Input)
        {
            if (!Input.StartsWith(":"))
            {
                return false;
            }

            Input = Input.Substring(1);
            string[] Params = Input.Split(' ');

            #region Commands
            switch (Params[0].ToLower())
            {
                #region User Commands
                #region ToDo (:todo)
                case "todo":
                    Session.SendNotifWithScroll("Lista de tareas:\r\n" +
                                                "- Nuevos Wired.\n" +
                                                "- Nueva Interfaz MT.\n" +
                                                "- Sistema de Guías\n" +
                                                "\n" +
                                                "¿Algún error encontrado? ¡Contacta con Custom!\r\n" +
                                                "");
                    return true;
                #endregion
                #region Commands (:commands)
                case "commands":
                case "cmds":
                    {
                        if (Session.GetHabbo().HasCmd("commands"))
                        {
                            DataTable data;
                            StringBuilder builder = new StringBuilder();

                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                dbClient.setQuery("SELECT command,params,description FROM fuse_cmds WHERE rank <= " + Session.GetHabbo().Rank + " ORDER BY command ASC");// LIMIT " + min + ",15");// + max+ "");
                                data = dbClient.getTable();
                            }

                            builder.Append("Estos son los comandos disponibles:\n");
                            foreach (DataRow row in data.Rows)
                            {
                                builder.Append(":" + Convert.ToString(row[0]) + " " + Convert.ToString(row[1]) + "\n - " + Convert.ToString(row[2]) + "\n");
                            }
                            Session.SendNotifWithScroll(builder.ToString());
                        }
                        return true;
                    }
                #endregion

                #region About (:about)
                case "about":
                case "info":
                    {
                        int UsersOnline = SilverwaveEnvironment.GetGame().GetClientManager().ClientCount;
                        int RoomsLoaded = SilverwaveEnvironment.GetGame().GetRoomManager().LoadedRoomsCount;
                        TimeSpan Uptime = DateTime.Now - SilverwaveEnvironment.ServerStarted;
                        Session.SendNotif("<b><font size='15'>PLUS EMULATOR R2</font></b>\n" +
                                          "\r\n" +
                                          "<b>Estadísticas</b>\r" +
                                          "- <b>Uptime: </b> " + Uptime.Minutes + " minutos, " + Uptime.Hours + (Uptime.Hours > 1 ? " horas" : " hora") + " y " + Uptime.Days + (Uptime.Days > 1 ? " días." : " día. \r") +
                                          "- <b>Conectados: </b> " + UsersOnline + "\r" +
                                          "- <b>Salas: </b> " + RoomsLoaded +
                                          "\r\n" +
                                          "<u>Greetings to:</u>\n\n" +
                                          "- <b>Custom</b> <i>(Dev)</i>\n" +
                                          "- <b>AKIIX</b> <i>(Dev)</i>\n" +
                                          "- <b>Skyblue</b> <i>(Dev)</i>\n" +
                                          "- <b>TDID</b> <i>(Wired)</i>\n" +
                                          "- <b>Meth0d</b> <i>(Base)</i>\n" +
                                          "\n\nThank you for using <b> Plus Emulator</b>." +
                                          "");
                        return true;
                    }
                #endregion

                #region Sit (:sit)
                case "sit":
                    {
                        if (Session.GetHabbo().HasCmd("sit"))
                        {
                            RoomUser user = null;
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin"))
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                if (Client != null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (user == null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            else
                            {
                                user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            //Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0);

                            if (user.Statusses.ContainsKey("lie") || user.isLying || user.RidingHorse || user.IsWalking)
                            {
                                return true;
                            }

                            if (!user.Statusses.ContainsKey("sit"))
                            {
                                if ((user.RotBody % 2) == 0)
                                {
                                    if (user == null)
                                        return true;

                                    try
                                    {
                                        user.Statusses.Add("sit", "1.0");
                                        user.Z -= 0.35;
                                        user.isSitting = true;
                                        user.UpdateNeeded = true;
                                    }
                                    catch { }
                                }
                                else
                                {
                                    user.RotBody--;
                                    user.Statusses.Add("sit", "1.0");
                                    user.Z -= 0.35;
                                    user.isSitting = true;
                                    user.UpdateNeeded = true;
                                }
                            }
                            else if (user.isSitting == true)
                            {
                                user.Z += 0.35;
                                user.Statusses.Remove("sit");
                                user.Statusses.Remove("1.0");
                                user.isSitting = false;
                                user.UpdateNeeded = true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Lie (:lie)
                case "lie":
                case "lay":
                    {
                        if (Session.GetHabbo().HasCmd("lie"))
                        {
                            RoomUser user = null;
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin"))
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                if (Client != null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (user == null)
                                    user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            else
                            {
                                user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            }
                            Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0);
                            if (!room.GetGameMap().ValidTile(user.X + 2, user.Y + 2) && !room.GetGameMap().ValidTile(user.X + 1, user.Y + 1))
                            {
                                SendChatMessage(Session, "No estás en el lugar correcto para tumbarte.");
                                return true;
                            }

                            if (user.Statusses.ContainsKey("sit") || user.isSitting || user.RidingHorse || user.IsWalking)
                            {
                                return true;
                            }

                            if (!user.Statusses.ContainsKey("lay"))
                            {
                                if ((user.RotBody % 2) == 0)
                                {
                                    if (user == null)
                                        return true;

                                    try
                                    {
                                        user.Statusses.Add("lay", "1.0 null");
                                        user.Z -= 0.35;
                                        user.isLying = true;
                                        user.UpdateNeeded = true;
                                    }
                                    catch { }
                                }
                                else
                                {
                                    user.RotBody--;
                                    user.Statusses.Add("lay", "1.0 null");
                                    user.Z -= 0.35;
                                    user.isLying = true;
                                    user.UpdateNeeded = true;
                                }

                            }
                            else
                            {
                                user.Z += 0.35;
                                user.Statusses.Remove("lay");
                                user.Statusses.Remove("1.0");
                                user.isLying = false;
                                user.UpdateNeeded = true;
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Pickall (:pickall)
                case "pickall":
                    {
                        if (Session.GetHabbo().HasCmd("pickall"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                if (TargetRoom.Group != null)
                                {
                                    Session.SendNotif("No está permitido recoger todo en salas de grupo.");
                                    return true;
                                }

                                if (TargetRoom.ForSale)
                                {
                                    Session.SendNotif("No se permite recoger una sala que está en venta.");
                                    return true;
                                }

                                List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session);

                                if (Session.GetHabbo().GetInventoryComponent() != null)
                                {
                                    Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems);
                                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                                }
                            }
                            else
                            {
                                Session.SendNotif("Ha ocurrido un error.");
                            }
                        }
                        return true;
                    }
                #endregion

                #region ejectall (:ejectall)
                case "ejectall":
                    {
                        if (Session.GetHabbo().HasCmd("ejectall"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                if (TargetRoom.Group == null)
                                {
                                    Session.SendNotif("Esto es una sala de grupo.");
                                    return true;
                                }

                                if (TargetRoom.ForSale)
                                {
                                    Session.SendNotif("No se permite recoger una sala que está en venta.");
                                    return true;
                                }

                                List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session);

                                if (Session.GetHabbo().GetInventoryComponent() != null)
                                {
                                    Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems);
                                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                                }
                            }
                            else
                            {
                                Session.SendNotif("Ha ocurrido un error.");
                            }
                        }
                        return true;
                    }
                #endregion

                #region Unload (:unload)
                case "unload":
                    {
                        if (Session.GetHabbo().HasCmd("unload"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(TargetRoom);
                                TargetRoom.RequestReload();
                            }
                        }
                        return true;
                    }
                #endregion

                #region Set Max (:setmax)
                case "setmax":
                    {
                        if (Session.GetHabbo().HasCmd("setmax"))
                        {
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "Debes poner un número válido.");
                                return true;
                            }

                            try
                            {
                                int Max = int.Parse(Params[1]);

                                if ((Max > 101 && Session.GetHabbo().Rank < 3))
                                {
                                    Session.SendNotif("El máximo de usuarios por sala son 100.");
                                    return true;
                                }
                                else if (Max < 10 && Session.GetHabbo().Rank < 3)
                                {
                                    Session.SendNotif("El mínimo de usuarios por sala son 10.");
                                    return true;
                                }

                                Room room = Session.GetHabbo().CurrentRoom;
                                room.UsersMax = Max;
                                room.SetMaxUsers(Max);
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region User Info (:userinfo)
                case "userinfo":
                case "ui":
                    {
                        if (Session.GetHabbo().HasCmd("userinfo"))
                        {
                            string username = Params[1];
                            bool UserOnline = true;
                            if (string.IsNullOrEmpty(username))
                            {
                                Session.SendNotif("Por favor, introduce un nombre de usuario.");
                                return true;
                            }

                            GameClient tTargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username);

                            if (tTargetClient == null || tTargetClient.GetHabbo() == null)
                            {
                                DataRow Row;
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("SELECT username, rank, online, id, motto, credits FROM users WHERE username=@user LIMIT 1");
                                    dbClient.addParameter("user", username);
                                    Row = dbClient.getRow();

                                    Session.SendNotif("Información de " + username + ":\r" +
                                "Rango: " + Row[1].ToString() + " \r" +
                                "ID: " + Row[3].ToString() + " \r" +
                                "Misión: " + Row[4].ToString() + " \r" +
                                "Créditos: " + Row[5].ToString() + " \r");
                                }
                                return true;
                            }
                            Habbo User = tTargetClient.GetHabbo();

                            //Habbo User = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(username).GetHabbo();
                            StringBuilder RoomInformation = new StringBuilder();

                            if (User.CurrentRoom != null)
                            {
                                RoomInformation.Append(" - SALA Nº [" + User.CurrentRoom.RoomId + "] - \r");
                                RoomInformation.Append("Dueño: " + User.CurrentRoom.Owner + "\r");
                                RoomInformation.Append("Nombre de la sala: " + User.CurrentRoom.Name + "\r");
                                RoomInformation.Append("Usuarios en la sala: " + User.CurrentRoom.UserCount + "/" + User.CurrentRoom.UsersMax);
                            }
                            Session.SendNotif("Información del usuario " + username + ":\r" +
                                "Rango: " + User.Rank + " \r" +
                                "Conectado: " + UserOnline.ToString() + " \r" +
                                "ID: " + User.Id + " \r" +
                                "Sala Actual: " + User.CurrentRoomId + " \r" +
                                "Misión: " + User.Motto + " \r" +
                                "Créditos: " + User.Credits + " \r" +
                                "Silenciado: " + User.Muted.ToString() + "\r" +
                                "\r\r" + RoomInformation.ToString());

                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Disable Diagonal (:disablediagonal)
                case "disablediagonal":
                case "disablediag":
                case "togglediagonal":
                    {
                        if (Session.GetHabbo().HasCmd("togglediagonal"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = Session.GetHabbo().CurrentRoom;

                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                if (TargetRoom.GetGameMap().DiagonalEnabled)
                                    TargetRoom.GetGameMap().DiagonalEnabled = false;
                                else
                                    TargetRoom.GetGameMap().DiagonalEnabled = true;

                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Freeze (:freeze)
                case "freeze":
                    {
                        if (Session.GetHabbo().HasCmd("freeze"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]);
                            if (Target != null)
                                Target.Frozen = true;
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region unFreeze (:unfreeze)
                case "unfreeze":
                    {
                        if (Session.GetHabbo().HasCmd("unfreeze"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]);
                            if (Target != null)
                                Target.Frozen = false;
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region SaveFurni (:savefurni)
                case "savefurni":
                case "save":
                    {
                        if (Session.GetHabbo().HasCmd("save"))
                        {
                            //using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            //Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SaveFurniture(dbClient);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Set Speed (:setspeed)
                case "setspeed":
                    {
                        if (Session.GetHabbo().HasCmd("setspeed"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom != null && TargetRoom.CheckRights(Session, true))
                            {
                                try
                                {
                                    Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SetSpeed(int.Parse(Params[1]));
                                }
                                catch { Session.SendNotif("¡Únicamente introduce valores numéricos!"); }
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Regenerate maps (:regenmaps)
                case "regenmaps":
                case "reloadmaps":
                case "fixroom":
                    {
                        if (Session.GetHabbo().HasCmd("regenmaps"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (TargetRoom == null)
                                return true;

                            if (!TargetRoom.CheckRights(Session, true))
                                return true;

                            TargetRoom.GetGameMap().GenerateMaps();
                            Session.SendNotif("Se ha recargado el mapa de la sala correctamente.");
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Empty Pets (:emptypets)
                case "emptypets":
                case "removepets":
                    {
                        if (Session.GetHabbo().HasCmd("emptypets"))
                        {
                            Session.SendNotif("Todas tus mascotas han sido borradas de tu inventario.");
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Redeem Credits (:convertcredits)
                case "convertcredits":
                    {
                        if (Session.GetHabbo().HasCmd("convertcredits"))
                        {
                            try
                            {
                                Session.GetHabbo().GetInventoryComponent().Redeemcredits(Session);
                                SendChatMessage(Session, "Todos los créditos de tu inventario han sido cangeados para volverse monedas.");
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e);
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Mute Bots (:mutebots)
                case "mutebots":
                case "mutepets":
                    {
                        if (Session.GetHabbo().HasCmd("mutebots"))
                        {
                            if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;
                                if (Room.MutedBots)
                                    Room.MutedBots = false;
                                else
                                    Room.MutedBots = true;

                                SendChatMessage(Session, "Los BOT de tu sala han sido silenciados.");
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Dance (:dance)
                case "dance":
                    {
                        int DanceId = 1;
                        if (Params.Length > 1)
                        {
                            if (int.TryParse(Params[1], out DanceId))
                            {
                                DanceId = 1;
                            }
                        }

                        if (DanceId > 4 || DanceId < 0)
                        {
                            Session.SendWhisper("El ID del baile debe de estar comprimido entre 0 y 4.");
                            DanceId = 0;
                        }

                        ServerMessage Response = new ServerMessage();
                        Response.Init(Outgoing.Dance);
                        Response.AppendInt32(Session.CurrentRoomUserID);
                        Response.AppendInt32(DanceId);
                        Session.GetHabbo().CurrentRoom.SendMessage(Response);
                        return true;
                    }
                #endregion

                #region DeleteGroup (:deletegroup)
                case "deletegroup":
                    {
                        if (Session.GetHabbo().HasCmd("deletegroup"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;

                            if (!Room.CheckRights(Session, true, false))
                            {
                                Session.SendNotif("¡Esta sala no es tuya!");
                                return true;
                            }

                            if (Params.Length == 1 || Params[1].ToLower() != "yes")
                            {
                                Session.SendNotif("¿Estás seguro de que quieres borrar este grupo?\n" +
                                    "Una vez lo hayas borrado no podrás recuperarlo más.\n\n" +
                                    "Si estás seguro, escribe ':deletegroup yes' (sin los '')");

                                return true;
                            }

                            if (Room.Group == null)
                            {
                                Session.SendNotif("Esta sala no contiene ningún grupo.");
                                return true;
                            }

                            Group Group = Room.Group;

                            foreach (GroupUser User in Group.Members.Values)
                            {
                                GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(User.Id);

                                if (Client == null)
                                {
                                    continue;
                                }

                                Client.GetHabbo().UserGroups.Remove(User);
                                if (Client.GetHabbo().FavouriteGroup == Group.Id)
                                {
                                    Client.GetHabbo().FavouriteGroup = 0;
                                }
                            }

                            Room.RoomData.Group = null;
                            SilverwaveEnvironment.GetGame().GetGroupManager().DeleteGroup(Group.Id);
                            SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region UI (:ui)

                case "changeui":
                    {
                        Session.GetHabbo().NewUISwitcher();
                        return true;
                    }

                #endregion
                #endregion

                #region VIP Commands
                #region Moonwalk (:moonwalk)
                case "moonwalk":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_moonwalk"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                                return true;

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            roomuser.moonwalkEnabled = !roomuser.moonwalkEnabled;

                            if (roomuser.moonwalkEnabled)
                                SendChatMessage(Session, "¡Moonwalk activado!");
                            else
                                SendChatMessage(Session, "¡Moonwalk desactivado!");
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        }
                        return true;
                    }
                #endregion

                #region Mimic (:mimic)
                case "mimic":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_mimic"))
                        {
                            string copyTarget = Params[1];

                            RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(copyTarget);
                            string gender = null;
                            string figure = null;
                            if (Target != null)
                            {

                                gender = Target.GetClient().GetHabbo().Gender;
                                figure = Target.GetClient().GetHabbo().Look;

                                //if (!AntiMutant.ValidateLook(figure, gender))
                                {
                                    //SendChatMessage(Session, "This figure appears to be invalid!");
                                    //  return true;
                                }
                                Session.GetHabbo().Gender = gender;
                                Session.GetHabbo().Look = figure;
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("UPDATE users SET gender = @gender, look = @look WHERE username = @username LIMIT 1");
                                    dbClient.addParameter("gender", gender);
                                    dbClient.addParameter("look", figure);
                                    dbClient.addParameter("username", Session.GetHabbo().Username);
                                    dbClient.runQuery();
                                }
                                Room Room = Session.GetHabbo().CurrentRoom;

                                if (Room == null)
                                {
                                    return true;
                                }

                                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                                if (User == null)
                                {
                                    return true;
                                }

                                Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation);
                                Session.GetMessageHandler().GetResponse().AppendInt32(-1);
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
                                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto);
                                Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints);
                                Session.GetMessageHandler().SendResponse();

                                ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation);
                                RoomUpdate.AppendInt32(User.VirtualId);
                                RoomUpdate.AppendString(Session.GetHabbo().Look);
                                RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower());
                                RoomUpdate.AppendString(Session.GetHabbo().Motto);
                                RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints);
                                Room.SendMessage(RoomUpdate);
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        return true;
                    }
                #endregion

                #region Push (:push)
                case "push":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_push"))
                        {
                            Room TargetRoom;
                            RoomUser TargetRoomUser;
                            RoomUser TargetRoomUser1;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "Debes introducir un nombre de usuario.");
                                return true;
                            }

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1]));

                            if (TargetRoomUser == null)
                            {
                                SendChatMessage(Session, "¡No se ha podido encontrar al usuario!");
                                return true;
                            }

                            if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username)
                            {
                                SendChatMessage(Session, "¿En serio quieres empujarte a ti mismo? ¡Masoquista!");
                                return true;
                            }

                            TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (TargetRoomUser1 == null || TargetRoomUser.TeleportEnabled)
                            {
                                return true;
                            }

                            //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1))
                            if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2)))
                            {
                                if (TargetRoomUser1.RotBody == 4)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); }

                                if (TargetRoomUser1.RotBody == 0)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); }

                                if (TargetRoomUser1.RotBody == 6)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); }

                                if (TargetRoomUser1.RotBody == 2)
                                { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); }

                                if (TargetRoomUser1.RotBody == 3)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1);
                                }

                                if (TargetRoomUser1.RotBody == 1)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1);
                                }

                                if (TargetRoomUser1.RotBody == 7)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1);
                                }

                                if (TargetRoomUser1.RotBody == 5)
                                {
                                    TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y);
                                    TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1);
                                }

                                TargetRoomUser.UpdateNeeded = true;
                                TargetRoomUser1.UpdateNeeded = true;
                                TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY));
                                TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*Empuja a " + Params[1] + "*", 0, TargetRoomUser1.LastBubble, -1));
                            }
                            else
                            {
                                SendChatMessage(Session, Params[1] + " no está lo suficientemente cerca.");
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);

                        return true;
                    }
                #endregion

                #region Pull (:pull)
                case "pull":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_pull"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                            {
                                return true;
                            }

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (roomuser == null)
                            {
                                return true;
                            }
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "No se ha podido encontrar el usuario.");
                                return true;
                            }

                            GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (Target == null)
                                return true;

                            if (Target.GetHabbo().Id == Session.GetHabbo().Id)
                            {
                                SendChatMessage(Session, "¡No te puedes atraer a ti mismo!");
                                return true;
                            }
                            RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id);
                            if (TargetUser == null)
                                return true;

                            if (TargetUser.TeleportEnabled)
                                return true;
                            if (!((Math.Abs((int)(roomuser.X - TargetUser.X)) >= 3) || (Math.Abs((int)(roomuser.Y - TargetUser.Y)) >= 3)))
                            {
                                room.SendMessage(new ChatComposer(roomuser.VirtualId, "*Atrae a " + Params[1] + "*", 0, roomuser.LastBubble, -1));
                                if (roomuser.RotBody % 2 != 0)
                                    roomuser.RotBody--;

                                if (roomuser.RotBody == 0)
                                    TargetUser.MoveTo(roomuser.X, roomuser.Y - 1);
                                else if (roomuser.RotBody == 2)
                                    TargetUser.MoveTo(roomuser.X + 1, roomuser.Y);
                                else if (roomuser.RotBody == 4)
                                    TargetUser.MoveTo(roomuser.X, roomuser.Y + 1);
                                else if (roomuser.RotBody == 6)
                                    TargetUser.MoveTo(roomuser.X - 1, roomuser.Y);

                            }
                            else
                            {
                                SendChatMessage(Session, "El usuario al que intentas atraer está muy lejos.");
                                return true;
                            }
                        }
                        else
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        return true;
                    }
                #endregion

                #region Enable (:enable)
                case "enable":
                case "effect":
                    {
                        if (Session.GetHabbo().HasFuse("fuse_cmd_enable"))
                        {
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "Debes de introducir una ID para el efecto.");
                                return true;
                            }
                            RoomUser TargetRoomUser = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);
                            if (TargetRoomUser.RidingHorse)
                            {
                                SendChatMessage(Session, "¡No puedes activar un efecto mientras estás montando a caballo!");
                                return true;
                            }
                            else if (TargetRoomUser.team != Team.none)
                            {
                                return true;
                            }
                            else if (TargetRoomUser.isLying)
                                return true;

                            string Effect = Params[1];
                            double EffectID;
                            bool isNum = double.TryParse(Effect, out EffectID);
                            if (isNum)
                            {
                                //if(EffectID != 97)
                                Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(int.Parse(EffectID.ToString()));
                            }
                            else
                            {
                                SendChatMessage(Session, "¡Escribe números para referirte a los efectos!");
                                return true;
                            }
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE);
                        }
                        return true;
                    }
                #endregion

                #region Change name (:flagme)
                case "flagme":
                    {
                        /*if (Session.GetHabbo().HasFuse("fuse_cmd_flagme"))
                        {
                            SendChatMessage(Session, "In order to change your name, click yourself and choose \"Change Name\"");
                            SendChatMessage(Session, "You can only change your name every 12 hours.");
                        }
                        else
                        {
                            SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE_2);
                        }
                        return true;*/
                        return false;
                    }
                #endregion

                #region Empty (:empty)
                case "emptyitems":
                case "empty":
                    {
                        if (Session.GetHabbo().HasCmd("emptyitems"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¿Estás seguro de que quieres vaciar todo tu inventario?\n" +
                                 "Para realizar la acción escribe \":emptyitems yes\". \n\nUna vez hecho eso no habrá vuelta atrás.\nSi no quieres vaciarlo sólo cierra esta ventana.\n\n" +
                                 "¡ATENCIÓN! Si tienes más de 3000 objetos deberás tener en cuenta que TODOS serán borrados.");
                                return true;
                            }
                            else
                            {
                                if (Params.Length == 2)
                                {
                                    if (Params[1].ToString() == "yes")
                                    {
                                        //GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                                        Session.GetHabbo().GetInventoryComponent().ClearItems();
                                        Session.SendNotif("Has vaciado satisfactoriamente tu inventario\n¡Qué ligero se siente! ¿No?");
                                        return true;
                                    }
                                }
                            }

                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #endregion

                #region Moderation Commands
                #region Kick (:kick)
                case "alert":
                    {
                        if (Session.GetHabbo().HasCmd("alert"))
                        {
                            if (Params[1] == null || Params[2] == null)
                            {
                                Session.SendNotif("Has escrito un mensaje demasiado corto.");
                                return true;
                            }
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);
                            Room TargetRoom = TargetClient.GetHabbo().CurrentRoom;

                            if (TargetClient == null)
                            {
                                Session.SendNotif("El usuario no se ha podido encontrar.");
                                return true;
                            }

                            TargetClient.SendNotif(Params[2] + " -" + Session.GetHabbo().Username);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                case "kick":
                    {
                        if (Session.GetHabbo().HasCmd("kick"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);
                            Room TargetRoom = TargetClient.GetHabbo().CurrentRoom;

                            if (TargetClient == null)
                            {
                                Session.SendNotif("El usuario no se ha podido encontrar.");
                                return true;
                            }

                            if (Session.GetHabbo().Rank <= TargetClient.GetHabbo().Rank)
                            {
                                Session.SendNotif("No se permite expulsar a este usuario, tal vez este tenga un rango superior al tuyo.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().CurrentRoomId < 1)
                            {
                                Session.SendNotif("Este usuario no se encuentra en la sala.");
                                return true;
                            }

                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(TargetClient.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            TargetRoom.GetRoomUserManager().RemoveUserFromRoom(TargetClient, true, false);
                            TargetClient.CurrentRoomUserID = -1;

                            if (Params.Length > 2)
                            {
                                TargetClient.SendNotif("Un moderador te ha expulsado de la sala por la siguiente razón: " + MergeParams(Params, 2));
                            }
                            else
                            {
                                TargetClient.SendNotif("Un moderador te ha expulsado de la sala sin razón.");
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Room Mute (:roommute) / Room unmute (:roomunmute)
                case "roommute":
                    {
                        if (Session.GetHabbo().HasCmd("roommute") || Session.GetHabbo().HasCmd("roomunmute"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (!Session.GetHabbo().CurrentRoom.RoomMuted)
                                Session.GetHabbo().CurrentRoom.RoomMuted = true;

                            string Msg = MergeParams(Params, 1);

                            ServerMessage Message = new ServerMessage();
                            Message.Init(Outgoing.SendNotif);
                            Message.AppendString("Esta sala ha sido silenciada por la siguiente razón:\n" + Msg);
                            Message.AppendString("");
                            TargetRoom.SendMessage(Message);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "La sala ha sido silenciada.", "La sala ha sido silenciada");
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                case "roomunmute":
                    {
                        if (Session.GetHabbo().HasCmd("roomunmute"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom.RoomMuted)
                                Session.GetHabbo().CurrentRoom.RoomMuted = false;
                            ServerMessage Message = new ServerMessage();
                            Message.Init(Outgoing.SendNotif);
                            Message.AppendString("¡Ya puedes hablar!");
                            Message.AppendString("");
                            TargetRoom.SendMessage(Message);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Mute (:mute)
                case "mute":
                    {
                        if (Session.GetHabbo().HasCmd("mute"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendNotif("El usuario no se puede encontrar.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= 4)
                            {
                                Session.SendNotif("No tienes suficientes permisos para (des)silenciar a este usuario..");
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Muted user");
                            TargetClient.GetHabbo().Mute();
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Flood (:flood)
                case "flood":
                    {
                        if (Session.GetHabbo().HasCmd("flood"))
                        {
                            string TargetUser = null;
                            GameClient TargetClient = null;

                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (Params.Length != 3)
                            {
                                Session.SendNotif("Debes de incluir un nombre de usuario y una duración para silenciar a un usuario.");
                                return true;
                            }
                            TargetClient.GetHabbo().FloodTime = SilverwaveEnvironment.GetUnixTimestamp() + Convert.ToInt32(Params[2]);
                            ServerMessage Packet = new ServerMessage(Outgoing.FloodFilter);
                            Packet.AppendInt32(Convert.ToInt32(Params[2]));
                            TargetClient.SendMessage(Packet);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Unmute (:unmute)
                case "unmute":
                    {
                        if (Session.GetHabbo().HasCmd("unmute"))
                        {

                            string TargetUser = null;
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetUser = Params[1];
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendNotif("No se ha podido encontrar al usuario.");
                                return true;
                            }

                            if (!TargetClient.GetHabbo().Muted)
                            {
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "El usuario ha sido silenciado satisfactoriamente.", "El usuario ha sido desilenciado satisfactoriamente.");

                            TargetClient.GetHabbo().Unmute();
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Summon (:summon)
                case "summon":
                case "come":
                    {
                        if (Session.GetHabbo().HasCmd("summon"))
                        {
                            if (Params.Length < 1)
                            {
                                Session.SendNotif("No has especificado ningún nombre de usuario.");
                                return true;

                            }
                            string username = Params[1];
                            GameClient client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username);
                            if (client == null)
                            {
                                Session.SendNotif("No existe ningún nombre de usuario conectado bajo el nombre de \"" + username + "\"");
                                return true;
                            }
                            client.SendNotif("Has sido traído a la sala actual por " + Session.GetHabbo().Username);
                            RoomData Room = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().CurrentRoomId);
                            Room.SerializeRoomData(new ServerMessage(), (client.GetHabbo().CurrentRoom == null), client);
                            //client.GetMessageHandler().PrepareRoomForUser(Session.GetHabbo().CurrentRoomId, "");
                            client.SendMessage(new RoomForwardComposer(false, Session.GetHabbo().CurrentRoomId));
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Follow (:follow)
                case "follow":
                case "stalk":
                    {
                        if (Session.GetHabbo().HasCmd("follow"))
                        {
                            GameClient TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null || TargetClient.GetHabbo() == null)
                            {
                                Session.SendWhisper("No has podido seguir al usuario solicitado porque no está conectado.");
                                return true;
                            }

                            if (TargetClient == null || TargetClient.GetHabbo().CurrentRoom == null || TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom)
                            {
                                Session.SendWhisper("El usuario no se encuentra en ninguna sala.");
                                return true;
                            }

                            Session.SendMessage(new RoomForwardComposer(false, TargetClient.GetHabbo().CurrentRoom.RoomId));

                            //Session.GetMessageHandler().PrepareRoomForUser(TargetClient.GetHabbo().CurrentRoom.RoomId, "");
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Room kick (:roomkick)
                case "roomkick":
                    {
                        if (Session.GetHabbo().HasCmd("roomkick"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            string ModMsg = MergeParams(Params, 1);

                            RoomKick kick = new RoomKick(ModMsg, (int)Session.GetHabbo().Rank);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "EXPULSIÓN GENERAL DE LA SALA", "La sala entera ha sido vaciada sin razón.");
                            TargetRoom.QueueRoomKick(kick);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Super ban (:superban)
                case "superban":
                    {
                        if (Session.GetHabbo().HasCmd("superban"))
                        {
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null)
                            {
                                Session.SendNotif("El usuario solicitado no se ha podido banear ya que no existe.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= Session.GetHabbo().Rank)
                            {
                                Session.SendNotif("No tienes los suficientes permisos para banear a ese usuario.");
                                return true;
                            }

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Ban", "Long ban forever");

                            SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetClient, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), false, false);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Show Whispers (:togglewhisper)
                case "togglewhisper":
                    {
                        if (Session.GetHabbo().HasCmd("togglewhisper"))
                        {
                            /*if (Session.GetHabbo().ShowRoomWhispers)
                            {
                                Session.GetHabbo().ShowRoomWhispers = false;
                                SendChatMessage(Session, "Room Whispers viewing disabled.");
                            }
                            else
                            {
                                Session.GetHabbo().ShowRoomWhispers = true;
                                SendChatMessage(Session, "Room Whispers viewing enabled.");
                            }*/
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #endregion

                #region Administration Commands
                #region Fast walk
                case "fastwalk":
                    {
                        if (Session.GetHabbo().HasCmd("fastwalk"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (!User.FastWalking)
                            {
                                User.FastWalking = true;
                            }
                            else
                            {
                                User.FastWalking = false;
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region BelCredits (:BelCredits)
                case "BelCredits":
                    {
                        if (Session.GetHabbo().Username == "Custom" || Session.GetHabbo().Username == "Custom")
                        {

                            GameClient TargetClient = null;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().BelCredits = TargetClient.GetHabbo().BelCredits + creditsToAdd;
                                    TargetClient.GetHabbo().UpdateCreditsBalance();
                                    return true;
                                }
                                else
                                {
                                    Session.SendWhisper("Introduzca sólo numeros.");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendWhisper("No se ha podido encontrar el nombre de usuario solicitado.");
                                return true;
                            }

                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Promote room
                case "promoteroom":
                    {
                        if (Session.GetHabbo().HasCmd("promoteroom"))
                        {
                            if (Params[1] == null)
                            {
                                Session.SendNotif("Debes de introducir un nombre y una descripción para el evento.");
                                return true;
                            }

                            int Time;

                            if (!int.TryParse(Params[1], out Time))
                            {
                                Session.SendNotif("El comando debe de ser ejecutado así: :promoteroom duración (el tiempo de duración del evento)).");
                                return true;
                            }

                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                            SilverwaveEnvironment.GetGame().GetRoomEvents().AddNewEvent(Room.RoomId, "¡Evento!", "Esta sala está teniendo un evento, ¡pásalo en grande!", Session);
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Mass Dance (:massdance)
                case "massdance":
                    {
                        if (Session.GetHabbo().HasCmd("massdance") || Session.GetHabbo().Username == "Custom")
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();

                            int DanceId = Convert.ToInt32(Params[1]);
                            if (DanceId > 4)
                            {
                                Session.SendNotif("Esta ID no es correcta.");
                                return true;
                            }

                            if (DanceId > 0 && User.CarryItemID > 0)
                            {
                                User.CarryItem(0);
                            }

                            User.DanceId = DanceId;
                            foreach (RoomUser user in users)
                            {
                                ServerMessage DanceMessage = new ServerMessage(Outgoing.Dance);
                                DanceMessage.AppendInt32(user.VirtualId);
                                DanceMessage.AppendInt32(DanceId);
                                Room.SendMessage(DanceMessage);
                                user.DanceId = DanceId;
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Go Boom (:goboom)
                case "goboom":
                    {
                        if (Session.GetHabbo().HasCmd("goboom"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser user in users)
                            {
                                user.ApplyEffect(108);
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Mass Enable (:massenable)
                case "massenable":
                    {
                        if (Session.GetHabbo().HasCmd("massenable"))
                        {
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser user in users)
                            {
                                if (user.RidingHorse)
                                    continue;
                                user.ApplyEffect(Convert.ToInt32(Params[1]));
                            }
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Test
                case "test":
                    {
                        Session.SendWhisper("¡Este hotel está usando mi puto emulador :o!");

                        ServerMessage derp;
                        if (Session.GetHabbo().Username == "Custom")
                        {
                            switch (Params[0])
                            {
                                case "1":
                                    derp = new ServerMessage(Outgoing.WiredTrigger);
                                    derp.AppendBoolean(false);
                                    derp.AppendInt32(5);
                                    derp.AppendInt32(0);
                                    derp.AppendInt32(5050);
                                    derp.AppendInt32(1290);
                                    derp.AppendString("");
                                    derp.AppendInt32(0);
                                    derp.AppendInt32(11);
                                    derp.AppendInt32(0);
                                    Session.SendMessage(derp);
                                    break;
                                case "2":

                                    break;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Give Credits (:credits)
                case "givecredits":
                case "credits":
                case "coins":
                    {
                        if (Session.GetHabbo().HasCmd("coins"))
                        {

                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().Credits = TargetClient.GetHabbo().Credits + creditsToAdd;
                                    TargetClient.GetHabbo().UpdateCreditsBalance();
                                    TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("coins.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("coins.awardmessage2"));
                                    Session.SendNotif(LanguageLocale.GetValue("coins.updateok"));
                                    return true;
                                }
                                else
                                {
                                    Session.SendNotif("¡Sólo puedes introducir valores numéricos! (Pueden ser negativos y positivos)");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendNotif("No se ha podido encontrar al usuario seleccionado.");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Give Pixels (:pixels)
                case "pixels":
                case "givepixels":
                    {
                        if (Session.GetHabbo().HasCmd("pixels"))
                        {

                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                int creditsToAdd;
                                if (int.TryParse(Params[2], out creditsToAdd))
                                {
                                    TargetClient.GetHabbo().ActivityPoints = TargetClient.GetHabbo().ActivityPoints + creditsToAdd;
                                    Session.GetHabbo().NotifyNewPixels(creditsToAdd);
                                    TargetClient.GetHabbo().UpdateActivityPointsBalance();
                                    TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("pixels.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("pixels.awardmessage2"));
                                    Session.SendNotif(LanguageLocale.GetValue("pixels.updateok"));
                                    return true;
                                }
                                else
                                {
                                    Session.SendNotif("¡Sólo puedes introducir valores numéricos! (Pueden ser negativos y positivos)");
                                    return true;
                                }
                            }
                            else
                            {
                                Session.SendNotif("No se ha podido encontrar al usuario seleccionado.");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Hotel Alert (:ha)
                case "ha":
                    if (Session.GetHabbo().HasCmd("ha"))
                    {
                        string Notice = MergeParams(Params, 1);
                        ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage);
                        HotelAlert.AppendString(Notice + "\r\n" + "- " + Session.GetHabbo().Username);
                        SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(HotelAlert);
                        SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Notice + "]");
                    }
                    else
                    {
                        return false;
                    }
                    return true;
                #endregion

                #region Shutdown (:shutdown)
                case "shutdown":
                    {
                        if (Session.GetHabbo().HasCmd("shutdown"))
                        {
                            Task ShutdownTask = new Task(SilverwaveEnvironment.PerformShutDown);
                            ShutdownTask.Start();
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Shutdown", "Issued shutdown command");
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Disconnect (:kill)
                case "disconnect":
                case "kill":
                case "dc":
                    {
                        if (Session.GetHabbo().HasCmd("kill"))
                        {
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

                            if (TargetClient == null)
                            {
                                Session.SendNotif("El usuario no ha sido encontrado.");
                                return true;
                            }

                            if (TargetClient.GetHabbo().Rank >= 4 && !Session.GetHabbo().HasFuse("fuse_disconnect_anyone"))
                            {
                                Session.SendNotif("No tienes permisos para desconectar a ese usuario.");
                                return true;
                            }
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Disconnect", "User disconnected by user");

                            TargetClient.GetConnection().Dispose();

                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                #endregion

                #region Position (:coords)
                case "coord":
                case "coords":
                case "position":
                    {
                        if (Session.GetHabbo().HasCmd("coords"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser TargetRoomUser = null;
                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            if (TargetRoom == null)
                            {
                                return true;
                            }

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                            if (TargetRoomUser == null)
                            {
                                return true;
                            }

                            Session.SendNotif("X: " + TargetRoomUser.X + "\n - Y: " + TargetRoomUser.Y + "\n - Z: " + TargetRoomUser.Z + "\n - Rotación: " + TargetRoomUser.RotBody + ", sqState: " + TargetRoom.GetGameMap().GameMap[TargetRoomUser.X, TargetRoomUser.Y].ToString() + "\n\n - RoomID: " + Session.GetHabbo().CurrentRoomId);
                        }
                        return true;
                    }
                #endregion

                #region Teleport (:teleport)
                case "teleport":
                case "tele":
                    {
                        if (Session.GetHabbo().HasCmd("teleport"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            RoomUser TargetRoomUser = null;

                            TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (TargetRoomUser.RidingHorse)
                            {
                                SendChatMessage(Session, "No te puedes teletransportar mientras montas a caballo.");
                                return true;
                            }
                            if (TargetRoomUser == null)
                                return true;

                            TargetRoomUser.TeleportEnabled = !TargetRoomUser.TeleportEnabled;

                            TargetRoom.GetGameMap().GenerateMaps();
                        }
                        return true;
                    }
                #endregion

                #region Update (:update_x)
                #region Update Catalog
                case "update_catalog":
                case "reload_catalog":
                case "recache_catalog":
                case "refresh_catalog":
                case "update_catalogue":
                case "reload_catalogue":
                case "recache_catalogue":
                case "refresh_catalogue":
                    {
                        if (Session.GetHabbo().HasCmd("update_catalog"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetCatalog().Initialize(dbClient);
                            }
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(new ServerMessage(Outgoing.UpdateShop));

                            Session.SendNotif("¡El catálogo del hotel ha sido actualizado satisfactoriamente!");
                            return true;
                        }
                        return true;
                    }
                #endregion

                #region Update Items
                case "update_items":
                case "reload_items":
                case "recache_items":
                case "refresh_items":
                    {
                        if (Session.GetHabbo().HasCmd("update_items"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetItemManager().LoadItems(dbClient);
                            }
                            Session.SendNotif("Las definiciones de los objetos han sido actualizadas satisfactoriamente!");
                        }

                        return true;
                    }
                #endregion

                #region Update Filter
                case "update_filter":
                case "reload_filter":
                case "recache_filter":
                case "refresh_filter":
                    {
                        if (Session.GetHabbo().HasCmd("update_filter"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                LanguageLocale.InitSwearWord(dbClient);
                            }
                        }
                        return true;
                    }
                #endregion

                #region Update Navigator
                case "update_navigator":
                case "reload_navigator":
                case "recache_navigator":
                case "refresh_navigator":
                    {
                        if (Session.GetHabbo().HasCmd("update_navigator"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetNavigator().Initialize(dbClient);
                            }
                            Session.SendNotif("¡Se ha actualizado satisfactoriamente el navegador del hotel!");
                        }
                        return true;
                    }
                #endregion

                #region Update Ranks
                case "update_ranks":
                case "reload_ranks":
                case "recache_ranks":
                case "refresh_ranks":
                    {
                        if (Session.GetHabbo().HasCmd("update_ranks"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                SilverwaveEnvironment.GetGame().GetRoleManager().LoadRights(dbClient);
                            }
                            Session.SendNotif("Los rangos del hotel se han actualizado satisfactoriamente.");
                        }
                        return true;
                    }
                #endregion

                #region Update Settings
                case "update_settings":
                case "reload_settings":
                case "recache_settings":
                case "refresh_settings":
                    {
                        if (Session.GetHabbo().HasCmd("update_settings"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                SilverwaveEnvironment.ConfigData = new ConfigData(dbClient);
                        }
                        return true;
                    }
                #endregion

                #region Update Groups
                case "update_groups":
                case "reload_groups":
                case "recache_groups":
                case "refresh_groups":
                    {
                        if (Session.GetHabbo().HasCmd("update_groups"))
                        {
                            SilverwaveEnvironment.GetGame().GetGroupManager().InitGroups();
                            Session.SendNotif("¡Los grupos han sido cargados de nuevo satisfactoriamente!");
                        }

                        return true;
                    }
                #endregion

                #region Update Bans
                case "update_bans":
                    {
                        if (Session.GetHabbo().HasCmd("update_bans"))
                        {
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                SilverwaveEnvironment.GetGame().GetBanManager().LoadBans(dbClient);

                            Session.SendNotif("Los baneos se han actualizado satisfactoriamente.");
                        }
                        return true;
                    }
                #endregion

                #region Update Quests
                case "update_quests":
                    {
                        if (Session.GetHabbo().HasCmd("update_quests"))
                        {
                            SilverwaveEnvironment.GetGame().GetQuestManager().Initialize(SilverwaveEnvironment.GetDatabaseManager().getQueryreactor());
                            Session.SendNotif("¡Se han actualizado las misiones y los retos satisfactoriamente!");
                        }
                        return true;
                    }
                #endregion
                #endregion

                #region Super Pull (:spull)
                case "spull":
                    {
                        if (Session.GetHabbo().HasCmd("spull"))
                        {
                            Room room = Session.GetHabbo().CurrentRoom;
                            if (room == null)
                            {
                                SendChatMessage(Session, "'No se encuentra la sala!");
                                return true;
                            }

                            RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            if (roomuser == null)
                            {
                                SendChatMessage(Session, "¡No se encuentra al usuario!");
                                return true;
                            }
                            if (Params.Length == 1)
                            {
                                SendChatMessage(Session, "¡No se encuentra al usuario!");
                                return true;
                            }

                            GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id);
                            if (Target.GetHabbo().Id == Session.GetHabbo().Id)
                            {
                                SendChatMessage(Session, "¡No te puedes atraer a ti mismo!");
                                return true;
                            }

                            if (TargetUser.TeleportEnabled)
                                return true;

                            if (roomuser.RotBody % 2 != 0)
                                roomuser.RotBody--;
                            room.SendMessage(new ChatComposer(roomuser.VirtualId, "*Atrae a " + Params[1] + "*", 0, roomuser.LastBubble, -1));
                            if (roomuser.RotBody == 0)
                                TargetUser.MoveTo(roomuser.X, roomuser.Y - 1);
                            else if (roomuser.RotBody == 2)
                                TargetUser.MoveTo(roomuser.X + 1, roomuser.Y);
                            else if (roomuser.RotBody == 4)
                                TargetUser.MoveTo(roomuser.X, roomuser.Y + 1);
                            else if (roomuser.RotBody == 6)
                                TargetUser.MoveTo(roomuser.X - 1, roomuser.Y);
                        }
                        return true;
                    }
                #endregion

                #region Global Credits (:globalcredits)
                case "globalcredits":
                    {
                        if (Session.GetHabbo().HasCmd("globalcredits"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("Debes de introducir una cantidad de créditos.");
                                return true;
                            }
                            try
                            {
                                int Amount = int.Parse(Params[1]);
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                    dbClient.runFastQuery("UPDATE users SET credits=credits+" + Amount);

                                SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone in the database");

                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Mass Credits (:masscredits)
                case "masscredits":
                    {
                        if (Session.GetHabbo().HasCmd("masscredits"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("Debes de introducir una cantidad de créditos.");
                                return true;
                            }
                            try
                            {
                                int Amount = int.Parse(Params[1]);
                                SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone online");
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Give Badge (:badge)
                case "badge":
                case "givebadge":
                    {
                        if (Session.GetHabbo().HasCmd("badge"))
                        {
                            if (Params.Length != 3)
                            {
                                Session.SendNotif("Debes de introducir un nombre de usuario junto a la placa que quieras dar.");
                                return true;
                            }
                            GameClient TargetClient = null;
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;

                            TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
                            if (TargetClient != null)
                            {
                                TargetClient.GetHabbo().GetBadgeComponent().GiveBadge(Params[2], true, TargetClient);

                                SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Badge", "Acabas de darle una placa al usuario [" + Params[2] + "]");
                                TargetClient.SendNotif("¡Acabas de recibir una placa por parte de un miembro del equipo administrativo del hotel!");
                                return true;
                            }
                            else
                            {
                                Session.SendNotif("No se encuentra al usuario seleccionado.");
                                return true;
                            }
                        }
                        return true;
                    }
                #endregion

                #region Room Badge (:roombadge)
                case "roombadge":
                    {
                        if (Session.GetHabbo().HasCmd("roombadge"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¡Debes de introducir la ID de la placa!");
                                return true;
                            }

                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                                return true;

                            TargetRoom.QueueRoomBadge(Params[1]);
                            ServerMessage nMessage = new ServerMessage();
                            nMessage.Init(Outgoing.SendNotif);
                            nMessage.AppendString("¡Acabas de recibir una placa por parte de uno de los miembros del Equipo Administrativo del hotel!");
                            nMessage.AppendString("");
                            TargetRoom.SendMessage(nMessage);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "La sala [" + TargetRoom.RoomId + "] ha recibido la placa [" + Params[1] + "]");
                        }
                        return true;
                    }
                #endregion

                #region Mass Badge (:massbadge)
                case "massbadge":
                    {
                        if (Session.GetHabbo().HasCmd("massbadge"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¡Debes de introducir la ID de la placa!");
                                return true;
                            }
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBadgeUpdate(Params[1]);
                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Placa masiva a todo el hotel, ID: [" + Params[1] + "]");
                            ServerMessage nMessage = new ServerMessage();
                            nMessage.Init(Outgoing.SendNotif);
                            nMessage.AppendString("¡Acabas de recibir una placa por parte de uno de los miembros del Equipo Administrativo del hotel!");
                            nMessage.AppendString("");
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage);
                        }
                        return true;
                    }
                #endregion

                #region All eyes on me (:alleyesonme)
                case "alleyesonme":
                    {
                        if (Session.GetHabbo().HasCmd("alleyesonme"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                                return true;
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser Us in users)
                            {
                                if (Session.GetHabbo().Id == Us.userID)
                                    continue;
                                Us.SetRot(Rotation.Calculate(Us.X, Us.Y, User.X, User.Y));
                            }
                        }
                        return true;
                    }
                #endregion

                #region IP Ban (:ipban)
                case "ipban":
                case "banip":
                    {
                        if (Session.GetHabbo().HasCmd("ipban"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado.");
                                return true;
                            }
                            try
                            {
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false);
                            }
                            catch (Exception e) { Console.WriteLine(e); }

                        }
                        return true;
                    }
                #endregion

                #region Machine Ban (:machineban)
                case "machineban":
                case "banmachine":
                case "mban":
                    {
                        if (Session.GetHabbo().HasCmd("machineban"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado.");
                                return true;
                            }

                            if (string.IsNullOrWhiteSpace(TargetUser.MachineId))
                            {
                                Session.SendNotif("No se ha podido banear a este usuario ya que no se encuentra una ID de su PC.");
                                return true;
                            }

                            try
                            {
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "Has sido baneado bajo la siguiente razón:\n" + MergeParams(Params, 2), false, true);
                            }
                            catch (Exception e) { Console.WriteLine(e); }

                        }
                        return true;
                    }
                #endregion

                #region Machine and IP ban (:mip)
                case "mip":
                    {
                        if (Session.GetHabbo().HasCmd("mip"))
                        {
                            if (Params.Length == 1)
                            {
                                Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!");
                            }
                            GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString());
                            if (TargetUser == null)
                            {
                                Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado.");
                                return true;
                            }
                            try
                            {
                                if (string.IsNullOrWhiteSpace(TargetUser.MachineId))
                                {
                                    Session.SendNotif("No se ha podido banear a este usuario ya que no se encuentra una ID de su PC.");
                                    return true;
                                }
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "Has sido baneado bajo la siguiente razón:\n" + MergeParams(Params, 2), false, true);
                                SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false);
                            }
                            catch (Exception e) { Console.WriteLine(e); }
                        }
                        return true;
                    }
                #endregion

                #region All around me (:allaroundme)
                case "allaroundme":
                    {
                        if (Session.GetHabbo().HasCmd("allaroundme"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            if (Session.GetHabbo().CurrentRoom == null)
                            {
                                Session.SendNotif("Ha ocurrido un error inesperado.");
                                return true;
                            }
                            Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

                            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                            List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers();
                            foreach (RoomUser Us in users)
                            {
                                if (Session.GetHabbo().Id == Us.userID)
                                    continue;
                                Us.MoveTo(User.X, User.Y, true);
                            }
                            if (Params.Length == 2)
                            {
                                if (Params[1] == "override")
                                {
                                    foreach (RoomUser Us in users)
                                    {
                                        if (Session.GetHabbo().Id == Us.userID)
                                            continue;
                                        Us.AllowOverride = true;
                                        Us.MoveTo(User.X, User.Y, true);
                                        Us.AllowOverride = false;
                                    }
                                }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Hotel alert w/link (:hal)
                case "hal":
                    {
                        if (Session.GetHabbo().HasCmd("hal"))
                        {
                            Room TargetRoom = Session.GetHabbo().CurrentRoom;
                            // Hotel Alert pluss link :hal <link> <message>
                            string Link = Params[1];

                            string Message = MergeParams(Params, 2);

                            ServerMessage nMessage = new ServerMessage(Outgoing.SendNotif);
                            nMessage.AppendString(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Message + "\r\n-" + Session.GetHabbo().Username);
                            nMessage.AppendString(Link);
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Message + "]");
                        }
                        return true;
                    }
                #endregion

                #region Staff Alert (:sa)
                case "sa":
                    {
                        if (Session.GetHabbo().HasCmd("sa"))
                        {
                            string Message = "<b>Chat Administrativo</b>: \n" + Params[1] + "\n - " + Session.GetHabbo().Username;
                            ServerMessage message = new ServerMessage(Outgoing.BroadcastMessage);
                            message.AppendString(Message);
                            SilverwaveEnvironment.GetGame().GetClientManager().StaffAlert(message);

                            SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "StaffAlert", "Staff alert [" + Message + "]");
                        }
                        return true;
                    }
                #endregion

                #region Spectators Mode (:invisible)

                case "invisible":
                case "spec":
                case "spectatorsmode":
                    {
                        if (Session.GetHabbo().HasCmd("invisible"))
                        {
                            if (Session.GetHabbo().SpectatorMode == false)
                            {
                                Session.GetHabbo().SpectatorMode = true;

                                Session.SendNotif("Reinicia la sala para ser invisible.");

                            }
                            else
                            {
                                Session.GetHabbo().SpectatorMode = false;
                                Session.SendNotif("Reinicia la sala para ser visible.");
                            }
                        }
                        return true;
                    }

                #endregion

                #region Add Bannable Word (:banword)
                case "banword":
                    {
                        if (Session.GetHabbo().HasCmd("banword"))
                        {
                            string BannedWord = Params[1];
                            if (!string.IsNullOrWhiteSpace(BannedWord))
                            {
                                using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                {
                                    dbClient.setQuery("INSERT INTO wordfilter (`word`, `addedby`, `bannable`) VALUES " +
                                        "(@ban, '" + Session.GetHabbo().Username + "', '0');");
                                    dbClient.addParameter("ban", BannedWord.ToLower());
                                    dbClient.runQuery();
                                    LanguageLocale.InitSwearWord(dbClient);
                                    Session.SendNotif("La palabra '" + BannedWord + "' ha sido añaida a la lista prohibida.");
                                }
                            }
                        }
                        return true;
                    }
                #endregion

                #region Unidle (:unidle)
                case "unidle":
                    {
                        if (Session.GetHabbo().HasCmd("unidle"))
                        {
                            Habbo Habbo = SilverwaveEnvironment.getHabboForName(Params[1]);
                            if (Habbo == null)
                                return true;

                            RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Habbo.Id);

                            if (User == null)
                                return true;

                            User.UnIdle();
                        }
                        return true;
                    }
                #endregion

                #region Make Public (:public)
                case "public":
                    {
                        if (Session.GetHabbo().HasCmd("public"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;
                            if (Room == null)
                                return true;
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                dbClient.runFastQuery("UPDATE rooms SET roomtype='public' WHERE id=" + Room.RoomId + " LIMIT 1");
                            Room.Type = "public";
                            Room.RoomData.Type = "public";
                            Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true);
                        }
                        return true;
                    }
                #endregion

                #region Make Private (:private)
                case "private":
                    {
                        if (Session.GetHabbo().HasCmd("private"))
                        {
                            Room Room = Session.GetHabbo().CurrentRoom;
                            if (Room == null)
                                return true;
                            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
                                dbClient.runFastQuery("UPDATE rooms SET roomtype='private' WHERE id=" + Room.RoomId + " LIMIT 1");
                            Room.Type = "private";
                            Room.RoomData.Type = "private";
                            Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true);
                        }
                        return true;
                    }
                #endregion

                #region Mass Action (:massact)
                case "massact":
                    {
                        if (Session.GetHabbo().HasCmd("massact"))
                        {
                            try
                            {
                                Room Room = Session.GetHabbo().CurrentRoom;

                                List<RoomUser> Users = Room.GetRoomUserManager().GetRoomUsers();
                                int Num = Int16.Parse(Params[1]);

                                ServerMessage Message = new ServerMessage();

                                foreach (RoomUser User in Users)
                                {
                                    if (User == null)
                                        continue;

                                    Room.SendMessage(new ActionComposer(User, Num));
                                }
                            }
                            catch { }
                        }
                        return true;
                    }
                #endregion

                #region Close Alert (:closealert)
                case "closealert":
                    {
                        if (Session.GetHabbo().HasCmd("closealert"))
                        {
                            int Time = int.Parse(Params[1]);

                            ServerMessage Message = new ServerMessage(Outgoing.ClosingAlert);
                            Message.AppendInt32(Time);
                            SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(Message);
                        }
                        return true;
                    }
                #endregion
                #endregion
            }
            return false;
            #endregion
        }