BloodMagic/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandOrb.java
Nick d9e9a4704a Debug commands
Not fully tested. The ones tested do work, though.
2016-03-14 19:00:03 -07:00

109 lines
3.9 KiB
Java

package WayofTime.bloodmagic.command.sub;
import WayofTime.bloodmagic.api.network.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import WayofTime.bloodmagic.command.SubCommandBase;
import WayofTime.bloodmagic.util.Utils;
import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.PlayerNotFoundException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.StatCollector;
import java.util.Locale;
public class SubCommandOrb extends SubCommandBase {
public SubCommandOrb(ICommand parent) {
super(parent, "orb");
}
@Override
public String getArgUsage(ICommandSender commandSender) {
return StatCollector.translateToLocal("commands.orb.usage");
}
@Override
public String getHelpText() {
return StatCollector.translateToLocal("commands.orb.help");
}
@Override
public void processSubCommand(ICommandSender commandSender, String[] args) {
super.processSubCommand(commandSender, args);
if (args.length > 0) {
if (args[0].equalsIgnoreCase("help"))
return;
try {
String givenName = commandSender.getName();
if (args.length > 1)
givenName = args[1];
EntityPlayer player = getPlayer(commandSender, givenName);
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
SoulNetwork network = NetworkHelper.getSoulNetwork(uuid);
boolean displayHelp = isBounded(0, 2, args.length);
try {
switch (ValidCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH))) {
case SET: {
if (displayHelp) {
displayHelpString(commandSender, ValidCommands.SET.help);
break;
}
if (args.length == 3) {
if (Utils.isInteger(args[2])) {
int amount = Integer.parseInt(args[2]);
network.setOrbTier(amount);
displaySuccessString(commandSender, "commands.success");
} else {
displayErrorString(commandSender, "commands.error.arg.invalid");
}
} else {
displayErrorString(commandSender, "commands.error.arg.missing");
}
break;
}
case GET: {
if (displayHelp) {
displayHelpString(commandSender, ValidCommands.GET.help);
break;
}
if (args.length > 1)
commandSender.addChatMessage(new ChatComponentText(TextHelper.localizeEffect("message.orb.currenttier", network.getOrbTier())));
break;
}
}
} catch (IllegalArgumentException e) {
displayErrorString(commandSender, "commands.error.404");
}
} catch (PlayerNotFoundException e) {
displayErrorString(commandSender, "commands.error.404");
}
}
}
private enum ValidCommands {
SET("commands.orb.set.help"),
GET("commands.orb.get.help");
public String help;
ValidCommands(String help) {
this.help = help;
}
}
}