Пример #1
0
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 2)
            {
                if (session.GetHabbo().HasPermission("cmd_roomalert"))
                {
                    string message = TextUtilies.MergeArrayToString(args, 1);

                    foreach (RoomUnitUser user in session.GetHabbo().GetRoomSession().GetRoom().RoomUserManager.GetRealUsers())
                    {
                        try
                        {
                            user.Session.SendNotif(message);
                        }
                        catch
                        {
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().GetRoomUser();
                if (roomUser != null)
                {
                    string motto = TextUtilies.FilterString(message.PopFixedString());
                    if (!TextUtilies.HaveBlacklistedWords(motto))
                    {
                        session.GetHabbo().Motto = motto;

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("motto", motto);

                            dbClient.ExecuteQuery("UPDATE users SET motto = @motto WHERE id = @userId LIMIT 1");
                            if (session.GetHabbo().GetUserSettings().FriendStream)
                            {
                                dbClient.ExecuteQuery("INSERT INTO user_friend_stream(type, user_id, timestamp, extra_data) VALUES('3', @userId, UNIX_TIMESTAMP(), @motto)");
                            }
                        }

                        session.SendMessage(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", -1, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints));
                        roomUser.Room.SendToAll(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", roomUser.VirtualID, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints));

                        Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeMotto", 1);
                    }
                }
            }
        }
Пример #3
0
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetMessenger() != null)
            {
                string filteredMessage = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(this.Message));

                List <string> receiverUsernames  = new List <string>();
                List <int>    receiverSessionIds = new List <int>();
                foreach (uint userId in this.SendTo)
                {
                    if (userId > 0) //real user
                    {
                        if (session.GetHabbo().GetMessenger().IsFriendWith(userId))
                        {
                            Skylight.GetGame().GetGameClientManager().GetGameClientById(userId)?.SendMessage(new MessengerReceivedRoomInviteComposerHandler(session.GetHabbo().ID, filteredMessage));
                        }
                        else
                        {
                            receiverUsernames.Add(Skylight.GetGame().GetGameClientManager().GetUsernameByID(userId));
                            receiverSessionIds.Add(-1);
                        }
                    }
                }

                Skylight.GetGame().GetChatlogManager().LogRoomInvite(session, this.SendTo.Where(u => u > 0).ToList(), receiverUsernames, receiverSessionIds, this.Message);
            }
        }
Пример #4
0
        public void Handle(GameClient session, ClientMessage message)
        {
            Room room = session.GetHabbo().GetRoomSession().GetRoom();

            if (room != null)
            {
                uint     itemId = message.PopWiredUInt();
                RoomItem item   = room.RoomItemManager.TryGetRoomItem(itemId);
                if (item != null)
                {
                    string   data         = message.PopFixedString();
                    string[] dataSpllited = data.Split(new char[] { ' ' }, 2);

                    string message_ = TextUtilies.FilterString(dataSpllited[1], false, true);
                    if (room.GaveRoomRights(session) || data.StartsWith(item.ExtraData))
                    {
                        string color = dataSpllited[0];
                        if (color == "FFFF33" || color == "FF9CFF" || color == "9CCEFF" || color == "9CFF9C")
                        {
                            item.ExtraData = color + " " + message_;
                            item.UpdateState(true, true);
                        }
                    }
                }
            }
        }
        public override void LoadItemData(string data)
        {
            string[] dataSpit = data.Split((char)9);

            if (!string.IsNullOrEmpty(dataSpit[0]))
            {
                foreach (string itemData in dataSpit[0].Split('|'))
                {
                    string[] itemDataSlit = itemData.Split(',');
                    uint     itemId       = uint.Parse(itemDataSlit[0]);

                    RoomItem item = this.Room.RoomItemManager.TryGetRoomItem(itemId);
                    if (item != null)
                    {
                        string extraData = itemDataSlit[1];
                        int    rot       = int.Parse(itemDataSlit[2]);
                        int    x         = int.Parse(itemDataSlit[3]);
                        int    y         = int.Parse(itemDataSlit[4]);
                        double z         = double.Parse(itemDataSlit[5]);

                        this.SelectedItems.Add(item);
                        this.MatchFurniData.Add(item.ID, new MatchFurniData(extraData, rot, x, y, z));
                    }
                }
            }

            this.FurniState = TextUtilies.StringToBool(dataSpit[1]);
            this.Direction  = TextUtilies.StringToBool(dataSpit[2]);
            this.Position   = TextUtilies.StringToBool(dataSpit[3]);
        }
