summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeuin <[email protected]>2024-01-20 01:55:59 +0800
committerKeuin <[email protected]>2024-01-20 01:56:09 +0800
commit381843f39f6e896e153cff75b6d16f4481ed2495 (patch)
tree7cddd2d2b43a545cc1c28f59619d363163d5899f
parent62ae677f748d90f8117bd063938a4b77f6ad0705 (diff)
feature: get CoW info with command `/kb cow-info`
-rw-r--r--src/main/java/com/keuin/kbackupfabric/KBCommandsRegister.java4
-rw-r--r--src/main/java/com/keuin/kbackupfabric/ui/KBCommands.java11
2 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/KBCommandsRegister.java b/src/main/java/com/keuin/kbackupfabric/KBCommandsRegister.java
index 5bf92e4..7e454d2 100644
--- a/src/main/java/com/keuin/kbackupfabric/KBCommandsRegister.java
+++ b/src/main/java/com/keuin/kbackupfabric/KBCommandsRegister.java
@@ -58,6 +58,10 @@ public final class KBCommandsRegister {
.requires(Permissions.require("kb.list", DEFAULT_REQUIRED_LEVEL))
.executes(KBCommands::list)));
+ dispatcher.register(CommandManager.literal("kb")
+ .then(CommandManager.literal("cow-info")
+ .executes(KBCommands::cowInfo)));
+
// register /kb delete [name] for deleting an existing backup. OP is required.
dispatcher.register(CommandManager.literal("kb")
.then(CommandManager.literal("delete")
diff --git a/src/main/java/com/keuin/kbackupfabric/ui/KBCommands.java b/src/main/java/com/keuin/kbackupfabric/ui/KBCommands.java
index d23a6fd..0dff99a 100644
--- a/src/main/java/com/keuin/kbackupfabric/ui/KBCommands.java
+++ b/src/main/java/com/keuin/kbackupfabric/ui/KBCommands.java
@@ -14,6 +14,7 @@ import com.keuin.kbackupfabric.operation.backup.method.ConfiguredIncrementalBack
import com.keuin.kbackupfabric.operation.backup.method.ConfiguredPrimitiveBackupMethod;
import com.keuin.kbackupfabric.util.DateUtil;
import com.keuin.kbackupfabric.util.PrintUtil;
+import com.keuin.kbackupfabric.util.cow.FileCowCopier;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.context.CommandContext;
import net.minecraft.server.MinecraftServer;
@@ -75,6 +76,7 @@ public final class KBCommands {
msgInfo(context, "/kb restore <backup_name> - Delete the whole current level and restore from given backup. /kb restore is identical with /kb list.");
msgInfo(context, "/kb confirm - Confirm and start restoring.");
msgInfo(context, "/kb cancel - Cancel the restoration to be confirmed. If cancelled, /kb confirm will not run.");
+ msgInfo(context, "/kb cow-info - Display copy-on-write support info (Experimental)");
return SUCCESS;
}
@@ -135,6 +137,15 @@ public final class KBCommands {
return SUCCESS;
}
+ public static int cowInfo(CommandContext<ServerCommandSource> context) {
+ try {
+ msgInfo(context, "KBackup-cow library version: " + FileCowCopier.getVersion());
+ } catch (Exception | UnsatisfiedLinkError ignored) {
+ msgErr(context, "KBackup-cow library is not loaded");
+ }
+ return SUCCESS;
+ }
+
/**
* Print backup information.
*