internal void method_19(DatabaseClient class6_0, bool bool_0)
 {
     try
     {
         if (this.list_1.Count > 0 || this.hashtable_1.Count > 0 || this.hashtable_0.Count > 0)
         {
             StringBuilder stringBuilder = new StringBuilder();
             foreach (Pet @class in this.hashtable_0.Values)
             {
                 if (@class.DBState == DatabaseUpdateState.NeedsInsert)
                 {
                     class6_0.AddParamWithValue("petname" + @class.PetId, @class.Name);
                     class6_0.AddParamWithValue("petcolor" + @class.PetId, @class.Color);
                     class6_0.AddParamWithValue("petrace" + @class.PetId, @class.Race);
                     stringBuilder.Append(string.Concat(new object[]
                     {
                         "INSERT INTO `user_pets` VALUES ('",
                         @class.PetId,
                         "', '",
                         @class.OwnerId,
                         "', '",
                         @class.RoomId,
                         "', @petname",
                         @class.PetId,
                         ", @petrace",
                         @class.PetId,
                         ", @petcolor",
                         @class.PetId,
                         ", '",
                         @class.Type,
                         "', '",
                         @class.Expirience,
                         "', '",
                         @class.Energy,
                         "', '",
                         @class.Nutrition,
                         "', '",
                         @class.Respect,
                         "', '",
                         @class.CreationStamp,
                         "', '",
                         @class.X,
                         "', '",
                         @class.Y,
                         "', '",
                         @class.Z,
                         "');"
                     }));
                 }
                 else
                 {
                     if (@class.DBState == DatabaseUpdateState.NeedsUpdate)
                     {
                         stringBuilder.Append(string.Concat(new object[]
                         {
                             "UPDATE user_pets SET room_id = '",
                             @class.RoomId,
                             "', expirience = '",
                             @class.Expirience,
                             "', energy = '",
                             @class.Energy,
                             "', nutrition = '",
                             @class.Nutrition,
                             "', respect = '",
                             @class.Respect,
                             "', x = '",
                             @class.X,
                             "', y = '",
                             @class.Y,
                             "', z = '",
                             @class.Z,
                             "' WHERE Id = '",
                             @class.PetId,
                             "' LIMIT 1; "
                         }));
                     }
                 }
                 @class.DBState = DatabaseUpdateState.Updated;
             }
             if (stringBuilder.Length > 0)
             {
                 class6_0.ExecuteQuery(stringBuilder.ToString());
             }
         }
         if (bool_0)
         {
             Console.WriteLine("Inventory for user: "******" saved.");
         }
     }
     catch (Exception ex)
     {
         Logging.LogCacheError("FATAL ERROR DURING DB UPDATE: " + ex.ToString());
     }
 }
示例#2
0
 internal void method_1(DatabaseClient class6_0)
 {
     this.list_6.Clear();
     class6_0.AddParamWithValue("name", this.Username);
     DataTable dataTable = class6_0.ReadDataTable("SELECT * FROM rooms WHERE owner = @name ORDER BY Id ASC");
     foreach (DataRow dataRow in dataTable.Rows)
     {
         this.list_6.Add(GoldTree.GetGame().GetRoomManager().method_17((uint)dataRow["Id"], dataRow));
     }
 }