Пример #6
0
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 3)
            {
                if (session.GetHabbo().HasPermission("cmd_motd"))
                {
                    GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]);
                    if (target != null)
                    {
                        target.SendNotif(TextUtilies.MergeArrayToString(args, 2), 2);
                    }
                    else
                    {
                        session.SendNotif("Unable to find user!");
                    }

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #7
0
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetMessenger() != null)
            {
                uint userId = 0;
                bool blockFriendRequests = false;

                GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(this.Username);
                if (target?.GetHabbo()?.GetUserSettings() == null)
                {
                    DataRow dataRow = null;
                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("username", this.Username);
                        dataRow = dbClient.ReadDataRow("SELECT id, block_newfriends FROM users WHERE username = @username LIMIT 1");
                    }

                    if (dataRow != null)
                    {
                        userId = (uint)dataRow["id"];
                        blockFriendRequests = TextUtilies.StringToBool((string)dataRow["block_newfriends"]);
                    }
                }
                else
                {
                    userId = target.GetHabbo().ID;
                    blockFriendRequests = target.GetHabbo().GetUserSettings().BlockNewFriends;
                }

                if (userId > 0 && userId != session.GetHabbo().ID)
                {
                    if (blockFriendRequests)
                    {
                        session.SendMessage(new MessengerSendFriendRequestErrorComposerHandler(MessengerSendFriendRequestErrorCode.FriendRequestsDisabled));
                    }
                    else
                    {
                        if (session.GetHabbo().GetMessenger().TrySendFriendRequestTo(userId) && !(target?.GetHabbo()?.GetMessenger()?.HasFriendRequestPendingFrom(session.GetHabbo().ID) ?? true))
                        {
                            bool insertSuccess = false;
                            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                            {
                                dbClient.AddParamWithValue("toid", userId);
                                dbClient.AddParamWithValue("userid", session.GetHabbo().ID);
                                insertSuccess = dbClient.ExecuteNonQuery("INSERT INTO messenger_requests (to_id, from_id) VALUES (@toid, @userid)") > 0;
                            }

                            if (insertSuccess)
                            {
                                target?.GetHabbo()?.GetMessenger()?.AddFriendRequest(new MessengerRequest(userId, session.GetHabbo().ID, session.GetHabbo().Username, session.GetHabbo().Look));
                            }
                        }
                    }
                }
                else
                {
                    session.SendMessage(new MessengerSendFriendRequestErrorComposerHandler(MessengerSendFriendRequestErrorCode.RequestNotFound));
                }
            }
        }
