diff options
Diffstat (limited to 'me/Danker/commands/ScaleCommand.java')
-rw-r--r-- | me/Danker/commands/ScaleCommand.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/me/Danker/commands/ScaleCommand.java b/me/Danker/commands/ScaleCommand.java new file mode 100644 index 0000000..f8c73c9 --- /dev/null +++ b/me/Danker/commands/ScaleCommand.java @@ -0,0 +1,70 @@ +package me.Danker.commands; + +import java.util.List; + +import me.Danker.handlers.ConfigHandler; +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; + +public class ScaleCommand extends CommandBase { + + public static double coordsScale; + public static double displayScale; + + @Override + public String getCommandName() { + return "scale"; + } + + @Override + public String getCommandUsage(ICommandSender arg0) { + return getCommandName() + " <coords/display> <size (0.1 - 10)>"; + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (args.length == 1) { + return getListOfStringsMatchingLastWord(args, "coords", "display"); + } + return null; + } + + @Override + public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { + final EntityPlayer player = (EntityPlayer) arg0; + + if (arg1.length < 2) { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>")); + return; + } + + double scaleAmount = (double) Math.floor(Double.parseDouble(arg1[1]) * 10.0) / 10.0; + if (scaleAmount < 0.1 || scaleAmount > 10.0) { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Scale multipler can only be between 0.1x and 10x.")); + return; + } + + if (arg1[0].equalsIgnoreCase("coords")) { + coordsScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "coordsScale", coordsScale); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Coords have been scaled to " + EnumChatFormatting.DARK_GREEN + coordsScale + "x")); + } else if (arg1[0].equalsIgnoreCase("display")) { + displayScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "displayScale", displayScale); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Display has been scaled to " + EnumChatFormatting.DARK_GREEN + displayScale + "x")); + } else { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>")); + } + } + +} |