Ir para conteúdo
  • 0

[Resolvido] Como Faço Isso ?


Guest BrCraft

Pergunta

Bom Eu Qr Saber Cm Faço O Comando /terreno comprar bm Eu Tendei De Duas Maneiras

Assim:

if (cmd.getName().equalsIgnoreCase("Terreno_Comprar"))

e assim;

 if (cmd.getName().equalsIgnoreCase("Terreno Comprar"))

Maiz nenhum Deu Certo '-'

Bm Esse E O Codigo Inteiro 

package Terrenos;

import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.GlobalRegionManager;
import com.sk89q.worldguard.protection.databases.ProtectionDatabaseException;
import com.sk89q.worldguard.protection.flags.DefaultFlag;
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.flags.StringFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.io.File;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicesManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin
{
  public static Economy econ = null;
  public static Permission perms = null;
  public static Chat chat = null;
  public File configFile;
  public FileConfiguration config;

  public void onEnable()
  {
    this.configFile = new File(getDataFolder(), "config.yml");
    try {
      carregarConfig();
    } catch (Exception e) {
      System.out.println("[HkTerrrenos] Config.yml  ou Players.yml carregado com sucesso!");
    }
    this.config = new YamlConfiguration();
    getLogger().info(ChatColor.DARK_GREEN + "HkrTerrenos Por HardcoreKiller Ativo.");
    if (!setupEconomy()) {
      System.out.println("[HkTerrenos] Plugin Vault nao encontrado!");
      getServer().getPluginManager().disablePlugin(this);
      return;
    }
    setupPermissions();
    getServer().getPluginManager().registerEvents(new InteractListener(), this);
    getServer().getPluginManager().registerEvents(new SignListener(), this);
    getServer().getPluginManager().registerEvents(new BlockListener(), this);
    if (getConfig().getBoolean("AntHome"))
    {
      getServer().getPluginManager().registerEvents(new CommandListener(), this);
    }
  }

  public void onDisable()
  {
    getLogger().info(ChatColor.DARK_RED + "HkTerrenos Desativado!");
  }

  private void carregarConfig() throws Exception {
    if (!this.configFile.exists()) {
      saveDefaultConfig();
      this.configFile.getParentFile().mkdirs();
      System.out.println(" Config.yml criado com sucesso!");
    }
  }

  private boolean setupEconomy()
  {
    RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
    if (economyProvider != null) {
      econ = (Economy)economyProvider.getProvider();
    }

    return econ != null;
  }

  private boolean setupPermissions()
  {
    RegisteredServiceProvider permissionProvider = getServer().getServicesManager().getRegistration(Permission.class);
    if (permissionProvider != null) {
      perms = (Permission)permissionProvider.getProvider();
    }
    return perms != null;
  }

  public WorldGuardPlugin getWorldGuard() {
    Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
    if ((plugin == null) || (!(plugin instanceof WorldGuardPlugin))) {
      return null;
    }

    return (WorldGuardPlugin)plugin;
  }
  public WorldEditPlugin getWorldEdit() {
    Plugin plugin = getServer().getPluginManager().getPlugin("WorldEdit");
    if ((plugin == null) || (!(plugin instanceof WorldEditPlugin))) {
      return null;
    }

    return (WorldEditPlugin)plugin;
  }

  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (!(sender instanceof Player)) {
      sender.sendMessage("Este comando so pode ser usado por um player.");
      return true;
    }
    Player player = (Player)sender;
    if (!player.hasPermission("hkterrenos.use"))
    {
      player.sendMessage(ChatColor.DARK_RED + "Voce nao pode usar a proteçao neste mundo!");
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("Terreno_Comprar"))
    {
      if ((!player.isOp()) && 
        (getTamanho(player.getName(), player.getWorld().getName()) >= getConfig().getInt("MaxDeAreas")))
      {
        boolean tem = false;
        for (int i = 1; i < 50; i++) {
          if (player.hasPermission("hkterrenos." + i)) {
            if (getTamanho(player.getName(), player.getWorld().getName()) >= i) {
              player.sendMessage(ChatColor.DARK_RED + "Voce so pode ter no maximo " + i + " terrenos");
              return true;
            }

            tem = true;
            break;
          }

        }

        if (!tem)
        {
          player.sendMessage(ChatColor.DARK_RED + "Voce so pode ter no maximo " + getConfig().getInt("MaxDeAreas") + " terrenos");
          return true;
        }
      }
      if (args.length != 2)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno comprar [tamanho] [area]");
        return true;
      }
      try {
        x = Integer.parseInt(args[0]);
      }
      catch (NumberFormatException e)
      {
        int x;
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno comprar [tamanho] [area]");
        return true;
      }
      int x;
      if ((x < 10) || (x > getConfig().getInt("TamanhoMax")))
      {
        player.sendMessage(ChatColor.DARK_RED + "O tamanho tem de ser no minimo 10 e no maximo " + getConfig().getInt("TamanhoMax"));
        return true;
      }
      if (args[1].length() > 8)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area deve ter no maximo 8 digitos");
        return true;
      }
      comprar(player, Integer.parseInt(args[0]), Integer.parseInt(args[0]), args[1]);
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_pvparea")) {
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (args.length != 2)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno pvparea [Area] [ON|OFF]");
        return true;
      }
      if (mgr.getRegion(player.getName() + "_" + args[0]) == null)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[0] + " nao foi encontrada");
        return true;
      }
      if (econ.getBalance(player.getName()) < getConfig().getDouble("PrecoDoPVP"))
      {
        player.sendMessage(ChatColor.DARK_RED + "Voce precisa de " + getConfig().getString("NomeDaMoeda") + getConfig().getDouble("PrecoDoPVP") + " para desativar ou ativar o PvP.");
        return true;
      }
      ProtectedRegion region = mgr.getRegion(player.getName() + "_" + args[0]);
      if (args[1].equalsIgnoreCase("on"))
      {
        try {
          region.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), sender, "allow"));
          player.sendMessage(ChatColor.YELLOW + ChatColor.AQUA + "PvP ativado na area " + args[0] + ". " + ChatColor.AQUA + "[" + getConfig().getString("NomeDaMoeda") + getConfig().getDouble("PrecoDoPVP") + "]");
          econ.withdrawPlayer(player.getName(), getConfig().getDouble("PrecoDoPVP"));
        } catch (InvalidFlagFormat e) {
          player.sendMessage(ChatColor.DARK_RED + "Erro ao tentar ativar o PvP da area");
        }
      }
      else if (args[1].equalsIgnoreCase("off"))
      {
        try {
          region.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), sender, "deny"));
          player.sendMessage(ChatColor.YELLOW + ChatColor.AQUA + "PvP desativado na area " + args[0] + ". " + ChatColor.AQUA + "[" + getConfig().getString("NomeDaMoeda") + getConfig().getDouble("PrecoDoPVP") + "]");
          econ.withdrawPlayer(player.getName(), getConfig().getDouble("PrecoDoPVP"));
        } catch (InvalidFlagFormat e) {
          player.sendMessage(ChatColor.DARK_RED + "Erro ao tentar desativar o PvP da area");
        }
      }
      else
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno pvparea [Area] [ON|OFF] ");
        return true;
      }
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_areamsg")) {
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());

      if (args.length < 1)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno areamsg [area] [menssagem]");
        return true;
      }
      if (mgr.getRegion(player.getName() + "_" + args[0]) == null)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[0] + " nao foi encontrada");
        return true;
      }
      StringBuilder message = new StringBuilder();
      message.append(args[1]);
      for (int i = 2; i < args.length; i++) {
        message.append(" ");
        message.append(args[i]);
      }
      ProtectedRegion region = mgr.getRegion(player.getName() + "_" + args[0]);
      try {
        region.setFlag(DefaultFlag.GREET_MESSAGE, DefaultFlag.GREET_MESSAGE.parseInput(getWorldGuard(), player, ChatColor.AQUA + message));
      } catch (InvalidFlagFormat e1) {
        player.sendMessage(ChatColor.DARK_RED + "Erro ao tentar editar flags da area.");
      }
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_delete")) {
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (args.length != 1)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno delete [Area]");
        return true;
      }
      if (args[0].length() > 8)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area deve ter no maximo 8 digitos");
        return true;
      }
      if (mgr.getRegion(player.getName() + "_" + args[0]) == null)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[0] + " nao foi encontrada");
        return true;
      }
      ProtectedRegion pr = mgr.getRegion(player.getName().toLowerCase() + "_" + args[0]);
      DelParede(player, pr.getMinimumPoint().getBlockX(), pr.getMaximumPoint().getBlockX(), pr.getMinimumPoint().getBlockZ(), pr.getMaximumPoint().getBlockZ());
      player.sendMessage(ChatColor.AQUA + "area " + ChatColor.YELLOW + args[0] + ChatColor.AQUA + " removida com sucesso!");
      mgr.removeRegion(player.getName().toLowerCase() + "_" + args[0]);
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_expandir")) {
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (args.length != 2)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno expandir [area] [tamanho]");
        return true;
      }
      if (args[0].length() > 8)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area deve ter no maximo 8 digitos");
        return true;
      }
      if (mgr.getRegion(player.getName() + "_" + args[0]) == null)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[0] + " nao foi encontrada");
        return true;
      }
      try {
        Integer.parseInt(args[1]);
      }
      catch (NumberFormatException e) {
        player.sendMessage(ChatColor.DARK_RED + "Tamanho ínvalido, use apenas números inteiros.");
        return true;
      }
      if (econ.getBalance(player.getName()) < Integer.parseInt(args[1]) * getConfig().getDouble("PrecoDaExpancao"))
      {
        player.sendMessage(ChatColor.DARK_RED + "Voce nao tem dinheiro o suficiente para este terreno. [" + getConfig().getString("NomeDaMoeda") + Double.parseDouble(args[1]) * getConfig().getDouble("PrecoDaExpancao") + "]");
        return true;
      }

      ProtectedRegion pr = mgr.getRegion(player.getName().toLowerCase() + "_" + args[0]);
      int xmin = pr.getMinimumPoint().getBlockX();
      int zmin = pr.getMinimumPoint().getBlockZ();
      int xmax = pr.getMaximumPoint().getBlockX();
      int zmax = pr.getMaximumPoint().getBlockZ();
      mgr.removeRegion(player.getName().toLowerCase() + "_" + args[0]);
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      Expandir(player, xmin, xmax, zmin, zmax, args[0], args[1]);
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_vender"))
    {
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (args.length != 1)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno vender [Preco]");
        return true;
      }
      try
      {
        Double.parseDouble(args[0]);
      }
      catch (Exception e)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno vender [Preco]");
        return true;
      }

      ApplicableRegionSet set = mgr.getApplicableRegions(player.getLocation());
      if (set.size() == 0)
      {
        player.sendMessage(ChatColor.DARK_RED + "Nao existe uma area neste local!");
        return true;
      }
      set.toString().toLowerCase();
      String id = ((ProtectedRegion)set.iterator().next()).getId();
      if (!id.startsWith(player.getName().toLowerCase()))
      {
        player.sendMessage(ChatColor.DARK_RED + "Essa area nao e sua!");
        return true;
      }
      if (TaVenda(player, id))
      {
        player.sendMessage(ChatColor.DARK_RED + "Essa area ja esta a venda, quebre a placa primeiro.");
        return true;
      }

      player.sendMessage(ChatColor.YELLOW + ChatColor.AQUA + "area colocada a venda com sucesso!");
      Block b = player.getLocation().getBlock();
      b.setType(Material.SIGN_POST);
      Sign s = (Sign)player.getLocation().getBlock().getState();
      s.setLine(0, "[" + getConfig().getString("NomeDoServer") + "]");
      s.setLine(1, "Terreno a venda");
      s.setLine(2, player.getName());
      s.setLine(3, Double.parseDouble(args[0]));
      s.update();
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("Terrenos"))
    {
      if (args.length != 1)
      {
        player.sendMessage(ChatColor.GREEN + "****************************" + ChatColor.DARK_RED + "HkTerrenos" + ChatColor.GREEN + "*********************");
        player.sendMessage(ChatColor.YELLOW + "/terreno comprar " + ChatColor.AQUA + "- Compra um terreno");
        player.sendMessage(ChatColor.YELLOW + "/terreno vender " + ChatColor.AQUA + "- Coloque seu terreno a venda");
        player.sendMessage(ChatColor.YELLOW + "/terreno delete " + ChatColor.AQUA + "- Delete a area");
        player.sendMessage(ChatColor.YELLOW + "/terreno addamigo " + ChatColor.AQUA + "- Adiciona um membro ao terreno");
        player.sendMessage(ChatColor.YELLOW + "/terreno delamigo " + ChatColor.AQUA + "- Remove um membro do terreno");
        player.sendMessage(ChatColor.YELLOW + "/terreno pvparea " + ChatColor.AQUA + "- Adiociona ou remove PvP do seu Terreno");
        player.sendMessage(ChatColor.YELLOW + "/terreno areamsg " + ChatColor.AQUA + "- Adiciona Menssagem de boas vindas para sua area");
        player.sendMessage(ChatColor.YELLOW + "/terreno areas " + ChatColor.AQUA + "- veja todas as suas areas");
        player.sendMessage(ChatColor.YELLOW + "/terreno infoarea " + ChatColor.AQUA + "- veja as informações da area abaixo");
        player.sendMessage(ChatColor.YELLOW + "/terreno expandir " + ChatColor.AQUA + "- expanda sua area ");
        player.sendMessage(ChatColor.GREEN + "****************************************************************");
        return true;
      }
      if (args[0].equalsIgnoreCase("cDARK_REDitos"))
      {
        player.sendMessage(ChatColor.GREEN + "=================================");
        player.sendMessage(ChatColor.GREEN + "=" + ChatColor.YELLOW + "      Programador e criador: HardCoreKiller    " + ChatColor.GREEN + "=");
        player.sendMessage(ChatColor.GREEN + "=================================");
        return true;
      }

      player.sendMessage(ChatColor.GREEN + "****************************" + ChatColor.DARK_RED + "SpotProtection" + ChatColor.GREEN + "*********************");
      player.sendMessage(ChatColor.YELLOW + "/terreno comprar " + ChatColor.AQUA + "- Compra um terreno");
      player.sendMessage(ChatColor.YELLOW + "/terreno vender " + ChatColor.AQUA + "- Coloque seu terreno a venda");
      player.sendMessage(ChatColor.YELLOW + "/terreno delarea " + ChatColor.AQUA + "- Delete a area");
      player.sendMessage(ChatColor.YELLOW + "/terreno addamigo " + ChatColor.AQUA + "- Adiciona um membro ao terreno");
      player.sendMessage(ChatColor.YELLOW + "/terreno delete " + ChatColor.AQUA + "- Remove um membro do terreno");
      player.sendMessage(ChatColor.YELLOW + "/terreno pvparea " + ChatColor.AQUA + "- Adiociona ou remove PvP do seu Terreno");
      player.sendMessage(ChatColor.YELLOW + "/terreno areamsg " + ChatColor.AQUA + "- Adiciona Menssagem de boas vindas para sua area");
      player.sendMessage(ChatColor.YELLOW + "/terreno infoarea " + ChatColor.AQUA + "- veja as informações da area abaixo");
      player.sendMessage(ChatColor.YELLOW + "/terreno expandir " + ChatColor.AQUA + "- expanda sua area ");
      player.sendMessage(ChatColor.GREEN + "****************************************************************");
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_delamigo"))
    {
      if (args.length != 2)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno delamigo [player] [area]");
        return true;
      }      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (mgr.getRegion(player.getName() + "_" + args[1]) == null) {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[1] + " nao foi encontrada");
        return true;
      }
      delAmigo(player, args[0], player.getName() + "_" + args[1]);
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_addamigo")) {
      if (args.length != 2)
      {
        player.sendMessage(ChatColor.DARK_RED + "Use /terreno addamigo [player] [area]");
        return true;
      }
      Player gPlayer = Bukkit.getServer().getPlayer(args[0]);
      if (gPlayer == null)
      {
        sender.sendMessage(ChatColor.DARK_RED + "O player " + args[0] + " nao esta online");
        return true;
      }
      RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
      if (mgr.getRegion(player.getName() + "_" + args[1]) == null)
      {
        player.sendMessage(ChatColor.DARK_RED + "A area " + args[1] + " nao foi encontrada");
        return true;
      }
      addAmigo(player, gPlayer.getName(), player.getName() + "_" + args[1]);
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_infoarea")) {
      RegionManager rm = getWorldGuard().getRegionManager(player.getWorld());
      ApplicableRegionSet set = rm.getApplicableRegions(player.getLocation());
      if (set.size() == 0)
      {
        player.sendMessage(ChatColor.DARK_RED + "Nao existe uma area neste local!");
        return true;
      }
      set.toString().toLowerCase();
      String id = ((ProtectedRegion)set.iterator().next()).getId();
      if ((player.getName().equalsIgnoreCase(rm.getRegion(id).getOwners().toUserFriendlyString())) || (player.isOp()))
      {
        if (!player.isOp())
        {
          player.sendMessage(ChatColor.AQUA + "Esta area pertence a voce");
        }
        if (rm.getRegion(id).getMembers().size() != 0)
        {
          player.sendMessage(ChatColor.AQUA + "area: " + ChatColor.DARK_RED + id.split("_")[(id.split("_").length - 1)]);
          player.sendMessage(ChatColor.AQUA + "Membros: " + ChatColor.YELLOW + rm.getRegion(id).getMembers().toUserFriendlyString());
        }
        else {
          player.sendMessage(ChatColor.AQUA + "area: " + ChatColor.DARK_RED + id.split("_")[(id.split("_").length - 1)]);
          player.sendMessage(ChatColor.AQUA + "Membros: " + ChatColor.DARK_RED + "(Nenhum)");
        }
        return true;
      }
      player.sendMessage(ChatColor.AQUA + "Essa area pertence ao player " + ChatColor.DARK_RED + rm.getRegion(id).getOwners().toUserFriendlyString());
      return true;
    }

    if (cmd.getName().equalsIgnoreCase("terreno_areas"))
    {
      RegionManager mgr = getWorldGuard().getGlobalRegionManager().get(player.getWorld());
      Map regions = mgr.getRegions();
      StringBuilder string = new StringBuilder();
      int parea = 0;
      for (String id : regions.keySet())
      {
        if (!id.startsWith(player.getName().toLowerCase()))
          continue;
        String areas = id;
        string.append(areas.split("_")[(areas.split("_").length - 1)]);
        string.append(" ");
        parea++;
      }

      if (parea != 0)
      {
        player.sendMessage(ChatColor.AQUA + "Suas areas compradas: " + ChatColor.YELLOW + string);
      }
      else
      {
        player.sendMessage(ChatColor.AQUA + "Suas areas compradas: " + ChatColor.DARK_RED + "(Nenhuma)");
      }
      return true;
    }
    return false;
  }

  public void addAmigo(Player ply, String p, String id)
  {
    RegionManager mgr = getWorldGuard().getRegionManager(ply.getWorld());
    ProtectedRegion region = mgr.getRegion(id);
    region.getMembers().addPlayer(p);
    ply.sendMessage(ChatColor.YELLOW + ChatColor.AQUA + "Voce adicionou o player " + p + " ao terreno");
    try {
      mgr.save();
    } catch (ProtectionDatabaseException e) {
      ply.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
  }

  private int getTamanho(String area, String mundo)
  {
    RegionManager mgr = getWorldGuard().getGlobalRegionManager().get(getServer().getWorld(mundo));
    Map regions = mgr.getRegions();
    List tamanho = new ArrayList();
    for (String id : regions.keySet())
    {
      if (!id.startsWith(area.toLowerCase()))
        continue;
      tamanho.add(id);
    }

    return tamanho.size();
  }

  private boolean ExisteArea(String area, String mundo)
  {
    RegionManager mgr = getWorldGuard().getGlobalRegionManager().get(getServer().getWorld(mundo));
    Map regions = mgr.getRegions();
    for (String id : regions.keySet(args(0)))
    {
      if (id.equalsIgnoreCase(area.toLowerCase()))
      {
        return true;
      }
    }
    return false;
  }

  private Object args(int i) {
	// TODO Auto-generated method stub
	return null;
}

public void delAmigo(Player ply, String p, String id)
  {
    RegionManager mgr = getWorldGuard().getRegionManager(ply.getWorld());
    ProtectedRegion region = mgr.getRegion(id);
    region.getMembers().removePlayer(p);
    ply.sendMessage(ChatColor.YELLOW + ChatColor.AQUA + "Voce removeu o player " + p + " do terreno");
    try {
      mgr.save();
    } catch (ProtectionDatabaseException e) {
      ply.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
  }

  public void Parede(Player p, int tamanho)
  {
    Location loc = p.getLocation();
    World w = loc.getWorld();
    if (getConfig().getBoolean("RemoverArvores")) {
      for (int y = 20; y < 90; y++) {
        for (int x = loc.getBlockX() - tamanho / 2; x < loc.getBlockX() - tamanho / 2 + tamanho; x++) {
          for (int z = loc.getBlockZ() - tamanho / 2; z < loc.getBlockZ() - tamanho / 2 + tamanho; z++) {
            Block bb = new Location(p.getWorld(), x, y, z).getBlock();
            if ((bb.getType() == Material.LEAVES) || (bb.getType() == Material.LOG)) {
              bb.setType(Material.AIR);
            }
          }
        }
      }
    }
    if (!getConfig().getBoolean("Alinhar"))
    {
      for (int x = loc.getBlockX() - tamanho / 2; x < loc.getBlockX() - tamanho / 2 + tamanho; x++)
      {
        Block xb = w.getHighestBlockAt(x, loc.getBlockZ() - tamanho / 2);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int x2 = loc.getBlockX() - tamanho / 2; x2 <= loc.getBlockX() - tamanho / 2 + tamanho; x2++)
      {
        Block xb = w.getHighestBlockAt(x2, loc.getBlockZ() - tamanho / 2 + tamanho);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z = loc.getBlockZ() - tamanho / 2; z < loc.getBlockZ() - tamanho / 2 + tamanho; z++)
      {
        Block zb = w.getHighestBlockAt(loc.getBlockX() - tamanho / 2, z);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z2 = loc.getBlockZ() - tamanho / 2; z2 <= loc.getBlockZ() - tamanho / 2 + tamanho; z2++)
      {
        Block zb = w.getHighestBlockAt(loc.getBlockX() - tamanho / 2 + tamanho, z2);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
    }
    else if (getConfig().getBoolean("Alinhar"))
    {
      for (int x = loc.getBlockX() - tamanho / 2; x < loc.getBlockX() - tamanho / 2 + tamanho; x++)
      {
        Block xb = w.getBlockAt(x, loc.getBlockY(), loc.getBlockZ() - tamanho / 2);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int x2 = loc.getBlockX() - tamanho / 2; x2 <= loc.getBlockX() - tamanho / 2 + tamanho; x2++)
      {
        Block xb = w.getBlockAt(x2, loc.getBlockY(), loc.getBlockZ() - tamanho / 2 + tamanho);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z = loc.getBlockZ() - tamanho / 2; z < loc.getBlockZ() - tamanho / 2 + tamanho; z++)
      {
        Block zb = w.getBlockAt(loc.getBlockX() - tamanho / 2, loc.getBlockY(), z);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z2 = loc.getBlockZ() - tamanho / 2; z2 <= loc.getBlockZ() - tamanho / 2 + tamanho; z2++)
      {
        Block zb = w.getBlockAt(loc.getBlockX() - tamanho / 2 + tamanho, loc.getBlockY(), z2);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
    }
  }

  public boolean TaVenda(Player p, String area)
  {
    RegionManager rm = getWorldGuard().getRegionManager(p.getWorld());
    int x = rm.getRegion(area).getMinimumPoint().getBlockX();
    int y = rm.getRegion(area).getMinimumPoint().getBlockY();
    int z = rm.getRegion(area).getMinimumPoint().getBlockZ();
    int x1 = rm.getRegion(area).getMaximumPoint().getBlockX();
    int y1 = rm.getRegion(area).getMaximumPoint().getBlockY();
    int z1 = rm.getRegion(area).getMaximumPoint().getBlockZ();
    for (int xi = x; xi <= x1; xi++) {
      for (int yi = y; yi <= y1; yi++)
        for (int zi = z; zi <= z1; zi++)
        {
          Location l = new Location(p.getWorld(), xi, yi, zi);
          if (l.getBlock().getState().getType() != Material.SIGN_POST)
            continue;
          Sign s = (Sign)l.getBlock().getState();
          if (s.getLine(0).equalsIgnoreCase("[" + getConfig().getString("NomeDoServer") + "]"))
          {
            return true;
          }
        }
    }
    return false;
  }

  public void DelParede(Player p, int xmin, int xmax, int zmin, int zmax)
  {
    Location loc = p.getLocation();
    World w = loc.getWorld();
    for (int y = Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]); y < Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]); y++)
    {
      for (int x = xmin; x < xmax; x++)
      {
        Block xb = w.getBlockAt(x, y, zmin);
        if (xb.getTypeId() != getConfig().getInt("BlockId"))
          continue;
        xb.setTypeId(0);
      }

      for (int x2 = xmin; x2 <= xmax; x2++)
      {
        Block xb = w.getBlockAt(x2, y, zmax);
        if (xb.getTypeId() != getConfig().getInt("BlockId"))
          continue;
        xb.setTypeId(0);
      }

      for (int z1 = zmin; z1 < zmax; z1++)
      {
        Block zb = w.getBlockAt(xmin, y, z1);
        if (zb.getTypeId() != getConfig().getInt("BlockId"))
          continue;
        zb.setTypeId(0);
      }

      for (int z2 = zmin; z2 <= zmax; z2++)
      {
        Block zb = w.getBlockAt(xmax, y, z2);
        if (zb.getTypeId() != getConfig().getInt("BlockId"))
          continue;
        zb.setTypeId(0);
      }
    }
  }

  public int IfParede(Player p, int xmin, int xmax, int zmin, int zmax)
  {
    Location loc = p.getLocation();
    World w = loc.getWorld();
    for (int y = Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]); y < Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]); y++)
    {
      for (int x = xmin; x < xmax; x++)
      {
        Block xb = w.getBlockAt(x, y, zmin);
        if (xb.getTypeId() == getConfig().getInt("BlockId"))
        {
          return xb.getY();
        }
      }
      for (int x2 = xmin; x2 <= xmax; x2++)
      {
        Block xb = w.getBlockAt(x2, y, zmax);
        if (xb.getTypeId() == getConfig().getInt("BlockId"))
        {
          return xb.getY();
        }
      }
      for (int z1 = zmin; z1 < zmax; z1++)
      {
        Block zb = w.getBlockAt(xmin, y, z1);
        if (zb.getTypeId() == getConfig().getInt("BlockId"))
        {
          return zb.getY();
        }
      }
      for (int z2 = zmin; z2 <= zmax; z2++)
      {
        Block zb = w.getBlockAt(xmax, y, z2);
        if (zb.getTypeId() == getConfig().getInt("BlockId"))
        {
          return zb.getY();
        }
      }
    }
    return 0;
  }

  public void ParedeEx(Player p, int xmin, int xmax, int zmin, int zmax, int y)
  {
    Location loc = p.getLocation();
    World w = loc.getWorld();
    if (!getConfig().getBoolean("Alinhar"))
    {
      for (int x = xmin; x < xmax; x++)
      {
        Block xb = w.getHighestBlockAt(x, zmin);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int x2 = xmin; x2 <= xmax; x2++)
      {
        Block xb = w.getHighestBlockAt(x2, zmax);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z1 = zmin; z1 < zmax; z1++)
      {
        Block zb = w.getHighestBlockAt(xmin, z1);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z2 = zmin; z2 <= zmax; z2++)
      {
        Block zb = w.getHighestBlockAt(xmax, z2);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
    }
    else
    {
      for (int x = xmin; x < xmax; x++)
      {
        Block xb = w.getBlockAt(x, y, zmin);
        xb.setType(Material.FENCE);
      }
      for (int x2 = xmin; x2 <= xmax; x2++)
      {
        Block xb = w.getBlockAt(x2, y, zmax);
        xb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z1 = zmin; z1 < zmax; z1++)
      {
        Block zb = w.getBlockAt(xmin, y, z1);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
      for (int z2 = zmin; z2 <= zmax; z2++)
      {
        Block zb = w.getBlockAt(xmax, y, z2);
        zb.setTypeId(getConfig().getInt("BlockId"));
      }
    }
  }

  public void EExpandir(Player player, int xmin, int xmax, int zmin, int zmax, String area, String tamanho)
  {
    RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
    BlockVector bv1 = new BlockVector(xmin - Integer.parseInt(tamanho), Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), zmin - Integer.parseInt(tamanho));
    BlockVector bv2 = new BlockVector(xmax + Integer.parseInt(tamanho), Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), zmax + Integer.parseInt(tamanho));
    ProtectedCuboidRegion pcr = new ProtectedCuboidRegion(player.getName().toLowerCase() + "_" + area, bv1, bv2);
    DefaultDomain dd = new DefaultDomain();
    mgr.addRegion(pcr);
    try {
      mgr.save();
    } catch (ProtectionDatabaseException e) {
      player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
    ApplicableRegionSet regions = mgr.getApplicableRegions(pcr);
    LocalPlayer localPlayer = getWorldGuard().wrapPlayer(player);
    if (!regions.isOwnerOfAll(localPlayer))
    {
      player.sendMessage(ChatColor.DARK_RED + "Ja existe outro terreno nos limites de sua area, afaste-se.");
      mgr.removeRegion(player.getName().toLowerCase() + "_" + area);
      BlockVector bv1n = new BlockVector(xmin, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), zmin);
      BlockVector bv2n = new BlockVector(xmax, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), zmax);
      pcr.setMaximumPoint(bv2n);
      pcr.setMinimumPoint(bv1n);
      mgr.addRegion(pcr);
      try {
        pcr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), player, "allow"));
        pcr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(getWorldGuard(), player, "deny"));
        pcr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(getWorldGuard(), player, "deny"));
        pcr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(getWorldGuard(), player, "deny"));
      }
      catch (InvalidFlagFormat ex) {
        player.sendMessage("[HkTerrenos] Erro ao selecionar flasgs, contate um administrador.");
      }
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return;
    }
    pcr.setPriority(100);
    dd.addPlayer(player.getName());
    pcr.setOwners(dd);
    ParedeEx(player, xmin - 1, xmax + 1, zmin - 1, zmax + 1, IfParede(player, xmin, xmax, zmin, zmax));
    DelParede(player, xmin, xmax, zmin, zmax);
    econ.withdrawPlayer(player.getName(), Double.parseDouble(tamanho) * getConfig().getDouble("PrecoDaExpancao"));
    player.sendMessage(ChatColor.AQUA + "Sua area " + ChatColor.DARK_RED + area + ChatColor.AQUA + " foi expandida com sucesso " + ChatColor.DARK_RED + 
      "[" + getConfig().getString("NomeDaMoeda") + Double.parseDouble(tamanho) * getConfig().getDouble("PrecoDaExpancao") + "]");
    try
    {
      pcr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), player, "allow"));
      pcr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(getWorldGuard(), player, "deny"));
      pcr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(getWorldGuard(), player, "deny"));
      pcr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(getWorldGuard(), player, "deny"));
    }
    catch (InvalidFlagFormat ex) {
      player.sendMessage("[HkTerrenos] Erro ao selecionar flasgs, contate um administrador.");
    }
    try {
      mgr.save();
    } catch (ProtectionDatabaseException e) {
      player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
  }

  public void Expandir(Player player, int xmin, int xmax, int zmin, int zmax, String area, String tamanho)
  {
    RegionManager mgr = getWorldGuard().getRegionManager(player.getWorld());
    BlockVector bv1 = new BlockVector(xmin - Integer.parseInt(tamanho), Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), zmin - Integer.parseInt(tamanho));
    BlockVector bv2 = new BlockVector(xmax + Integer.parseInt(tamanho), Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), zmax + Integer.parseInt(tamanho));
    ProtectedCuboidRegion pr = new ProtectedCuboidRegion(player.getName().toLowerCase() + "_" + area, bv1, bv2);
    DefaultDomain dd = new DefaultDomain();
    mgr.addRegion(pr);
    pr.setPriority(100);
    dd.addPlayer(player.getName());
    pr.setOwners(dd);
    try {
      pr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), player, "allow"));
      pr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(getWorldGuard(), player, "deny"));
      pr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(getWorldGuard(), player, "deny"));
      pr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(getWorldGuard(), player, "deny"));
    } catch (InvalidFlagFormat e1) {
      player.sendMessage(ChatColor.DARK_RED + "Erro ao tentar editar flags da area.");
    }
    ApplicableRegionSet regions = mgr.getApplicableRegions(pr);
    LocalPlayer localPlayer = getWorldGuard().wrapPlayer(player);

    if ((!regions.isOwnerOfAll(localPlayer)) && (!player.isOp()))
    {
      player.sendMessage(ChatColor.DARK_RED + "Ja existe outro terreno nos limites de sua area, afaste-se.");
      mgr.removeRegion(player.getName().toLowerCase() + "_" + area);
      BlockVector bv1n = new BlockVector(xmin, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), zmin);
      BlockVector bv2n = new BlockVector(xmax, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), zmax);
      pr.setMaximumPoint(bv2n);
      pr.setMinimumPoint(bv1n);
      mgr.addRegion(pr);
      try {
        pr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), player, "allow"));
        pr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(getWorldGuard(), player, "deny"));
        pr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(getWorldGuard(), player, "deny"));
        pr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(getWorldGuard(), player, "deny"));
      }
      catch (InvalidFlagFormat ex) {
        player.sendMessage("[HkTerrenos] Erro ao selecionar flasgs, contate um administrador.");
      }
      try {
        mgr.save();
      } catch (ProtectionDatabaseException e) {
        player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
      }
      return;
    }
    try
    {
      mgr.save();
    } catch (ProtectionDatabaseException e) {
      player.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
    ParedeEx(player, xmin - 1, xmax + 1, zmin - 1, zmax + 1, IfParede(player, xmin, xmax, zmin, zmax));
    DelParede(player, xmin, xmax, zmin, zmax);
    econ.withdrawPlayer(player.getName(), Double.parseDouble(tamanho) * getConfig().getDouble("PrecoDaExpancao"));
    player.sendMessage(ChatColor.AQUA + "Sua area " + ChatColor.DARK_RED + area + ChatColor.AQUA + " foi expandida com sucesso " + ChatColor.DARK_RED + 
      "[" + getConfig().getString("NomeDaMoeda") + Double.parseDouble(tamanho) * getConfig().getDouble("PrecoDaExpancao") + "]");
  }

  public void comprar(Player p, int x, int z, String area) {
    RegionManager rm = getWorldGuard().getRegionManager(p.getWorld());
    if (ExisteArea(p.getName().toLowerCase() + "_" + area.toLowerCase(), p.getWorld().getName()))
    {
      p.sendMessage(ChatColor.DARK_RED + "Voce ja tem uma area com o nome de " + ChatColor.YELLOW + area.toLowerCase());
      return;
    }

    Location loc2 = p.getLocation();
    int locx2 = loc2.getBlockX();
    int locz2 = loc2.getBlockZ();
    BlockVector bv12 = new BlockVector(locx2 - x - 1, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), locz2 - z - 1);
    BlockVector bv22 = new BlockVector(locx2 + x + 1, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), locz2 + z + 1);
    ProtectedCuboidRegion pr2 = new ProtectedCuboidRegion(p.getName().toLowerCase() + "_" + area, bv12, bv22);
    DefaultDomain dd2 = new DefaultDomain();
    rm.addRegion(pr2);
    pr2.setPriority(100);
    dd2.addPlayer(p.getName());
    pr2.setOwners(dd2);
    System.out.println("debug");
    ApplicableRegionSet regions2 = rm.getApplicableRegions(pr2);
    LocalPlayer localPlayer2 = getWorldGuard().wrapPlayer(p);
    if ((!regions2.isOwnerOfAll(localPlayer2)) && (!p.isOp()))
    {
      p.sendMessage(ChatColor.DARK_RED + "Ja existe outro terreno nos limites de sua area, afaste-se.");
      rm.removeRegion(p.getName().toLowerCase() + "_" + area);
      return;
    }
    System.out.println("debug");
    rm.removeRegion(p.getName().toLowerCase() + "_" + area);

    Location loc = p.getLocation();
    int locx = loc.getBlockX();
    int locz = loc.getBlockZ();
    BlockVector bv1 = new BlockVector(locx - x / 2, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[1]), locz - z / 2);
    BlockVector bv2 = new BlockVector(locx + x / 2, Integer.parseInt(getConfig().getString("AlturaMaxEMin").split("-")[0]), locz + z / 2);
    ProtectedCuboidRegion pr = new ProtectedCuboidRegion(p.getName().toLowerCase() + "_" + area, bv1, bv2);
    DefaultDomain dd = new DefaultDomain();
    rm.addRegion(pr);
    pr.setPriority(100);
    dd.addPlayer(p.getName());
    pr.setOwners(dd);
    System.out.println("debug");
    try {
      pr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(getWorldGuard(), p, "allow"));
      pr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(getWorldGuard(), p, "deny"));
      pr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(getWorldGuard(), p, "deny"));
      pr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(getWorldGuard(), p, "deny"));
    } catch (InvalidFlagFormat e1) {
      p.sendMessage(ChatColor.DARK_RED + "Erro ao tentar editar flags da area.");
    }
    System.out.println("debug");
    ApplicableRegionSet regions = rm.getApplicableRegions(pr);
    LocalPlayer localPlayer = getWorldGuard().wrapPlayer(p);
    if (econ.getBalance(p.getName()) < x * getConfig().getDouble("PrecoDoBloco"))
    {
      p.sendMessage(ChatColor.DARK_RED + "Voce nao tem dinheiro o suficiente para este terreno. [" + getConfig().getString("NomeDaMoeda") + x * getConfig().getDouble("PrecoDoBloco") + "]");
      rm.removeRegion(p.getName().toLowerCase() + "_" + area);
      return;
    }

    System.out.println("debug");
    if ((!regions.isOwnerOfAll(localPlayer)) && (!p.isOp()))
    {
      p.sendMessage(ChatColor.DARK_RED + "Ja existe outro terreno nos limites de sua area, afaste-se.");
      rm.removeRegion(p.getName().toLowerCase() + "_" + area);
      return;
    }
    try
    {
      rm.save();
    } catch (ProtectionDatabaseException e) {
      p.sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
    }
    Parede(p, x);
    p.sendMessage(ChatColor.AQUA + "Voce Comprou uma area com sucesso, Parabens, " + getConfig().getString("NomeDaMoeda") + x * getConfig().getDouble("PrecoDoBloco"));
    p.sendMessage(ChatColor.AQUA + "AreaID: " + ChatColor.DARK_RED + area + ChatColor.AQUA + " Tamanho: " + ChatColor.RED + x + ChatColor.AQUA + " x " + ChatColor.RED + z + ChatColor.AQUA);
    System.out.println("debug");
    econ.withdrawPlayer(p.getName(), x * getConfig().getDouble("PrecoDoBloco"));
  }

  class BlockListener
    implements Listener
  {
    BlockListener()
    {
    }

    @EventHandler
    public void OnBlockB(BlockBreakEvent e)
    {
      if (e.getBlock().getType() == Material.SIGN_POST)
      {
        Sign s = (Sign)e.getBlock().getState();
        if (s.getLine(0).equalsIgnoreCase("[" + Main.this.getConfig().getString("NomeDoServer") + "]"))
        {
          e.getPlayer().sendMessage(ChatColor.GREEN + "Voce cancelou a venda desta area");
        }
      }
    }
  }

  class CommandListener
    implements Listener
  {
    CommandListener()
    {
    }

    @EventHandler
    public void OnCommand(PlayerCommandPreprocessEvent e)
    {
      Player player = e.getPlayer();
      RegionManager rm = Main.this.getWorldGuard().getRegionManager(player.getWorld());
      ApplicableRegionSet set = rm.getApplicableRegions(player.getLocation());
      if (set.size() == 0) return;
      set.toString().toLowerCase();
      String id = ((ProtectedRegion)set.iterator().next()).getId();
      if ((!player.getName().equalsIgnoreCase(rm.getRegion(id).getOwners().toUserFriendlyString())) && (!player.getName().toLowerCase().contains(rm.getRegion(id).getMembers().toUserFriendlyString())))
      {
        String s = e.getMessage().toLowerCase();
        if (s.startsWith("/sethome"))
        {
          e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce so pode usar este comando em suas areas ou em areas nao protegidas.");
          e.setCancelled(true);
        }
      }
    }
  }

  class InteractListener
    implements Listener
  {
    InteractListener()
    {
    }

    @EventHandler
    public void EstaTerreno(PlayerInteractEvent e)
    {
      RegionManager rm = Main.this.getWorldGuard().getRegionManager(e.getPlayer().getWorld());

      if (e.getAction() == Action.RIGHT_CLICK_BLOCK)
      {
        if (e.getClickedBlock().getType() == Material.SIGN_POST)
        {
          Sign s = (Sign)e.getClickedBlock().getState();
          if (s.getLine(0).equalsIgnoreCase("[" + Main.this.getConfig().getString("NomeDoServer") + "]"))
          {
            if (!e.getPlayer().hasPermission("hkterrenos.use"))
            {
              e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce nao pode usar a proteçao neste mundo!");
              e.setCancelled(true);
              return;
            }
            if ((!e.getPlayer().isOp()) && 
              (Main.this.getTamanho(e.getPlayer().getName(), e.getPlayer().getWorld().getName()) >= Main.this.getConfig().getInt("MaxDeAreas")))
            {
              boolean tem = false;
              for (int i = 1; i < 50; i++) {
                if (e.getPlayer().hasPermission("hkterrenos." + i)) {
                  if (Main.this.getTamanho(e.getPlayer().getName(), e.getPlayer().getWorld().getName()) >= i) {
                    e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce so pode ter no maximo " + i + " terrenos");
                    return;
                  }

                  tem = true;
                  break;
                }

              }

              if (!tem)
              {
                e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce so pode ter no maximo " + Main.this.getConfig().getInt("MaxDeAreas") + " terrenos");
                return;
              }
            }
            ApplicableRegionSet sa = rm.getApplicableRegions(e.getClickedBlock().getLocation());
            if (s.getLine(2).equalsIgnoreCase(e.getPlayer().getName())) return;
            if (Main.econ.getBalance(e.getPlayer().getName()) < Double.parseDouble(s.getLine(3)))
            {
              e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce nao tem dinheiro o suficiente para comprar este terreno!");
              return;
            }
            sa.toString().toLowerCase();
            String area = ((ProtectedRegion)sa.iterator().next()).getId();
            String narea = area;
            if (Main.this.ExisteArea(e.getPlayer().getName().toLowerCase() + "_" + area.split("_")[(area.split("_").length - 1)], e.getPlayer().getWorld().getName()))
            {
              for (int i = 1; i <= 50; i++)
              {
                if (Main.this.ExisteArea(e.getPlayer().getName().toLowerCase() + "_" + area.split("_")[(area.split("_").length - 1)] + i, e.getPlayer().getWorld().getName()))
                  continue;
                narea = area + i;
                break;
              }
            }

            ProtectedCuboidRegion pr = new ProtectedCuboidRegion(e.getPlayer().getName().toLowerCase() + "_" + narea.split("_")[(narea.split("_").length - 1)], rm.getRegion(area).getMaximumPoint(), rm.getRegion(area).getMinimumPoint());
            rm.addRegion(pr);
            pr.setPriority(100);
            rm.getRegion(e.getPlayer().getName().toLowerCase() + "_" + area.split("_")[(area.split("_").length - 1)]).getOwners().addPlayer(e.getPlayer().getName());
            RegionManager mgr = Main.this.getWorldGuard().getGlobalRegionManager().get(e.getPlayer().getWorld());
            mgr.removeRegion(area);
            try {
              pr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(Main.this.getWorldGuard(), e.getPlayer(), "allow"));
              pr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(Main.this.getWorldGuard(), e.getPlayer(), "deny"));
              pr.setFlag(DefaultFlag.ENDER_BUILD, DefaultFlag.ENDER_BUILD.parseInput(Main.this.getWorldGuard(), e.getPlayer(), "deny"));
              pr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(Main.this.getWorldGuard(), e.getPlayer(), "deny"));
            }
            catch (InvalidFlagFormat ex) {
              e.getPlayer().sendMessage("[HkTerrenos] Erro ao selecionar flasgs, contate um administrador.");
            }

            e.getPlayer().sendMessage(ChatColor.GREEN + "Terreno comprado com sucesso!");
            Main.econ.withdrawPlayer(e.getPlayer().getName(), Double.parseDouble(s.getLine(3)));
            Main.econ.bankDeposit(s.getLine(2), Double.parseDouble(s.getLine(3)));
            s.getBlock().setTypeId(0);
            try {
              rm.save();
            } catch (ProtectionDatabaseException ex) {
              e.getPlayer().sendMessage(ChatColor.DARK_RED + "Algo deu errado ao tentar salvar a regiao.");
            }
          }
        }
      }
    }
  }

  class SignListener
    implements Listener
  {
    SignListener()
    {
    }

    @EventHandler
    public void OnSign(SignChangeEvent e)
    {
      if (e.getLine(0).equalsIgnoreCase("[" + Main.this.getConfig().getString("NomeDoServer") + "]"))
      {
        System.out.println(e.getLine(0) + " " + Main.this.getConfig().getString("NomeDoServer"));
        e.setCancelled(true);
        e.getPlayer().sendMessage(ChatColor.DARK_RED + "Voce nao pode fazer uma venda manualmente!");
      }
    }
  }
}

