Skip to content

Commit b3b5c8e

Browse files
committed
Configuration backup support added.
Signed-off-by: Pavel Erokhin (MairwunNx) <MairwunNx@gmail.com>
1 parent c2047b4 commit b3b5c8e

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

src/main/kotlin/com/mairwunnx/projectessentials/backup/managers/BackupManager.kt

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,20 @@ import com.mairwunnx.projectessentials.core.api.v1.extensions.empty
77
import com.mairwunnx.projectessentials.core.api.v1.messaging.MessagingAPI
88
import com.mairwunnx.projectessentials.core.api.v1.permissions.hasPermission
99
import kotlinx.coroutines.*
10+
import net.lingala.zip4j.ZipFile
11+
import net.lingala.zip4j.model.ZipParameters
12+
import net.lingala.zip4j.model.enums.CompressionLevel
1013
import net.minecraftforge.api.distmarker.Dist
1114
import net.minecraftforge.fml.DistExecutor
1215
import net.minecraftforge.fml.server.ServerLifecycleHooks.getCurrentServer
1316
import org.apache.logging.log4j.LogManager
1417
import org.apache.logging.log4j.MarkerManager
15-
import org.zeroturnaround.zip.ZipUtil
1618
import java.io.File
1719
import java.text.SimpleDateFormat
1820
import java.util.*
1921
import kotlin.system.measureTimeMillis
2022

23+
2124
object BackupManager {
2225
private val logger = LogManager.getLogger()
2326
private val marker = MarkerManager.getMarker("BACKUP")
@@ -102,9 +105,20 @@ object BackupManager {
102105
val path = outPath(file).also { path -> logger.debug("Saving backup to $path") }
103106
val inPath = inPath()
104107
measureTimeMillis {
105-
ZipUtil.pack(
106-
File(inPath), File(path), backupConfiguration.backupCompressionLevel
107-
)
108+
ZipFile(path).addFolder(File(inPath), ZipParameters().apply {
109+
compressionLevel = CompressionLevel.values().find { lvl ->
110+
lvl.level == backupConfiguration.backupCompressionLevel
111+
}
112+
isIncludeRootFolder = true
113+
})
114+
if (backupConfiguration.backupConfigurations) {
115+
ZipFile(path).addFolder(File("config"), ZipParameters().apply {
116+
compressionLevel = CompressionLevel.values().find { lvl ->
117+
lvl.level == backupConfiguration.backupCompressionLevel
118+
}
119+
isIncludeRootFolder = true
120+
})
121+
}
108122
}.also { time -> logger.debug("Backup saved to $path for ${time / 1000} seconds") }
109123
notifyPlayer()
110124
}

0 commit comments

Comments
 (0)