package me.Danker.commands;
import me.Danker.DankersSkyblockMod;
import me.Danker.features.loot.*;
import me.Danker.utils.Utils;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import java.text.NumberFormat;
import java.util.List;
import java.util.Locale;
public class LootCommand extends CommandBase {
@Override
public String getCommandName() {
return "loot";
}
@Override
public String getCommandUsage(ICommandSender arg0) {
return "/" + getCommandName() + " <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological> [winter/festival/spooky/ch/lava/f(1-7)/mm/session]";
}
public static String usage(ICommandSender arg0) {
return new LootCommand().getCommandUsage(arg0);
}
@Override
public int getRequiredPermissionLevel() {
return 0;
}
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "enderman", "blaze", "fishing", "catacombs", "mythological");
} else if (args.length == 2 && args[0].equalsIgnoreCase("fishing")) {
return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "ch", "lava", "session");
} else if (args.length == 2 && args[0].equalsIgnoreCase("catacombs")) {
return getListOfStringsMatchingLastWord(args, "f1", "floor1", "f2", "floor2", "f3", "floor3", "f4", "floor4", "f5", "floor5", "f6", "floor6", "f7", "floor7", "mm", "master");
} else if (args.length > 1) {
return getListOfStringsMatchingLastWord(args, "session");
}
return null;
}
@Override
public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
final EntityPlayer player = (EntityPlayer) arg0;
if (arg1.length == 0) {
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
return;
}
double timeNow = System.currentTimeMillis() / 1000;
String timeBetween;
String bossesBetween;
String drop20;
NumberFormat nf = NumberFormat.getIntegerInstance(Locale.US);
boolean showSession = arg1[arg1.length - 1].equalsIgnoreCase("session");
switch (arg1[0].toLowerCase()) {
case "wolf":
if (showSession) {
if (WolfTracker.wolfTimeSession == -1) {
timeBetween = "Never";
} else {
timeBetween = Utils.getTimeBetween(WolfTracker.wolfTimeSession, timeNow);
}
if (WolfTracker.wolfBossesSession == -1) {
bossesBetween = "Never";
} else {
bossesBetween = nf.format(WolfTracker.wolfBossesSession);
}
if (ToggleCommand.slayerCountTotal) {
drop20 = nf.format(WolfTracker.wolfWheelsSession);
} else {
drop20 = nf.format(WolfTracker.wolfWheelsDropsSession) + " times";
}
player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD +