From 31f228f72589f9649813c8a80b8bb0df83bb378f Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Tue, 13 Feb 2024 01:56:04 +1000 Subject: [PATCH] Woops --- .../client/terrain/WorldImportCommand.java | 20 ++++++++++++++++++- .../common/storage/config/Serialization.java | 3 +++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/cortex/voxy/client/terrain/WorldImportCommand.java b/src/main/java/me/cortex/voxy/client/terrain/WorldImportCommand.java index f562037e..d8094ef8 100644 --- a/src/main/java/me/cortex/voxy/client/terrain/WorldImportCommand.java +++ b/src/main/java/me/cortex/voxy/client/terrain/WorldImportCommand.java @@ -17,11 +17,29 @@ public class WorldImportCommand { return ClientCommandManager.literal("voxy").then( ClientCommandManager.literal("import") .then(ClientCommandManager.literal("world") - .then(ClientCommandManager.argument("world_name", StringArgumentType.string()).executes(WorldImportCommand::importWorld)))); + .then(ClientCommandManager.argument("world_name", StringArgumentType.string()).executes(WorldImportCommand::importWorld))) + .then(ClientCommandManager.literal("bobby") + .then(ClientCommandManager.argument("world_name", StringArgumentType.string()).executes(WorldImportCommand::importBobby))) + .then(ClientCommandManager.literal("raw") + .then(ClientCommandManager.argument("path", StringArgumentType.string()).executes(WorldImportCommand::importRaw)))); } public static WorldImporter importerInstance; + private static int importRaw(CommandContext ctx) { + var instance = MinecraftClient.getInstance(); + var file = new File(ctx.getArgument("path", String.class)); + importerInstance = ((IGetVoxelCore)instance.worldRenderer).getVoxelCore().createWorldImporter(MinecraftClient.getInstance().player.clientWorld, file); + return 0; + } + + private static int importBobby(CommandContext ctx) { + var instance = MinecraftClient.getInstance(); + var file = new File(".bobby").toPath().resolve(ctx.getArgument("world_name", String.class)).toFile(); + importerInstance = ((IGetVoxelCore)instance.worldRenderer).getVoxelCore().createWorldImporter(MinecraftClient.getInstance().player.clientWorld, file); + return 0; + } + private static int importWorld(CommandContext ctx) { var instance = MinecraftClient.getInstance(); var file = new File("saves").toPath().resolve(ctx.getArgument("world_name", String.class)).resolve("region").toFile(); diff --git a/src/main/java/me/cortex/voxy/common/storage/config/Serialization.java b/src/main/java/me/cortex/voxy/common/storage/config/Serialization.java index 110a3af9..49611369 100644 --- a/src/main/java/me/cortex/voxy/common/storage/config/Serialization.java +++ b/src/main/java/me/cortex/voxy/common/storage/config/Serialization.java @@ -156,6 +156,9 @@ public class Serialization { }).collect(Collectors.toList()); } private static List collectAllClasses(Path base, String pack) { + if (!Files.exists(base.resolve(pack.replaceAll("[.]", "/")))) { + return List.of(); + } try { return Files.list(base.resolve(pack.replaceAll("[.]", "/"))).flatMap(inner -> { if (inner.getFileName().toString().endsWith(".class")) {