Пример #8
0
        public RoomData(DataRow dataRow)
        {
            if (dataRow != null)
            {
                this.ID          = (uint)dataRow["id"];
                this.Name        = (string)dataRow["name"];
                this.Description = (string)dataRow["description"];
                this.OwnerID     = (uint)dataRow["ownerid"];
                this.Type        = (string)dataRow["type"];
                this.Model       = (string)dataRow["model"];
                this.State       = (string)dataRow["state"] == "password" ? RoomStateType.PASSWORD : (string)dataRow["state"] == "locked" ? RoomStateType.LOCKED : RoomStateType.OPEN;
                this.Category    = (int)dataRow["category"];
                this.UsersNow    = (int)dataRow["users_now"]; //maybe we need this sometimes :3
                this.UsersMax    = (int)dataRow["users_max"];
                this.PublicCCTs  = (string)dataRow["public_ccts"];
                this.Score       = (int)dataRow["score"];
                string tags = (string)dataRow["tags"];
                if (!string.IsNullOrEmpty(tags))
                {
                    this.Tags = tags.Split(',').ToList();
                }
                else
                {
                    this.Tags = new List <string>();
                }
                this.RoomIcon         = new RoomIcon((int)dataRow["icon_bg"], (int)dataRow["icon_fg"], (string)dataRow["icon_items"]);
                this.Password         = (string)dataRow["password"];
                this.Wallpaper        = (string)dataRow["wallpaper"];
                this.Floor            = (string)dataRow["floor"];
                this.Landscape        = (string)dataRow["landscape"];
                this.AllowPets        = TextUtilies.StringToBool((string)dataRow["allow_pets"]);
                this.AllowPetsEat     = TextUtilies.StringToBool((string)dataRow["allow_pets_eat"]);
                this.AllowWalkthrough = TextUtilies.StringToBool((string)dataRow["allow_walkthrough"]);
                this.Hidewalls        = TextUtilies.StringToBool((string)dataRow["hidewalls"]);
                this.Wallthick        = (int)dataRow["wallthick"];
                this.Floorthick       = (int)dataRow["floorthick"];
                this.AllowTrade       = (RoomAllowTradeType)int.Parse((string)dataRow["trade"]);
                this.MuteOption       = (RoomWhoCanType)int.Parse((string)dataRow["mute_option"]);
                this.KickOption       = (RoomWhoCanType)int.Parse((string)dataRow["kick_option"]);
                this.BanOption        = (RoomWhoCanType)int.Parse((string)dataRow["ban_option"]);
                this.ChatMode         = (RoomChatModeType)int.Parse((string)dataRow["chat_mode"]);
                this.ChatWeight       = (RoomChatWeightType)int.Parse((string)dataRow["chat_weight"]);
                this.ChatSpeed        = (RoomChatSpeedType)int.Parse((string)dataRow["chat_speed"]);
                this.ChatProtection   = (RoomChatProtectionType)int.Parse((string)dataRow["chat_protection"]);

                string data = (string)dataRow["data"];
                if (!string.IsNullOrEmpty(data))
                {
                    this.ExtraData = JsonConvert.DeserializeObject <RoomExtraData>(data);
                }
                else
                {
                    this.ExtraData = new RoomExtraData();
                }
            }
            else
            {
                this.NullValues();
            }
        }
        public void Handle(GameClient session, ClientMessage message)
        {
            string name = message.PopFixedString();
            int    type = message.PopWiredInt32();

            if (name.Length >= 2)
            {
                if (name.Length <= 16)
                {
                    Regex regex = new Regex(@"^[A-Z0-9_-]+$", RegexOptions.IgnoreCase);
                    foreach (char char_ in name)
                    {
                        if (!regex.IsMatch(char_.ToString()))
                        {
                            ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            message_.Init(r63aOutgoing.ValidatePetNameResult);
                            message_.AppendInt32(3); //0 = valid, 1 = too long, 2 = too short, 3 = forbidden cheracters, 4 = forbidden words
                            message_.AppendString(char_.ToString());
                            session.SendMessage(message_);

                            return; //we don't want continue :(
                        }
                    }

                    if (TextUtilies.HaveBlacklistedWords(name))
                    {
                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.ValidatePetNameResult);
                        message_.AppendInt32(4);   //0 = valid, 1 = too long, 2 = too short, 3 = forbidden cheracters, 4 = forbidden words
                        message_.AppendString(""); //show the forbidden word
                        session.SendMessage(message_);
                    }
                    else //let the user buy it
                    {
                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.ValidatePetNameResult);
                        message_.AppendInt32(0);   //0 = valid, 1 = too long, 2 = too short, 3 = forbidden cheracters, 4 = forbidden words
                        message_.AppendString(""); //show the forbidden word
                        session.SendMessage(message_);
                    }
                }
                else
                {
                    ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                    message_.Init(r63aOutgoing.ValidatePetNameResult);
                    message_.AppendInt32(1); //0 = valid, 1 = too long, 2 = too short, 3 = forbidden cheracters, 4 = forbidden words
                    message_.AppendString("16");
                    session.SendMessage(message_);
                }
            }
            else
            {
                ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                message_.Init(r63aOutgoing.ValidatePetNameResult);
                message_.AppendInt32(2); //0 = valid, 1 = too long, 2 = too short, 3 = forbidden cheracters, 4 = forbidden words
                message_.AppendString("2");
                session.SendMessage(message_);
            }
        }
Пример #10
0
 public void Handle(GameClient session, ClientMessage message)
 {
     if (session.FlagmeCommandUsed)
     {
         if (session.GetHabbo().HasPermission("cmd_flagme"))
         {
             string username = TextUtilies.FilterString(message.PopFixedString());
             if (username.Length < 3) //to short
             {
                 ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                 message_.Init(r63aOutgoing.ValidUsername);
                 message_.AppendInt32(2); //result
                 message_.AppendString(username);
                 message_.AppendInt32(0); //suggested names
                 session.SendMessage(message_);
             }
             else if (username.Length > 15) // too long
             {
                 ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                 message_.Init(r63aOutgoing.ValidUsername);
                 message_.AppendInt32(3); //result
                 message_.AppendString(username);
                 message_.AppendInt32(0); //suggested names
                 session.SendMessage(message_);
             }
             else if (username.Contains(" ") || !Regex.IsMatch(username, "^[-a-zA-Z0-9._:,]+$") || TextUtilies.HaveBlacklistedWords(username)) //invalid name
             {
                 ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                 message_.Init(r63aOutgoing.ValidUsername);
                 message_.AppendInt32(4); //result
                 message_.AppendString(username);
                 message_.AppendInt32(0); //suggested names
                 session.SendMessage(message_);
             }
             else if (Skylight.GetGame().GetGameClientManager().UsernameExits(username)) //name already exits
             {
                 ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                 message_.Init(r63aOutgoing.ValidUsername);
                 message_.AppendInt32(5); //result
                 message_.AppendString(username);
                 message_.AppendInt32(0); //suggested names
                 session.SendMessage(message_);
             }
             else
             {
                 ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                 message_.Init(r63aOutgoing.ValidUsername);
                 message_.AppendInt32(0); //result
                 message_.AppendString(username);
                 message_.AppendInt32(0); //suggested names
                 session.SendMessage(message_);
             }
         }
     }
     else
     {
     }
 }
