示例#1
0
        public void AddOrExtend(int Level, double ExtensionTime)
        {
            using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
            {
                if (!IsActive)
                {
                    mTimestampCreated = UnixTimestamp.GetCurrent();
                    mTimestampExpire  = UnixTimestamp.GetCurrent();
                }

                mTimestampExpire += ExtensionTime;
                mBaseLevel        = (ClubSubscriptionLevel)Level;

                MySqlClient.SetParameter("userid", mUserId);
                bool CreateNewRecord = (MySqlClient.ExecuteScalar("SELECT null FROM user_subscriptions WHERE user_id = @userid LIMIT 1") == null);

                MySqlClient.SetParameter("userid", mUserId);
                MySqlClient.SetParameter("expirestamp", mTimestampExpire);
                MySqlClient.SetParameter("level", ((int)mBaseLevel).ToString());

                if (CreateNewRecord)
                {
                    MySqlClient.SetParameter("createstamp", UnixTimestamp.GetCurrent());
                    MySqlClient.ExecuteNonQuery("INSERT INTO user_subscriptions (user_id,subscription_level,timestamp_created,timestamp_expire) VALUES (@userid,@level,@createstamp,@expirestamp)");
                }
                else
                {
                    MySqlClient.ExecuteNonQuery("UPDATE user_subscriptions SET subscription_level = @level, timestamp_expire = @expirestamp WHERE user_id = @userid LIMIT 1");
                }
            }
        }
示例#2
0
 public RoomModel(string Id, RoomModelType Type, Heightmap Heightmap, Vector3 DoorPosition, int DoorRotation,
                  ClubSubscriptionLevel SubscriptionRequirement, int MaxUsers)
 {
     mId                      = Id;
     mType                    = Type;
     mHeightmap               = Heightmap;
     mDoorPosition            = DoorPosition;
     mDoorRotation            = DoorRotation;
     mSubscriptionRequirement = SubscriptionRequirement;
     mMaxUsers                = MaxUsers;
 }
示例#3
0
        public bool HasRight(string Right)
        {
            ClubSubscriptionLevel level = ClubSubscriptionLevel.None;

            if (mSubscriptionManager != null)
            {
                level = mSubscriptionManager.SubscriptionLevel;
            }

            return(RightsManager.GetRightsForRank(mCharacterInfo.Rank, level, mCharacterInfo.IsPremium).Contains(Right));
        }
示例#4
0
 public RoomModel(string Id, RoomModelType Type, Heightmap Heightmap, Vector3 DoorPosition, int DoorRotation,
     ClubSubscriptionLevel SubscriptionRequirement, int MaxUsers)
 {
     mId = Id;
     mType = Type;
     mHeightmap = Heightmap;
     mDoorPosition = DoorPosition;
     mDoorRotation = DoorRotation;
     mSubscriptionRequirement = SubscriptionRequirement;
     mMaxUsers = MaxUsers;
 }
示例#5
0
        public void Expire()
        {
            mHcTime           = PastHcTime;
            mVipTime          = PastVipTime;
            mBaseLevel        = ClubSubscriptionLevel.None;
            mTimestampCreated = 0;
            mTimestampExpire  = 0;

            using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
            {
                MySqlClient.SetParameter("userid", mUserId);
                MySqlClient.SetParameter("hctime", mHcTime);
                MySqlClient.SetParameter("viptime", mVipTime);
                MySqlClient.ExecuteNonQuery("UPDATE user_subscriptions SET subscription_level = '0', timestamp_created = 0, timestamp_expire = 0 WHERE user_id = @userid LIMIT 1");
            }
        }
示例#6
0
        public static List<string> GetRightsForRank(uint Rank, ClubSubscriptionLevel level, bool IsPremium)
        {
            List<string> Rights = new List<string>();

            if (level == ClubSubscriptionLevel.BasicClub)
            {
                Rights.Add("club_regular");
            }

            if (level == ClubSubscriptionLevel.VipClub)
            {
                Rights.Add("club_vip");
            }

            if (IsPremium)
            {
                Rights.Add("club_premium");
            }

            foreach (String Right in mRightSets[0])
            {
                if (Rights.Contains(Right))
                {
                    continue;
                }
                Rights.Add(Right);
            }

            foreach (uint set in mRights[Rank])
            {
                if (mRightSets.ContainsKey(set))
                {
                    foreach (string Right in mRightSets[set])
                    {
                        if (Rights.Contains(Right))
                        {
                            continue;
                        }

                        Rights.Add(Right);
                    }
                }
            }

            return Rights;
        }
