All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.command.defaults.VanillaCommand Maven / Gradle / Ivy

package org.bukkit.command.defaults;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;

import java.util.List;

@Deprecated
public abstract class VanillaCommand extends Command {
  static final int MAX_COORD = 30000000;
  static final int MIN_COORD_MINUS_ONE = -30000001;
  static final int MIN_COORD = -30000000;

  protected VanillaCommand(String name) {
    super(name);
  }

  protected VanillaCommand(String name, String description, String usageMessage, List aliases) {
    super(name, description, usageMessage, aliases);
  }

  public static double getRelativeDouble(double original, CommandSender sender, String input) {
    if (input.startsWith("~")) {
      double value = getDouble(sender, input.substring(1));
      if (value == MIN_COORD_MINUS_ONE) {
        return MIN_COORD_MINUS_ONE;
      }
      return original + value;
    } else {
      return getDouble(sender, input);
    }
  }

  public static double getDouble(CommandSender sender, String input) {
    try {
      return Double.parseDouble(input);
    } catch (NumberFormatException ex) {
      return MIN_COORD_MINUS_ONE;
    }
  }

  public static double getDouble(CommandSender sender, String input, double min, double max) {
    double result = getDouble(sender, input);

    // TODO: This should throw an exception instead.
    if (result < min) {
      result = min;
    } else if (result > max) {
      result = max;
    }

    return result;
  }

  public boolean matches(String input) {
    return input.equalsIgnoreCase(this.getName());
  }

  protected int getInteger(CommandSender sender, String value, int min) {
    return getInteger(sender, value, min, Integer.MAX_VALUE);
  }

  int getInteger(CommandSender sender, String value, int min, int max) {
    return getInteger(sender, value, min, max, false);
  }

  int getInteger(CommandSender sender, String value, int min, int max, boolean Throws) {
    int i = min;

    try {
      i = Integer.valueOf(value);
    } catch (NumberFormatException ex) {
      if (Throws) {
        throw new NumberFormatException(String.format("%s is not a valid number", value));
      }
    }

    if (i < min) {
      i = min;
    } else if (i > max) {
      i = max;
    }

    return i;
  }

  Integer getInteger(String value) {
    try {
      return Integer.valueOf(value);
    } catch (NumberFormatException ex) {
      return null;
    }
  }

  String createString(String[] args, int start) {
    return createString(args, start, " ");
  }

  String createString(String[] args, int start, String glue) {
    StringBuilder string = new StringBuilder();

    for (int x = start; x < args.length; x++) {
      string.append(args[x]);
      if (x != args.length - 1) {
        string.append(glue);
      }
    }

    return string.toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy