package be.isach.ultracosmetics.command.subcommands; import be.isach.ultracosmetics.UltraCosmetics; import be.isach.ultracosmetics.command.SubCommand; import be.isach.ultracosmetics.util.MathUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; /** * Treasure {@link be.isach.ultracosmetics.command.SubCommand SubCommand}. * * @author iSach * @since 12-22-2015 */ public class SubCommandTreasure extends SubCommand { public SubCommandTreasure(UltraCosmetics ultraCosmetics) { super("Starts Treasure Chest.", "ultracosmetics.command.treasure", "/uc treasure <player> <x> <y> <z> <world>", ultraCosmetics, "treasure"); } @Override protected void onExePlayer(Player sender, String... args) { common(sender, args); } @Override protected void onExeConsole(ConsoleCommandSender sender, String... args) { common(sender, args); } private void common(CommandSender sender, String... args) { if (args.length < 6) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Incorrect Usage! " + getUsage()); return; } Player opener = Bukkit.getPlayer(args[1]); if (opener == null) { sender.sendMessage("§c§lPlayer " + args[1] + " not found!"); return; } double x, y, z; if (!MathUtils.isDouble(args[2])) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + args[2] + " isn't a number!"); return; } x = Integer.parseInt(args[2]); if (!MathUtils.isDouble(args[3])) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + args[3] + " isn't a number!"); return; } y = Integer.parseInt(args[3]); if (!MathUtils.isDouble(args[4])) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + args[4] + " isn't a number!"); return; } z = Integer.parseInt(args[4]); World world = Bukkit.getWorld(args[5]); if (world == null) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "World " + args[5] + " doesn't exist!"); return; } Location location = new Location(world, x + 0.5, y, z + 0.5); if (location.getBlock().getType() != Material.AIR) { sender.sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "This isn't a valid location for teleporting."); return; } opener.teleport(location); getUltraCosmetics().getTreasureChestManager().tryOpenChest(opener); } }