From 6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a Mon Sep 17 00:00:00 2001 From: ThatGravyBoat Date: Tue, 6 Jul 2021 15:10:29 -0230 Subject: Initial Commit --- .../skyblockhud/commands/SimpleCommand.java | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleCommand.java (limited to 'src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleCommand.java') diff --git a/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleCommand.java b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleCommand.java new file mode 100644 index 0000000..7fc7920 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleCommand.java @@ -0,0 +1,58 @@ +package com.thatgravyboat.skyblockhud.commands; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; + +import java.util.List; + +/** + @author Moulberry + **/ +public class SimpleCommand extends CommandBase { + + private String commandName; + private 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 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; + } + + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + runnable.processCommand(sender, args); + } + + public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if(tabRunnable != null) return tabRunnable.tabComplete(sender, args, pos); + return null; + } +} -- cgit