public override void Execute() { if (ply == null) { Console.WriteLine("Telling the queue to save."); } else { ply.SendMessage("Telling the queue to save."); } var queue = tileQueue.GetQueue(); var list = new List <TileEvent>(); lock (queue) { while (queue.Count > 0) { list.Add(queue.Dequeue()); } } if (list.Count > 0) { if (LogTile.enableDebugOutput) { Console.WriteLine("LogTile queue is saving to db..."); } var database = LogTile.DB; foreach (TileEvent evt in list) { String query = "INSERT INTO LogTile (X, Y, IP, Name, Action, TileType, Date) VALUES (@0, @1, @2, @3, @4, @5, @6);"; //reverse method for later String ipAddress = new IPAddress(BitConverter.GetBytes(intAddress)).ToString(); int intAddress = BitConverter.ToInt32(IPAddress.Parse(evt.GetIP()).GetAddressBytes(), 0); if (database.Query(query, evt.GetX(), evt.GetY(), intAddress, evt.GetName(), evt.GetAction(), evt.GetTileType(), evt.GetDate()) != 1) { Console.WriteLine("Error, failure to save edit.\n" + evt); } } if (LogTile.enableDebugOutput) { Console.WriteLine("LogTile has written " + list.Count + " edits to the database."); } } else { if (LogTile.enableDebugOutput) { Console.WriteLine("Queue is empty."); } } if (ply == null) { Console.WriteLine("Queue finished saving.."); } else { ply.SendMessage("Queue finished saving.."); } }