示例#3
0
        internal void method_65(DatabaseClient class6_0)
        {
            try
            {
                Dictionary<uint, bool> dictionary = new Dictionary<uint, bool>();
                StringBuilder stringBuilder = new StringBuilder();
                if (this.list_14.Count > 0)
                {
                    foreach (RoomItem @class in this.list_14)
                    {

                        try
                        {
                            if (!dictionary.ContainsKey(@class.uint_0))
                            {

                                class6_0.AddParamWithValue(@class.uint_0 + "Extra1", @class.string_2);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra2", @class.string_3);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra3", @class.string_4);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra4", @class.string_5);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra5", @class.string_6);
                                stringBuilder.Append(string.Concat(new object[]
                                        {
                                            "DELETE FROM wired_items WHERE item_id = '",
                                            @class.uint_0,
                                            "' LIMIT 1; INSERT INTO wired_items (item_id,extra1,extra2,extra3,extra4,extra5) VALUES ('",
                                            @class.uint_0,
                                            "',@",
                                            @class.uint_0,
                                            "Extra1,@",
                                            @class.uint_0,
                                            "Extra2,@",
                                            @class.uint_0,
                                            "Extra3,@",
                                            @class.uint_0,
                                            "Extra4,@",
                                            @class.uint_0,
                                            "Extra5); "
                                        }));
                            }
                            dictionary.Add(@class.uint_0, true);

                        }
                        catch
                        {
                        }
                    }

                }
                if (this.list_15.Count > 0)
                {
                    foreach (RoomItem @class in this.list_15)
                    {

                        try
                        {
                            if (!dictionary.ContainsKey(@class.uint_0))
                            {

                                class6_0.AddParamWithValue(@class.uint_0 + "Extra1", @class.string_2);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra2", @class.string_3);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra3", @class.string_4);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra4", @class.string_5);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra5", @class.string_6);
                                stringBuilder.Append(string.Concat(new object[]
                                        {
                                            "DELETE FROM wired_items WHERE item_id = '",
                                            @class.uint_0,
                                            "' LIMIT 1; INSERT INTO wired_items (item_id,extra1,extra2,extra3,extra4,extra5) VALUES ('",
                                            @class.uint_0,
                                            "',@",
                                            @class.uint_0,
                                            "Extra1,@",
                                            @class.uint_0,
                                            "Extra2,@",
                                            @class.uint_0,
                                            "Extra3,@",
                                            @class.uint_0,
                                            "Extra4,@",
                                            @class.uint_0,
                                            "Extra5); "
                                        }));
                            }
                            dictionary.Add(@class.uint_0, true);

                        }
                        catch
                        {
                        }

                    }
                }
                if (this.list_16.Count > 0)
                {
                    foreach (RoomItem @class in this.list_16)
                    {

                        try
                        {
                            if (!dictionary.ContainsKey(@class.uint_0))
                            {

                                class6_0.AddParamWithValue(@class.uint_0 + "Extra1", @class.string_2);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra2", @class.string_3);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra3", @class.string_4);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra4", @class.string_5);
                                class6_0.AddParamWithValue(@class.uint_0 + "Extra5", @class.string_6);
                                stringBuilder.Append(string.Concat(new object[]
                                        {
                                            "DELETE FROM wired_items WHERE item_id = '",
                                            @class.uint_0,
                                            "' LIMIT 1; INSERT INTO wired_items (item_id,extra1,extra2,extra3,extra4,extra5) VALUES ('",
                                            @class.uint_0,
                                            "',@",
                                            @class.uint_0,
                                            "Extra1,@",
                                            @class.uint_0,
                                            "Extra2,@",
                                            @class.uint_0,
                                            "Extra3,@",
                                            @class.uint_0,
                                            "Extra4,@",
                                            @class.uint_0,
                                            "Extra5); "
                                        }));
                            }
                            dictionary.Add(@class.uint_0, true);
                        }

                        catch
                        {
                        }
                    }

                }
                dictionary.Clear();
                if (this.hashtable_3.Count > 0 || this.hashtable_1.Count > 0 || this.hashtable_2.Count > 0 || this.Boolean_4)
                {
                    foreach (RoomItem @class in this.hashtable_1.Values)
                    {
                        stringBuilder.Append(string.Concat(new object[]
                        {
                            "UPDATE items SET room_id = 0 WHERE Id = '",
                            @class.uint_0,
                            "' AND room_id = '",
                            this.Id,
                            "' LIMIT 1; "
                        }));
                    }
                    this.hashtable_1.Clear();
                    IEnumerator enumerator2;
                    if (this.hashtable_3.Count > 0)
                    {
                        enumerator2 = this.hashtable_3.Values.GetEnumerator();
                        try
                        {
                            while (enumerator2.MoveNext())
                            {
                                RoomItem @class = (RoomItem)enumerator2.Current;
                                stringBuilder.Append("UPDATE items SET room_id = 0 WHERE Id = '" + @class.uint_0 + "' LIMIT 1; ");
                            }
                        }
                        finally
                        {
                            IDisposable disposable = enumerator2 as IDisposable;
                            if (disposable != null)
                            {
                                disposable.Dispose();
                            }
                        }
                        int num = 0;
                        int num2 = 0;
                        enumerator2 = this.hashtable_3.Values.GetEnumerator();
                        try
                        {
                            while (enumerator2.MoveNext())
                            {
                                RoomItem @class = (RoomItem)enumerator2.Current;
                                if (@class.Boolean_2)
                                {
                                    num2++;
                                }
                                else
                                {
                                    num++;
                                }
                            }
                        }
                        finally
                        {
                            IDisposable disposable = enumerator2 as IDisposable;
                            if (disposable != null)
                            {
                                disposable.Dispose();
                            }
                        }
                        if (num2 > 0)
                        {
                            enumerator2 = this.hashtable_3.Values.GetEnumerator();
                            try
                            {
                                while (enumerator2.MoveNext())
                                {
                                    RoomItem @class = (RoomItem)enumerator2.Current;
                                    if (@class.Boolean_2)
                                    {
                                        class6_0.AddParamWithValue("extra_data" + @class.uint_0, @class.ExtraData);
                                        stringBuilder.Append(string.Concat(new object[]
                                        {
                                            "UPDATE items SET room_id = '",
                                            this.Id,
                                            "', base_item = '",
                                            @class.uint_2,
                                            "', extra_data = @extra_data",
                                            @class.uint_0,
                                            ", x = '",
                                            @class.Int32_0,
                                            "', y = '",
                                            @class.Int32_1,
                                            "', z = '",
                                            @class.Double_0.ToString().Replace(",", "."),
                                            "', rot = '",
                                            @class.int_3,
                                            "', wall_pos = '' WHERE Id = '",
                                            @class.uint_0,
                                            "' LIMIT 1; "
                                        }));
                                    }
                                }
                            }
                            finally
                            {
                                IDisposable disposable = enumerator2 as IDisposable;
                                if (disposable != null)
                                {
                                    disposable.Dispose();
                                }
                            }
                        }
                        if (num > 0)
                        {
                            enumerator2 = this.hashtable_3.Values.GetEnumerator();
                            try
                            {
                                while (enumerator2.MoveNext())
                                {
                                    RoomItem @class = (RoomItem)enumerator2.Current;
                                    if (@class.Boolean_1)
                                    {
                                        class6_0.AddParamWithValue("extra_data" + @class.uint_0, @class.ExtraData);
                                        class6_0.AddParamWithValue("pos" + @class.uint_0, @class.string_7);
                                        stringBuilder.Append(string.Concat(new object[]
                                        {
                                            "UPDATE items SET room_id = '",
                                            this.Id,
                                            "', base_item = '",
                                            @class.uint_2,
                                            "', extra_data = @extra_data",
                                            @class.uint_0,
                                            ", x = '0', y = '0', z = '0', rot = '0', wall_pos = @pos",
                                            @class.uint_0,
                                            " WHERE Id = '",
                                            @class.uint_0,
                                            "' LIMIT 1; "
                                        }));
                                    }
                                }
                            }
                            finally
                            {
                                IDisposable disposable = enumerator2 as IDisposable;
                                if (disposable != null)
                                {
                                    disposable.Dispose();
                                }
                            }
                        }
                        this.hashtable_3.Clear();
                    }
                    enumerator2 = this.hashtable_2.Values.GetEnumerator();
                    try
                    {
                        while (enumerator2.MoveNext())
                        {
                            RoomItem @class = (RoomItem)enumerator2.Current;
                            stringBuilder.Append(string.Concat(new object[]
                            {
                                "UPDATE items SET x = '",
                                @class.Int32_0,
                                "', y = '",
                                @class.Int32_1,
                                "', z = '",
                                @class.Double_0.ToString().Replace(",", "."),
                                "', rot = '",
                                @class.int_3,
                                "', wall_pos = '' WHERE Id = '",
                                @class.uint_0,
                                "' LIMIT 1; "
                            }));
                        }
                    }
                    finally
                    {
                        IDisposable disposable = enumerator2 as IDisposable;
                        if (disposable != null)
                        {
                            disposable.Dispose();
                        }
                    }
                    this.hashtable_2.Clear();
                    foreach (Pet current in this.method_2())
                    {
                        if (current.DBState == DatabaseUpdateState.NeedsInsert)
                        {
                            class6_0.AddParamWithValue("petname" + current.PetId, current.Name);
                            class6_0.AddParamWithValue("petcolor" + current.PetId, current.Color);
                            class6_0.AddParamWithValue("petrace" + current.PetId, current.Race);
                            stringBuilder.Append(string.Concat(new object[]
                            {
                                "INSERT INTO `user_pets` VALUES ('",
                                current.PetId,
                                "', '",
                                current.OwnerId,
                                "', '",
                                current.RoomId,
                                "', @petname",
                                current.PetId,
                                ", @petrace",
                                current.PetId,
                                ", @petcolor",
                                current.PetId,
                                ", '",
                                current.Type,
                                "', '",
                                current.Expirience,
                                "', '",
                                current.Energy,
                                "', '",
                                current.Nutrition,
                                "', '",
                                current.Respect,
                                "', '",
                                current.CreationStamp,
                                "', '",
                                current.X,
                                "', '",
                                current.Y,
                                "', '",
                                current.Z,
                                "');"
                            }));
                        }
                        else
                        {
                            if (current.DBState == DatabaseUpdateState.NeedsUpdate)
                            {
                                stringBuilder.Append(string.Concat(new object[]
                                {
                                    "UPDATE user_pets SET room_id = '",
                                    current.RoomId,
                                    "', expirience = '",
                                    current.Expirience,
                                    "', energy = '",
                                    current.Energy,
                                    "', nutrition = '",
                                    current.Nutrition,
                                    "', respect = '",
                                    current.Respect,
                                    "', x = '",
                                    current.X,
                                    "', y = '",
                                    current.Y,
                                    "', z = '",
                                    current.Z,
                                    "' WHERE Id = '",
                                    current.PetId,
                                    "' LIMIT 1; "
                                }));
                            }
                        }
                        current.DBState = DatabaseUpdateState.Updated;
                    }
                }
                if (stringBuilder.Length > 0)
                {
                    class6_0.ExecuteQuery(stringBuilder.ToString());
                }
            }
            catch (Exception ex)
            {
                Logging.LogCriticalException(string.Concat(new object[]
                {
                    "Error during saving furniture for room ",
                    this.Id,
                    ". Stack: ",
                    ex.ToString()
                }));
            }
        }