Пример #11
0
 public MoodlightPreset StringToMoodlightPreset(string data)
 {
     string[] dataSplitted = data.Split(',');
     if (!this.IsValidColor(dataSplitted[0]))
     {
         dataSplitted[0] = "#000000";
     }
     return(new MoodlightPreset(dataSplitted[0], int.Parse(dataSplitted[1]), TextUtilies.StringToBool(dataSplitted[2])));
 }
Пример #12
0
        public static Habbo LoadHabbo(UserDataFactory userData, GameClient session)
        {
            DataRow habboData = userData.GetUserData();

            uint   id                       = (uint)habboData["id"];
            string username                 = (string)habboData["username"];
            string realName                 = (string)habboData["real_name"];
            string email                    = (string)habboData["mail"];
            string sso                      = (string)habboData["auth_ticket"];
            int    rank                     = (int)habboData["rank"];
            int    credits                  = (int)habboData["credits"];
            string activityPoints           = (string)habboData["activity_points"];
            double activityPointsLastUpdate = (double)habboData["activity_points_lastupdate"];
            string look                     = (string)habboData["look"];
            string gender                   = (string)habboData["gender"];
            string motto                    = (string)habboData["motto"];
            double accountCreated           = (double)habboData["account_created"];
            double lastOnline               = (double)habboData["last_online"];
            string ipLast                   = (string)habboData["ip_last"];
            string ipReg                    = (string)habboData["ip_reg"];
            uint   homeRoom                 = (uint)habboData["home_room"];
            int    dailyRespectPoints       = (int)habboData["daily_respect_points"];
            int    dailyPetRespectPoints    = (int)habboData["daily_pet_respect_points"];
            double muteExpires              = (double)habboData["mute_expires"];
            bool   blockNewFriends          = TextUtilies.StringToBool((string)habboData["block_newfriends"]);
            bool   hideOnline               = TextUtilies.StringToBool((string)habboData["hide_online"]);
            bool   hideInRoom               = TextUtilies.StringToBool((string)habboData["hide_inroom"]);

            int[] volume = ((string)habboData["volume"]).Split(new char[] { ',' }, 3, StringSplitOptions.RemoveEmptyEntries).Select(v => int.TryParse(v, out int i) ? i : 100).ToArray();
            if (volume.Length == 0)
            {
                volume = new int[] { 100, 100, 100 };
            }
            else if (volume.Length == 1)
            {
                volume = new int[] { volume[0], 100, 100 };
            }
            else if (volume.Length == 2)
            {
                volume = new int[] { volume[0], volume[1], 100 };
            }
            bool   acceptTrading     = TextUtilies.StringToBool((string)habboData["accept_trading"]);
            int    marketplaceTokens = (int)habboData["marketplace_tokens"];
            int    newbieStatus      = (int)habboData["newbie_status"];
            uint   newbieRoom        = (uint)habboData["newbie_room"];
            bool   friendStream      = TextUtilies.StringToBool((string)habboData["friend_stream"]);
            string twoFactoryAuthenicationSecretCode = (string)habboData["two_factory_authenication_secret_code"];
            bool   mailConfirmed            = TextUtilies.StringToBool((string)habboData["mail_confirmed"]);
            bool   preferOldChat            = TextUtilies.StringToBool((string)habboData["prefer_old_chat"]);
            bool   blockRoomInvites         = TextUtilies.StringToBool((string)habboData["block_room_invites"]);
            bool   blockCameraFollow        = TextUtilies.StringToBool((string)habboData["block_camera_follow"]);
            int    chatColor                = (int)habboData["chat_color"];
            double guideEnrollmentTimestamp = (double)habboData["guide_enrollment_timestamp"];

            return(new Habbo(session, userData, id, username, realName, email, sso, rank, credits, activityPoints, activityPointsLastUpdate, look, gender, motto, accountCreated, lastOnline, ipLast, ipReg, homeRoom, dailyRespectPoints, dailyPetRespectPoints, muteExpires, blockNewFriends, hideOnline, hideInRoom, volume, acceptTrading, marketplaceTokens, newbieStatus, newbieRoom, friendStream, twoFactoryAuthenicationSecretCode, mailConfirmed, preferOldChat, blockRoomInvites, blockCameraFollow, chatColor, guideEnrollmentTimestamp));
        }
        public void Handle(GameClient session, ClientMessage message)
        {
            session.GetHabbo().GetUserSettings().FriendStream = message.PopBase64Boolean();

            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
            {
                dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                dbClient.AddParamWithValue("friendStream", TextUtilies.BoolToString(session.GetHabbo().GetUserSettings().FriendStream));

                dbClient.ExecuteQuery("UPDATE users SET friend_stream = @friendStream WHERE id = @userId LIMIT 1");
            }
        }
