From 36a66e436ef3c5a3aa2deda0e1538db072ca7f71 Mon Sep 17 00:00:00 2001 From: ThatGravyBoat Date: Wed, 7 Jul 2021 21:52:37 -0230 Subject: Added Alpha Crystal Hollows locations to get ahead of the update and added commands for people to help me with deving. --- .../skyblockhud/commands/SimpleSubCommand.java | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java (limited to 'src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java') diff --git a/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java new file mode 100644 index 000000000..7169c6d92 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java @@ -0,0 +1,62 @@ +package com.thatgravyboat.skyblockhud.commands; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; +import org.apache.commons.lang3.ArrayUtils; + +import java.util.List; +import java.util.Set; + +public abstract class SimpleSubCommand extends CommandBase { + + private final String commandName; + private final Set subCommands; + + public SimpleSubCommand(String commandName, Set subCommands) { + this.commandName = commandName; + this.subCommands = subCommands; + } + + @Override + public String getCommandName() { + return commandName; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/"+commandName; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + if (args.length == 0) { + processNoSubCommand(sender); + return; + } + if (subCommands.contains(args[0])){ + processSubCommand(sender, args[0], ArrayUtils.remove(args, 0)); + return; + } + processBadSubCommand(sender, args[0]); + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (args.length == 1){ + return getListOfStringsMatchingLastWord(args,subCommands); + } + return null; + } + + abstract void processSubCommand(ICommandSender sender, String subCommand, String[] args); + + abstract void processNoSubCommand(ICommandSender sender); + + public void processBadSubCommand(ICommandSender sender, String subCommand){} +} -- cgit