From 7402ad6be09e02043453292382218e2c9c3da4f6 Mon Sep 17 00:00:00 2001 From: cola98765 Date: Fri, 29 Oct 2021 13:21:00 +0200 Subject: [PATCH] added getHashFromFile for future use with servers --- .../lod/handlers/LodDimensionFileHandler.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java b/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java index cc516d922..3da1b286c 100644 --- a/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java +++ b/src/main/java/com/seibel/lod/handlers/LodDimensionFileHandler.java @@ -19,12 +19,11 @@ package com.seibel.lod.handlers; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; +import java.io.*; import java.nio.file.Files; +import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.security.MessageDigest; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -236,9 +235,7 @@ public class LodDimensionFileHandler // Save to File // //==============// - /** - * Save all dirty regions in this LodDimension to file. - */ + /** Save all dirty regions in this LodDimension to file */ public void saveDirtyRegionsToFileAsync() { fileWritingThreadPool.execute(saveDirtyRegionsThread); @@ -376,6 +373,22 @@ public class LodDimensionFileHandler // helper methods // //================// + public byte[] getHashFromFile(byte detailLevel, RegionPos regionPos, DistanceGenerationMode generationMode, VerticalQuality verticalQuality) + { + int regionX = regionPos.x; + int regionZ = regionPos.z; + String fileName = getFileNameAndPathForRegion(regionX, regionZ, generationMode, detailLevel, verticalQuality); + try (InputStream is = Files.newInputStream(Paths.get(fileName))) { + return org.apache.commons.codec.digest.DigestUtils.md5(is); + } + catch (IOException ioEx) + { + ClientProxy.LOGGER.error("LOD file read error. Unable to read to [" + fileName + "] error [" + ioEx.getMessage() + "]: "); + ioEx.printStackTrace(); + } + return new byte[0]; + } + /** * Return the name of the file that should contain the