Пример #14
0
        public void Handle(GameClient session, ClientMessage message)
        {
            RoomUnit user = session.GetHabbo().GetRoomSession().GetRoomUser();

            if (!user.HasStatus("lay"))
            {
                if (user.BodyRotation == 0 || user.BodyRotation == 2 || user.BodyRotation == 4 || user.BodyRotation == 6)
                {
                    user.AddStatus("sit", TextUtilies.DoubleWithDotDecimal((user.Z + 1) / 2 - user.Z * 0.5));
                }
            }
        }
Пример #15
0
        public ServerMessage Handle(ValueHolder valueHolder = null)
        {
            RoomItemRollerMovement[] movement = valueHolder.GetValueOrDefault <RoomItemRollerMovement[]>("Movement");
            RoomUserRollerMovement   user     = valueHolder.GetValueOrDefault <RoomUserRollerMovement>("User");

            ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051);

            message.Init(r63cOutgoing.RollerMovement);
            if (movement != null)
            {
                RoomItemRollerMovement single = movement[0];

                message.AppendInt32(single.CurrentXY.X);
                message.AppendInt32(single.CurrentXY.Y);
                message.AppendInt32(single.NextXY.X);
                message.AppendInt32(single.NextXY.Y);

                message.AppendInt32(movement.Length); //items count
                foreach (RoomItemRollerMovement item in movement)
                {
                    message.AppendUInt(item.ItemId);
                    message.AppendString(TextUtilies.DoubleWithDotDecimal(item.CurrentZ));
                    message.AppendString(TextUtilies.DoubleWithDotDecimal(item.NextZ));
                }

                message.AppendUInt(single.SourceID); //source of action
            }
            else
            {
                message.AppendInt32(user.CurrentX);
                message.AppendInt32(user.CurrentY);
                message.AppendInt32(user.NextX);
                message.AppendInt32(user.NextY);

                message.AppendInt32(0);            //items count

                message.AppendUInt(user.SourceID); //source of action
            }

            if (user != null)
            {
                message.AppendInt32(2); //user movement type
                message.AppendInt32(user.VirtualID);
                message.AppendString(TextUtilies.DoubleWithDotDecimal(user.CurrentZ));
                message.AppendString(TextUtilies.DoubleWithDotDecimal(user.NextZ));
            }
            else
            {
                message.AppendInt32(0);
            }
            return(message);
        }
Пример #16
0
 public override void Serialize(ServerMessage message)
 {
     message.AppendInt32(-1);
     message.AppendString(this.Data.Name);
     message.AppendString(this.Data.Motto);
     message.AppendString(this.Data.Look);
     message.AppendInt32(this.VirtualID);
     message.AppendInt32(this.X);
     message.AppendInt32(this.Y);
     message.AppendString(TextUtilies.DoubleWithDotDecimal(this.Z));
     message.AppendInt32(2); //dir
     message.AppendInt32(3);
 }
Пример #17
0
        public void Handle(GameClient session, ClientMessage message)
        {
            int    pageId           = message.PopWiredInt32();
            uint   itemId           = message.PopWiredUInt();
            string extraData        = message.PopFixedString();
            string receiverUsername = TextUtilies.FilterString(message.PopFixedString());
            string giftMessage      = TextUtilies.FilterString(message.PopFixedString());
            int    giftSpriteId     = message.PopWiredInt32(); //0 for no special gift
            int    giftBoxId        = message.PopWiredInt32();
            int    giftRibbonId     = message.PopWiredInt32();

            Skylight.GetGame().GetCatalogManager().BuyItem(session, pageId, itemId, extraData, 1, true, receiverUsername, giftMessage, giftSpriteId, giftBoxId, giftRibbonId);
        }
