package sourcecoded.quantum; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.command.WrongUsageException; import net.minecraft.entity.player.EntityPlayer; import sourcecoded.quantum.api.discovery.DiscoveryManager; import sourcecoded.quantum.api.discovery.DiscoveryRegistry; import java.util.List; public class QACommand extends CommandBase { @Override public String getCommandName() { return "quantum"; } @Override public String getCommandUsage(ICommandSender p_71518_1_) { return "/quantum <discoveries> <item|category|reset> <hidden|unlocked> <key> <state>"; } @Override public void processCommand(ICommandSender sender, String[] args) { if (args[0].equals("discoveries")) { if (args[1].equals("item")) { if (args[2].equals("hidden")) DiscoveryManager.hideItem(args[3], (EntityPlayer) sender, parseBoolean(sender, args[4])); else if (args[2].equals("unlocked")) DiscoveryManager.setItemUnlock(args[3], (EntityPlayer) sender, parseBoolean(sender, args[4])); else wrong(sender); } else if (args[1].equals("category")) { if (args[2].equals("hidden")) DiscoveryManager.hideCategory(args[3], (EntityPlayer) sender, parseBoolean(sender, args[4])); else if (args[2].equals("unlocked")) DiscoveryManager.setCategoryUnlock(args[3], (EntityPlayer) sender, parseBoolean(sender, args[4])); else wrong(sender); } else if (args[1].equals("reset")) DiscoveryManager.getQuantumTag((EntityPlayer) sender).removeTag("discoveries"); else wrong(sender); } else wrong(sender); } public void wrong(ICommandSender sender) { throw new WrongUsageException(getCommandUsage(sender)); } public List addTabCompletionOptions(ICommandSender sender, String[] str) { return str.length == 1 ? getListOfStringsMatchingLastWord(str, "discoveries") : str.length == 2 ? getListOfStringsMatchingLastWord(str, "item", "category", "reset") : str.length == 3 ? getListOfStringsMatchingLastWord(str, "hidden", "unlocked") : str.length == 4 ? str[1].equals("item") ? getListOfStringsMatchingLastWord(str, DiscoveryRegistry.getItemKeyList().toArray(new String[0])) : str[1].equals("category") ? getListOfStringsMatchingLastWord(str, DiscoveryRegistry.getCategoryKeyList().toArray(new String[0])) : null : str.length == 5 ? getListOfStringsMatchingLastWord(str, "true", "false") : null; } }