Conditionally add DH import command
This commit is contained in:
@@ -211,8 +211,13 @@ dependencies {
|
|||||||
include(implementation 'org.apache.commons:commons-pool2:2.12.0')
|
include(implementation 'org.apache.commons:commons-pool2:2.12.0')
|
||||||
include(implementation 'org.lz4:lz4-java:1.8.0')
|
include(implementation 'org.lz4:lz4-java:1.8.0')
|
||||||
compileOnly('org.tukaani:xz:1.10')
|
compileOnly('org.tukaani:xz:1.10')
|
||||||
|
if (true) {
|
||||||
minecraftRuntimeLibraries('org.tukaani:xz:1.10')
|
minecraftRuntimeLibraries('org.tukaani:xz:1.10')
|
||||||
minecraftRuntimeLibraries('org.xerial:sqlite-jdbc:3.49.1.0')
|
minecraftRuntimeLibraries('org.xerial:sqlite-jdbc:3.49.1.0')
|
||||||
|
} else {
|
||||||
|
include(implementation('org.tukaani:xz:1.10'))
|
||||||
|
include(implementation('org.xerial:sqlite-jdbc:3.49.1.0'))
|
||||||
|
}
|
||||||
//implementation 'org.rocksdb:rocksdbjni:8.10.0'
|
//implementation 'org.rocksdb:rocksdbjni:8.10.0'
|
||||||
//implementation 'redis.clients:jedis:5.1.0'
|
//implementation 'redis.clients:jedis:5.1.0'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,7 @@ import java.util.concurrent.CompletableFuture;
|
|||||||
public class VoxyCommands {
|
public class VoxyCommands {
|
||||||
|
|
||||||
public static LiteralArgumentBuilder<FabricClientCommandSource> register() {
|
public static LiteralArgumentBuilder<FabricClientCommandSource> register() {
|
||||||
return ClientCommandManager.literal("voxy").requires((ctx)-> VoxyCommon.getInstance() != null)
|
var imports = ClientCommandManager.literal("import")
|
||||||
.then(ClientCommandManager.literal("reload")
|
|
||||||
.executes(VoxyCommands::reloadInstance))
|
|
||||||
.then(ClientCommandManager.literal("import")
|
|
||||||
.then(ClientCommandManager.literal("world")
|
.then(ClientCommandManager.literal("world")
|
||||||
.then(ClientCommandManager.argument("world_name", StringArgumentType.string())
|
.then(ClientCommandManager.argument("world_name", StringArgumentType.string())
|
||||||
.suggests(VoxyCommands::importWorldSuggester)
|
.suggests(VoxyCommands::importWorldSuggester)
|
||||||
@@ -45,12 +42,20 @@ public class VoxyCommands {
|
|||||||
.executes(VoxyCommands::importZip)
|
.executes(VoxyCommands::importZip)
|
||||||
.then(ClientCommandManager.argument("innerPath", StringArgumentType.string())
|
.then(ClientCommandManager.argument("innerPath", StringArgumentType.string())
|
||||||
.executes(VoxyCommands::importZip))))
|
.executes(VoxyCommands::importZip))))
|
||||||
|
.then(ClientCommandManager.literal("cancel")
|
||||||
|
.executes(VoxyCommands::cancelImport));
|
||||||
|
|
||||||
|
if (DHImporter.HasRequiredLibraries) {
|
||||||
|
imports = imports
|
||||||
.then(ClientCommandManager.literal("distant_horizons")
|
.then(ClientCommandManager.literal("distant_horizons")
|
||||||
.then(ClientCommandManager.argument("sqlDbPath", StringArgumentType.string())
|
.then(ClientCommandManager.argument("sqlDbPath", StringArgumentType.string())
|
||||||
.executes(VoxyCommands::importDistantHorizons)))
|
.executes(VoxyCommands::importDistantHorizons)));
|
||||||
.then(ClientCommandManager.literal("cancel")
|
}
|
||||||
.executes(VoxyCommands::cancelImport))
|
|
||||||
);
|
return ClientCommandManager.literal("voxy").requires((ctx)-> VoxyCommon.getInstance() != null)
|
||||||
|
.then(ClientCommandManager.literal("reload")
|
||||||
|
.executes(VoxyCommands::reloadInstance))
|
||||||
|
.then(imports);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int reloadInstance(CommandContext<FabricClientCommandSource> ctx) {
|
private static int reloadInstance(CommandContext<FabricClientCommandSource> ctx) {
|
||||||
|
|||||||
@@ -376,13 +376,20 @@ public class DHImporter implements IDataImporter {
|
|||||||
private static VarHandle create(Class<?> viewArrayClass) {
|
private static VarHandle create(Class<?> viewArrayClass) {
|
||||||
return MethodHandles.byteArrayViewVarHandle(viewArrayClass, ByteOrder.BIG_ENDIAN);
|
return MethodHandles.byteArrayViewVarHandle(viewArrayClass, ByteOrder.BIG_ENDIAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final boolean HasRequiredLibraries;
|
||||||
|
|
||||||
private static final VarHandle LONG = create(long[].class);
|
private static final VarHandle LONG = create(long[].class);
|
||||||
static {
|
static {
|
||||||
|
boolean hasJDBC = false;
|
||||||
try {
|
try {
|
||||||
Class.forName("org.sqlite.JDBC");
|
Class.forName("org.sqlite.JDBC");
|
||||||
|
hasJDBC = true;
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
throw new RuntimeException(e);
|
//throw new RuntimeException(e);
|
||||||
|
Logger.error("Unable to load sqlite JDBC, DHImporting wont be available", e);
|
||||||
}
|
}
|
||||||
|
HasRequiredLibraries = hasJDBC;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user