示例#7
0
        public static List <string> GetRightsForRank(uint Rank, ClubSubscriptionLevel level, bool IsPremium)
        {
            List <string> Rights = new List <string>();

            if (level == ClubSubscriptionLevel.BasicClub)
            {
                Rights.Add("club_regular");
            }

            if (level == ClubSubscriptionLevel.VipClub)
            {
                Rights.Add("club_vip");
            }

            if (IsPremium)
            {
                Rights.Add("club_premium");
            }

            foreach (String Right in mRightSets[0])
            {
                if (Rights.Contains(Right))
                {
                    continue;
                }
                Rights.Add(Right);
            }

            foreach (uint set in mRights[Rank])
            {
                if (mRightSets.ContainsKey(set))
                {
                    foreach (string Right in mRightSets[set])
                    {
                        if (Rights.Contains(Right))
                        {
                            continue;
                        }

                        Rights.Add(Right);
                    }
                }
            }

            return(Rights);
        }
示例#8
0
        public ClubSubscription(uint UserId, ClubSubscriptionLevel BaseLevel, double TimestampCreated, double TimestampExpired,
            double HcTime, double VipTime)
        {
            mUserId = UserId;
            mBaseLevel = BaseLevel;
            mTimestampCreated = TimestampCreated;
            mTimestampExpire = TimestampExpired;
            mHcTime = HcTime;
            mVipTime = VipTime;

            if (!IsActive)
            {
                if (mBaseLevel != ClubSubscriptionLevel.None)
                {
                    Expire();
                }
            }
        }
示例#9
0
        public ClubSubscription(uint UserId, ClubSubscriptionLevel BaseLevel, double TimestampCreated, double TimestampExpired,
                                double HcTime, double VipTime)
        {
            mUserId           = UserId;
            mBaseLevel        = BaseLevel;
            mTimestampCreated = TimestampCreated;
            mTimestampExpire  = TimestampExpired;
            mHcTime           = HcTime;
            mVipTime          = VipTime;

            if (!IsActive)
            {
                if (mBaseLevel != ClubSubscriptionLevel.None)
                {
                    Expire();
                }
            }
        }
示例#10
0
        public void Expire()
        {
            mHcTime = PastHcTime;
            mVipTime = PastVipTime;
            mBaseLevel = ClubSubscriptionLevel.None;
            mTimestampCreated = 0;
            mTimestampExpire = 0;

            using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
            {
                MySqlClient.SetParameter("userid", mUserId);
                MySqlClient.SetParameter("hctime", mHcTime);
                MySqlClient.SetParameter("viptime", mVipTime);
                MySqlClient.ExecuteNonQuery("UPDATE user_subscriptions SET subscription_level = '0', timestamp_created = 0, timestamp_expire = 0 WHERE user_id = @userid LIMIT 1");
            }
        }
示例#11
0
        public void AddOrExtend(int Level, double ExtensionTime)
        {
            using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
            {
                if (!IsActive)
                {
                    mTimestampCreated = UnixTimestamp.GetCurrent();
                    mTimestampExpire = UnixTimestamp.GetCurrent();
                }

                mTimestampExpire += ExtensionTime;
                mBaseLevel = (ClubSubscriptionLevel)Level;

                MySqlClient.SetParameter("userid", mUserId);
                bool CreateNewRecord = (MySqlClient.ExecuteScalar("SELECT null FROM user_subscriptions WHERE user_id = @userid LIMIT 1") == null);

                MySqlClient.SetParameter("userid", mUserId);
                MySqlClient.SetParameter("expirestamp", mTimestampExpire);
                MySqlClient.SetParameter("level", ((int)mBaseLevel).ToString());

                if (CreateNewRecord)
                {
                    MySqlClient.SetParameter("createstamp", UnixTimestamp.GetCurrent());
                    MySqlClient.ExecuteNonQuery("INSERT INTO user_subscriptions (user_id,subscription_level,timestamp_created,timestamp_expire) VALUES (@userid,@level,@createstamp,@expirestamp)");
                }
                else
                {
                    MySqlClient.ExecuteNonQuery("UPDATE user_subscriptions SET subscription_level = @level, timestamp_expire = @expirestamp WHERE user_id = @userid LIMIT 1");
                }
            }
        }