BloodMagic/src/main/java/WayofTime/bloodmagic/command/SubCommandBase.java

100 lines
3.3 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.command;
import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.PlayerNotFoundException;
import net.minecraft.command.PlayerSelector;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.StatCollector;
import java.util.Locale;
2016-03-16 18:41:06 -04:00
public abstract class SubCommandBase implements ISubCommand
{
private ICommand parent;
private String name;
2016-03-16 18:41:06 -04:00
public SubCommandBase(ICommand parent, String name)
{
this.parent = parent;
this.name = name;
}
@Override
2016-03-16 18:41:06 -04:00
public String getSubCommandName()
{
return name;
}
@Override
2016-03-16 18:41:06 -04:00
public ICommand getParentCommand()
{
return parent;
}
@Override
2016-03-16 18:41:06 -04:00
public void processSubCommand(ICommandSender commandSender, String[] args)
{
if (args.length == 0 && !getSubCommandName().equals("help"))
displayErrorString(commandSender, String.format(StatCollector.translateToLocal("commands.format.error"), capitalizeFirstLetter(getSubCommandName()), getArgUsage(commandSender)));
if (isBounded(0, 2, args.length) && args[0].equals("help"))
displayHelpString(commandSender, String.format(StatCollector.translateToLocal("commands.format.help"), capitalizeFirstLetter(getSubCommandName()), getHelpText()));
}
2016-03-16 18:41:06 -04:00
protected EntityPlayerMP getCommandSenderAsPlayer(ICommandSender commandSender) throws PlayerNotFoundException
{
if (commandSender instanceof EntityPlayerMP)
2016-03-16 18:41:06 -04:00
return (EntityPlayerMP) commandSender;
else
throw new PlayerNotFoundException(StatCollector.translateToLocal("commands.error.arg.player.missing"));
}
2016-03-16 18:41:06 -04:00
protected EntityPlayerMP getPlayer(ICommandSender commandSender, String playerName) throws PlayerNotFoundException
{
EntityPlayerMP entityplayermp = PlayerSelector.matchOnePlayer(commandSender, playerName);
if (entityplayermp != null)
return entityplayermp;
2016-03-16 18:41:06 -04:00
else
{
entityplayermp = MinecraftServer.getServer().getConfigurationManager().getPlayerByUsername(playerName);
if (entityplayermp == null)
throw new PlayerNotFoundException();
else
return entityplayermp;
}
}
2016-03-16 18:41:06 -04:00
protected String capitalizeFirstLetter(String toCapital)
{
return String.valueOf(toCapital.charAt(0)).toUpperCase(Locale.ENGLISH) + toCapital.substring(1);
}
2016-03-16 18:41:06 -04:00
protected boolean isBounded(int low, int high, int given)
{
return given > low && given < high;
}
2016-03-16 18:41:06 -04:00
protected void displayHelpString(ICommandSender commandSender, String display, Object... info)
{
commandSender.addChatMessage(new ChatComponentText(TextHelper.localizeEffect(display, info)));
}
2016-03-16 18:41:06 -04:00
protected void displayErrorString(ICommandSender commandSender, String display, Object... info)
{
commandSender.addChatMessage(new ChatComponentText(TextHelper.localizeEffect(display, info)));
}
2016-03-16 18:41:06 -04:00
protected void displaySuccessString(ICommandSender commandSender, String display, Object... info)
{
commandSender.addChatMessage(new ChatComponentText(TextHelper.localizeEffect(display, info)));
}
}