@@ -283,7 +283,8 @@ File generateData(MinecraftVersion version) {
283283 }
284284
285285 File jarFile = this . getServerJar(version. getVersionName())
286- File targetDir = new File (jarFile. getParentFile(), " generated" )
286+ File parent = jarFile. getParentFile()
287+ File targetDir = new File (parent, " generated" )
287288
288289 try {
289290 FileUtils . deleteDirectory(targetDir)
@@ -306,7 +307,36 @@ File generateData(MinecraftVersion version) {
306307 File java = new File (System . getProperty(" java.home" ), " bin/java" )
307308 commandLine = [" bash" , " -c" , String . format(command, java)]
308309 }
309- commandLine. execute([], jarFile. getParentFile()). waitFor()
310+ commandLine. execute([], parent). waitFor()
311+
312+ // Remove/compact files, reduces disk usage from ~2.9gb to ~92mb (or ~9.5mb on a compressed filesystem)
313+ jarFile. delete()
314+ FileUtils . deleteDirectory(new File (parent, " logs" ))
315+ FileUtils . deleteDirectory(new File (parent, " libraries" ))
316+ FileUtils . deleteDirectory(new File (parent, " versions" ))
317+
318+ new File (targetDir, " reports/commands.json" ). delete()
319+
320+ FileUtils . deleteDirectory(new File (targetDir, " .cache" ))
321+ FileUtils . deleteDirectory(new File (targetDir, " reports/biome_parameters" ))
322+ FileUtils . deleteDirectory(new File (targetDir, " reports/biomes" ))
323+ FileUtils . deleteDirectory(new File (targetDir, " reports/worldgen" ))
324+ FileUtils . deleteDirectory(new File (targetDir, " reports/minecraft/components/item" ))
325+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/datapacks" ))
326+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/advancements" ))
327+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/advancement" ))
328+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/recipes" ))
329+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/recipe" ))
330+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/loot_tables" ))
331+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/loot_table" ))
332+ FileUtils . deleteDirectory(new File (targetDir, " data/minecraft/worldgen" ))
333+
334+ java.nio.file.Files . walk(parent. toPath(), 32 ). forEach { it ->
335+ if (it. fileName. toString(). endsWith(" .json" )) {
336+ java.nio.file.Files . writeString(it, JsonOutput . toJson(new JsonSlurper (). parse(it)))
337+ }
338+ }
339+
310340 return targetDir
311341}
312342
0 commit comments