Пример #18
0
 public override void Serialize(ServerMessage message)
 {
     message.AppendUInt(this.PetData.ID);
     message.AppendString(this.PetData.Name);
     message.AppendString(""); //pets dont have motto xD
     message.AppendString(this.PetData.Look);
     message.AppendInt32(this.VirtualID);
     message.AppendInt32(this.X);
     message.AppendInt32(this.Y);
     message.AppendString(TextUtilies.DoubleWithDotDecimal(this.Z));
     message.AppendInt32(2); //dir
     message.AppendInt32(2);
     message.AppendInt32(int.Parse(this.PetData.Race));
 }
Пример #19
0
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 2)
            {
                GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]);
                if (target != null)
                {
                    RoomUnit     me    = session.GetHabbo().GetRoomSession().GetRoomUser();
                    RoomUnitUser other = target.GetHabbo().GetRoomSession().GetRoomUser();
                    if (target.GetHabbo().GetRoomSession().IsInRoom&& target.GetHabbo().GetRoomSession().CurrentRoomID == session.GetHabbo().GetRoomSession().CurrentRoomID)
                    {
                        bool doit = true;
                        if ((me.X + 1 != other.X || me.Y != other.Y) && (me.X - 1 != other.X || me.Y != other.Y) && (me.Y + 1 != other.Y || me.X != other.X))
                        {
                            bool skip = false;
                            if (me.X - 1 == other.X)
                            {
                                if (me.Y == other.Y)
                                {
                                    skip = true;
                                }
                            }

                            if (!skip)
                            {
                                doit = me.X == other.X || me.Y == other.Y;
                            }
                        }

                        if (doit)
                        {
                            me.Speak("*RKO'S " + other.Session.GetHabbo().Username + " OUT OF NO WHERE*", true);
                            other.Speak("Ouch", true);
                            if (!other.HasStatus("lay") && !other.HasStatus("sit"))
                            {
                                if (other.BodyRotation == 0 || other.BodyRotation == 2 || other.BodyRotation == 4 || other.BodyRotation == 6)
                                {
                                    other.AddStatus("sit", TextUtilies.DoubleWithDotDecimal((other.Z + 1) / 2 - other.Z * 0.5));
                                }
                            }
                        }

                        return(true);
                    }
                }
            }

            return(false);
        }
