aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java
diff options
context:
space:
mode:
authorLorenz <lo.scherf@gmail.com>2022-09-08 18:11:29 +0200
committerLorenz <lo.scherf@gmail.com>2022-09-08 18:11:29 +0200
commit7e4eb4d5c83f6ef2d0dc86834870c55ce7774f12 (patch)
tree55a4d8c73484a71657f9ea1e6dfa8f08fbbad43f /src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java
parentd6389173d423ce406b9710724dce04b4ef07098b (diff)
downloadSkyHanni-7e4eb4d5c83f6ef2d0dc86834870c55ce7774f12.tar.gz
SkyHanni-7e4eb4d5c83f6ef2d0dc86834870c55ce7774f12.tar.bz2
SkyHanni-7e4eb4d5c83f6ef2d0dc86834870c55ce7774f12.zip
updated config structure from neu
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java b/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java
new file mode 100644
index 000000000..25e3ba97b
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java
@@ -0,0 +1,61 @@
+package at.hannibal2.skyhanni.config.commands;
+
+import net.minecraft.command.CommandBase;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.util.BlockPos;
+
+import java.util.List;
+
+/**
+ @author Moulberry
+ **/
+public class SimpleCommand extends CommandBase {
+
+ private final String commandName;
+ private final ProcessCommandRunnable runnable;
+ private TabCompleteRunnable tabRunnable;
+
+ public SimpleCommand(String commandName, ProcessCommandRunnable runnable) {
+ this.commandName = commandName;
+ this.runnable = runnable;
+ }
+
+ public SimpleCommand(String commandName, ProcessCommandRunnable runnable, TabCompleteRunnable tabRunnable) {
+ this.commandName = commandName;
+ this.runnable = runnable;
+ this.tabRunnable = tabRunnable;
+ }
+
+ public abstract static class ProcessCommandRunnable {
+
+ public abstract void processCommand(ICommandSender sender, String[] args);
+ }
+
+ public abstract static class TabCompleteRunnable {
+
+ public abstract List<String> tabComplete(ICommandSender sender, String[] args, BlockPos pos);
+ }
+
+ public boolean canCommandSenderUseCommand(ICommandSender sender) {
+ return true;
+ }
+
+ public String getCommandName() {
+ return commandName;
+ }
+
+ public String getCommandUsage(ICommandSender sender) {
+ return "/" + commandName;
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) {
+ runnable.processCommand(sender, args);
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
+ if (tabRunnable != null) return tabRunnable.tabComplete(sender, args, pos);
+ return null;
+ }
+}