示例#1
0
        public static bool SaveAsDatabaseSQL()
        {
            bool result;

            if (!Core.DatabaseType.Equals("MYSQL"))
            {
                result = false;
            }
            else
            {
                using (Dictionary <uint, ClanData> .ValueCollection.Enumerator enumerator = Clans.Database.Values.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        ClanData current = enumerator.Current;
                        Clans.SQL_Update(current, true);
                    }
                    goto IL_68;
                }
IL_5A:
                LibRust.Cycle();
                Thread.Sleep(100);
IL_68:
                if (MySQL.Queued)
                {
                    goto IL_5A;
                }
                result = true;
            }
            return(result);
        }
示例#2
0
        public static ClanData Create(string name, ulong leader_id, DateTime created)
        {
            ClanData clanData = new ClanData(Helper.NewSerial, name, "", leader_id, created);
            ClanData result;

            if (clanData == null)
            {
                result = null;
            }
            else
            {
                Clans.Database.Add(clanData.ID, clanData);
                if (Core.DatabaseType.Equals("MYSQL"))
                {
                    Clans.SQL_Update(clanData, false);
                }
                result = clanData;
            }
            return(result);
        }
示例#3
0
 public static void SQL_SynchronizeClans()
 {
     if (Core.DatabaseType.Equals("MYSQL"))
     {
         MySQL.Result result = MySQL.Query("SELECT * FROM `db_clans`;", true);
         if (result != null)
         {
             using (List <MySQL.Row> .Enumerator enumerator = result.Row.GetEnumerator())
             {
                 while (enumerator.MoveNext())
                 {
                     Predicate <ClanLevel> predicate = null;
                     Clans.Class3          @class    = new Clans.Class3();
                     @class.row_0 = enumerator.Current;
                     uint     asUInt = @class.row_0.Get("id").AsUInt;
                     ClanData clanData;
                     if (Clans.Database.ContainsKey(asUInt))
                     {
                         clanData = Clans.Get(asUInt);
                     }
                     else
                     {
                         Clans.Database.Add(asUInt, clanData = new ClanData(asUInt, null, null, 0uL, default(DateTime)));
                     }
                     if (!Clans.dictionary_0.ContainsKey(asUInt))
                     {
                         Clans.dictionary_0.Add(asUInt, 0uL);
                     }
                     if (Clans.Database[clanData.ID].Hash == Clans.dictionary_0[clanData.ID])
                     {
                         clanData.Name     = @class.row_0.Get("name").AsString;
                         clanData.Abbr     = @class.row_0.Get("abbrev").AsString;
                         clanData.LeaderID = @class.row_0.Get("leader_id").AsUInt64;
                         clanData.Created  = @class.row_0.Get("created").AsDateTime;
                         clanData.Flags    = @class.row_0.Get("flags").AsEnum <ClanFlags>();
                         clanData.Balance  = @class.row_0.Get("balance").AsUInt64;
                         clanData.Tax      = @class.row_0.Get("tax").AsUInt;
                         ClanData         clanData2 = clanData;
                         List <ClanLevel> levels    = Clans.Levels;
                         if (predicate == null)
                         {
                             predicate = new Predicate <ClanLevel>(@class.method_0);
                         }
                         clanData2.SetLevel(levels.Find(predicate));
                         clanData.Experience = @class.row_0.Get("experience").AsUInt64;
                         string[] array = @class.row_0.Get("location").AsString.Replace(", ", ",").Split(new char[]
                         {
                             ','
                         });
                         if (array.Length > 0)
                         {
                             float.TryParse(array[0].Trim(), out clanData.Location.x);
                         }
                         if (array.Length > 1)
                         {
                             float.TryParse(array[1].Trim(), out clanData.Location.y);
                         }
                         if (array.Length > 2)
                         {
                             float.TryParse(array[2].Trim(), out clanData.Location.z);
                         }
                         clanData.MOTD    = @class.row_0.Get("motd").AsString;
                         clanData.Penalty = @class.row_0.Get("penalty").AsDateTime;
                     }
                     else
                     {
                         Clans.SQL_Update(clanData, false);
                     }
                     Clans.dictionary_0[asUInt] = Clans.Database[asUInt].Hash;
                 }
             }
         }
     }
 }