Пример #20
0
 public override bool OnUse(GameClient session, string[] args)
 {
     if (session.GetHabbo().HasPermission("cmd_update_filter"))
     {
         using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
         {
             TextUtilies.LoadWordfilter(dbClient);
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #21
0
        public override void Serialize(ServerMessage message)
        {
            if (message.GetRevision() > Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169)
            {
                message.AppendUInt(this.Session.GetHabbo().ID);
                message.AppendString(this.Session.GetHabbo().Username);
                message.AppendString(this.Session.GetHabbo().Motto);
                message.AppendString(this.Session.GetHabbo().Look);
                message.AppendInt32(this.VirtualID);
                message.AppendInt32(this.X);
                message.AppendInt32(this.Y);
                message.AppendString(TextUtilies.DoubleWithDotDecimal(this.Z));
                message.AppendInt32(0);
                message.AppendInt32(1);
                message.AppendString(this.Session.GetHabbo().Gender.ToLower());
                message.AppendInt32(-1); //group id
                message.AppendInt32(-1); //fav group
                if (message.GetRevision() < Revision.RELEASE63_201211141113_913728051)
                {
                    message.AppendInt32(-1);
                }
                else
                {
                    message.AppendString(""); //group name
                }
                message.AppendString(this.Swimsuit);
                message.AppendInt32(this.Session.GetHabbo().GetUserStats().AchievementPoints);
                if (message.GetRevision() >= Revision.PRODUCTION_201601012205_226667486)
                {
                    message.AppendBoolean(true); //IDK
                }
            }
            else
            {
                message.AppendString("i:" + this.VirtualID, 13);
                message.AppendString("a:" + this.UserID, 13);
                message.AppendString("s:" + this.Session.GetHabbo().Gender, 13);
                message.AppendString("n:" + this.Session.GetHabbo().Username, 13);
                message.AppendString("f:" + this.Session.GetHabbo().Look, 13);
                message.AppendString("l:" + this.X + " " + this.Y + " " + TextUtilies.DoubleWithDotDecimal(this.Z), 13);
                message.AppendString("c:" + this.Session.GetHabbo().Motto, 13);

                if (!string.IsNullOrEmpty(this.Swimsuit))
                {
                    message.AppendString("p:" + this.Swimsuit, 13);
                }
            }
        }
Пример #22
0
        public static void LoadConfigsFromDB(DatabaseClient dbClient)
        {
            Logging.Write("Loading server settings... ");

            DataRow settings = dbClient.ReadDataRow("SELECT * FROM server_settings");

            ServerConfiguration.EnableSecureSession = TextUtilies.StringToBool((string)settings["enable_secure_session"]);
            ServerConfiguration.EveryoneVIP         = TextUtilies.StringToBool((string)settings["everyone_vip"]);
            ServerConfiguration.MaxRoomsPerUser     = (int)settings["max_rooms_per_user"];
            ServerConfiguration.UseIPLastForBans    = TextUtilies.StringToBool((string)settings["ip_last_for_bans"]);
            ServerConfiguration.MOTD = (string)settings["motd"];
            ServerConfiguration.EnableMarketplace            = TextUtilies.StringToBool((string)settings["enable_marketplace"]);
            ServerConfiguration.MarketplaceMinPrice          = (int)settings["marketplace_min_price"];
            ServerConfiguration.MarketplaceMaxPrice          = (int)settings["marketplace_max_price"];
            ServerConfiguration.MarketplaceOffersActiveHours = (int)settings["marketplace_offers_active_hours"];
            ServerConfiguration.MarketplaceTokensNonPremium  = (int)settings["marketplace_tokens_non_premium"];
            ServerConfiguration.MarketplaceTokensPremium     = (int)settings["marketplace_tokens_premium"];
            ServerConfiguration.MarketplaceTokensPrice       = (int)settings["marketplace_tokens_price"];
            ServerConfiguration.MarketplaceCompremission     = (int)settings["marketplace_compremission"];
            ServerConfiguration.MarketplaceAvaragePriceDays  = (int)settings["marketplace_avarage_price_days"];
            ServerConfiguration.EventsEnabled                  = TextUtilies.StringToBool((string)settings["events_enabled"]);
            ServerConfiguration.EnableCrypto                   = TextUtilies.StringToBool((string)settings["enable_crypto"]);
            ServerConfiguration.RequireMachineID               = TextUtilies.StringToBool((string)settings["require_machine_id"]);
            ServerConfiguration.CryptoType                     = (int)settings["crypto_type"];
            ServerConfiguration.IdleTime                       = (int)settings["idle_time"];
            ServerConfiguration.IdleKickTime                   = (int)settings["idle_kick_time"];
            ServerConfiguration.ActivityBonusTime              = (int)settings["activity_bonus_time"];
            ServerConfiguration.CreditsBonus                   = (int)settings["credits_bonus"];
            ServerConfiguration.PixelsBonus                    = (int)settings["pixels_bonus"];
            ServerConfiguration.ActivityPointsBonusType        = (int)settings["activity_points_bonus_type"];
            ServerConfiguration.ActivityPointsBonus            = (int)settings["activity_points_bonus"];
            ServerConfiguration.AllowedComamndsToBeBlacklisted = ((string)settings["allowed_commands_to_be_blacklisted"]).ToLower().Split(',').ToList();
            ServerConfiguration.MinRankRequireLogin            = (int)settings["min_rank_require_login"];

            ServerConfiguration.BlacklistedEffects.Clear();
            foreach (string string_ in ((string)settings["blacklisted_effects"]).Split(';'))
            {
                string[] string_2 = string_.Split(',');
                if (string_2.Length == 2)
                {
                    ServerConfiguration.BlacklistedEffects.Add(int.Parse(string_2[0]), int.Parse(string_2[1]));
                }
            }

            ServerConfiguration.StaffPicksCategoryId = (int)settings["staff_picks_category_id"];

            Logging.WriteLine("completed!", ConsoleColor.Green);
        }
        public override string GetItemData()
        {
            string itemString = "";

            foreach (KeyValuePair <uint, MatchFurniData> data in this.MatchFurniData)
            {
                if (itemString.Length > 0)
                {
                    itemString += "|";
                }

                itemString += data.Key + "," + data.Value.ExtraData + "," + data.Value.Rot + "," + data.Value.X + "," + data.Value.Y + "," + TextUtilies.DoubleWithDotDecimal(data.Value.Z);
            }

            return(itemString + (char)9 + TextUtilies.BoolToString(this.FurniState) + (char)9 + TextUtilies.BoolToString(this.Direction) + (char)9 + TextUtilies.BoolToString(this.Position));
        }
Пример #24
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().GetRoomUser();
                if (roomUser != null)
                {
                    string motto = TextUtilies.FilterString(message.PopFixedString());
                    if (!TextUtilies.HaveBlacklistedWords(motto))
                    {
                        session.GetHabbo().Motto = motto;

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("motto", motto);

                            dbClient.ExecuteQuery("UPDATE users SET motto = @motto WHERE id = @userId LIMIT 1");
                            if (session.GetHabbo().GetUserSettings().FriendStream)
                            {
                                dbClient.ExecuteQuery("INSERT INTO user_friend_stream(type, user_id, timestamp, extra_data) VALUES('3', @userId, UNIX_TIMESTAMP(), @motto)");
                            }
                        }

                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.UpdateUser);
                        message_.AppendInt32(-1);
                        message_.AppendString(session.GetHabbo().Look);
                        message_.AppendString(session.GetHabbo().Gender.ToLower());
                        message_.AppendString(session.GetHabbo().Motto);
                        message_.AppendInt32(session.GetHabbo().GetUserStats().AchievementPoints);
                        session.SendMessage(message_);

                        ServerMessage message_2 = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_2.Init(r63aOutgoing.UpdateUser);
                        message_2.AppendInt32(roomUser.VirtualID);
                        message_2.AppendString(session.GetHabbo().Look);
                        message_2.AppendString(session.GetHabbo().Gender.ToLower());
                        message_2.AppendString(session.GetHabbo().Motto);
                        message_2.AppendInt32(session.GetHabbo().GetUserStats().AchievementPoints);
                        roomUser.Room.SendToAll(message_2);

                        Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeMotto", 1);
                    }
                }
            }
        }