E esse o plugin.yml

############################################
#	      Criado Por HardcoreKiller        #
#            Para Uso Do Server            #
#                BrCraft                   #
############################################
name: HkTerrenos
main: Terrenos.Main
version: 0.5
depend: [WorldGuard, WorldEdit, Vault]
commands:
   terreno comprar:
      usage: /terreno comprar [tamanho] [area]  
   terreno vender: 
      usage: /terreno vender [area]        
   terreno addamigo:
      usage: /terreno addamigo [player] [area]
   terreno delamigo:
      usage: /terreno delamigo [player] [area]  
   terreno pvparea:
      usage: /terreno pvparea [Area] [ON OFF]
   Terrenos:
      description: veja o menu de comandos
      usage: /terrenos [arg]
   terreno areamsg:
      usage: /terreno areamsg [area] [menssagem]
   terreno areas:
      description: veja sua lista de areas
      usage: /terreno areas 
   terreno infoarea:
      usage: /terreno infoarea    
   terreno delete:
      usage: /terreno delarea          
   terreno expandir:
      usage: /terreno expandir         
                 
            
      

Editado por BrCraft
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

Guest Lüigi.jar

Era só o código dos cmd KKKK

 

 Mano, se não me engano, no plugin.yml não se registra os args, tipo, se o cmd é TERRENO OI, vc só registra o TERRENO, e mesma coisa no código, você não pode fazer tipo isso

if(cmd.getName.equalsIgnoreCase("terreno oi")){}

 no codigo a gente faz assim:

if(cmd.getName().equalsIgnoreCase("Terreno"){
 if(args[0].equalsIgnoreCase("oi"){//args[0] vai pegar o primeiro argumento dps do Terreno
  //código
}
} 
Link para o comentário
Compartilhar em outros sites

Movido para a área correta.

@tpc

 

Manda como esta o código inteiro?

 Registrou no plugin yml?

 

 Algum staff muda isso pra area certa?

Creio eu que ele queira adicionar argumentos (/terreno comprar, etc...)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...