Пример #25
0
        public ServerMessage Handle(T handler)
        {
            ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.PRODUCTION_201601012205_226667486, r63cOutgoing.ReceiveWhisper);

            message.AppendInt32(handler.SenderVirtualID);

            List <string> links = new List <string>();

            if (TextUtilies.ContainsLink(handler.Message))
            {
                string message_ = "";
                foreach (string word in handler.Message.Split(' '))
                {
                    if (TextUtilies.ValidURL(word))
                    {
                        links.Add(word);

                        message_ += " {" + (links.Count - 1) + "}";
                    }
                    else
                    {
                        message_ += " " + word;
                    }
                }

                message.AppendString(message_);
            }
            else
            {
                message.AppendString(handler.Message);
            }

            message.AppendInt32(RoomUnit.GetGesture(handler.Message));
            message.AppendInt32(handler.ChatColor);
            message.AppendInt32(links.Count);
            for (int i = 0; i < links.Count; i++)
            {
                string link = links[i];

                message.AppendString("/redirect.php?url=" + link); //link
                message.AppendString(link);                        //msg shown
                message.AppendBoolean(true);                       //trusted, can be clicked and opened, unused
            }
            message.AppendInt32(-1);
            return(message);
        }
Пример #26
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser;
                if (roomUser != null)
                {
                    string message_ = message.PopFixedString();
                    if (message_.Length > 300)
                    {
                        message_ = message_.Substring(0, 300);
                    }

                    roomUser.Speak(TextUtilies.FilterString(message_), true);
                }
            }
        }
Пример #27
0
        void IncomingPacket.Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser;
                if (roomUser != null)
                {
                    string message_ = message.PopFixedString();
                    if (message_.Length > 300)
                    {
                        message_ = message_.Substring(0, 300);
                    }

                    roomUser.Speak(TextUtilies.FilterString(message_), true, session.GetHabbo().GetUserSettings().ChatColor = message.PopWiredInt32());
                }
            }
        }
Пример #28
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser;
                if (roomUser != null)
                {
                    string message_ = message.PopFixedString();
                    if (message_.Length > 300)
                    {
                        message_ = message_.Substring(0, 300);
                    }

                    roomUser.Speak(TextUtilies.FilterString(message_), false);
                    roomUser.Room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.TypingStatus, new ValueHolder().AddValue("VirtualID", roomUser.VirtualID).AddValue("Typing", false)));
                }
            }
        }
Пример #29
0
        public override void LoadItemData(string data)
        {
            string[] splitData = data.Split((char)9);

            foreach (string sItemId in splitData[0].Split(','))
            {
                if (!string.IsNullOrEmpty(sItemId))
                {
                    RoomItem item = this.Room.RoomItemManager.TryGetRoomItem(uint.Parse(sItemId));
                    if (item != null)
                    {
                        this.SelectedItems.Add(item);
                    }
                }
            }

            this.AllFurnis = TextUtilies.StringToBool(splitData[1]);
        }
Пример #30
0
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 3)
            {
                if (session.GetHabbo().HasPermission("cmd_makesay"))
                {
                    GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]);
                    if (target != null)
                    {
                        target.GetHabbo().GetRoomSession().GetRoomUser().Speak(TextUtilies.MergeArrayToString(args, 2), false);

                        return(true);
                    }
                }
            }

            return(false);
        }