Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Vault


Guest » MickCraft » xKizame »

Pergunta

Guest » MickCraft » xKizame »

Como eu faço para jogador usar o comando apenas se estiver X quantidade de dinheiro na conta?

 

Eu sei remover e adicionar mas n sei fazer esse método.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

Crie uma classe chamada CommandCost.java: 

public class CommandCost
{
   private final String command;
   private final double cost;

   public CommandCost(String command, double cost)
   {
      this.command = command;
      this.cost = cost;
   }

   public String getCommand()
   {
      return this.command;
   }
   
   public double getCost()
   {
      return this.cost;
   }
}

E um CommandCostManager.java

public class CommandCostManager implements Listener
{
   private final Economy economy; //Vault economy
   private final List<CommandCost> commandCostList;

   public CommandCostManager(Economy economy)
   {
      this.economy = economy;
      this.commandCostList = new ArrayList();
   }

   public void addCommandCost(String command, double cost)
   {
      commandCostList.add(new CommandCost(command.toLowerCase(),cost));
   }

   public CommandCost getCommandCost(String command)
   {
      for(CommandCost commandCost : commandCostList)
      {
         if(commandCost.getCommand().equals(command)
         {
            return commandCost;
         }
      }
      return null;
   }

   @EventHandler
   public void commandPreprocess(PlayerCommandPreprocessEvent event)
   {
      String command = event.getMessage().split(" ")[0].substring(1).toLowerCase();
      //Não suporta aliases, então, tome cuidado '-'
      
      CommandCost commandCost = getCommandCost(command);

      if(commandCost == null) return;

      if(commandCost.getCost() > economy.getBalance(event.getPlayer().getName()))
      {
         event.setCancelled(true);
         event.getPlayer().sendMessage("§cVocê precisa ter " + commandCost.getCost() + " para executar este comando.");
      }
   }
}

CommandCostManager commandCostManager = new CommandCostManager();

 

Registra a listener commandCostManager

e para adicionar um comando, use commandCostManager.addCommandCost("comando", valor);

Desnecessário tudo isso '-'

 

 

Como eu faço para jogador usar o comando apenas se estiver X quantidade de dinheiro na conta?

 

Eu sei remover e adicionar mas n sei fazer esse método.

int custo = 5000;

if (economy.getBalance(p.getName()) >+ custo){
p.sendMessage("Você precisa ter 5000 coins ou mais para fazer isso.");
}
Link para o comentário
Compartilhar em outros sites

Guest ~iNotLinduh.

De Uma Olhada... [ CLIQUE AQUI ] Esse Também [ VAULT-API ]

Você Usa A Condição "if" Pra Verificar Se O Money Que O Player Tem É Maior-Igual A Uma Quantia...(Ou Menor-Igual, Da No Mesmo).
Exemplo:

 

Player p = (Player) sender;
if(econ.getBalance(p.getName()) >= 1000) {
p.sendMessage("§aVoce Tem:§f" +econ.getBalance(p.getName()));
} else {
p.sendMessage("§cVoce Tem Menos De 1K");

return true;
}

//Algo Deve Estar Errado, Fiz De Cabeça .-.

Editado por ~iNotLinduh.
Link para o comentário
Compartilhar em outros sites

Crie uma classe chamada CommandCost.java: 

public class CommandCost
{
   private final String command;
   private final double cost;

   public CommandCost(String command, double cost)
   {
      this.command = command;
      this.cost = cost;
   }

   public String getCommand()
   {
      return this.command;
   }
   
   public double getCost()
   {
      return this.cost;
   }
}

E um CommandCostManager.java

public class CommandCostManager implements Listener
{
   private final Economy economy; //Vault economy
   private final List<CommandCost> commandCostList;

   public CommandCostManager(Economy economy)
   {
      this.economy = economy;
      this.commandCostList = new ArrayList();
   }

   public void addCommandCost(String command, double cost)
   {
      commandCostList.add(new CommandCost(command.toLowerCase(),cost));
   }

   public CommandCost getCommandCost(String command)
   {
      for(CommandCost commandCost : commandCostList)
      {
         if(commandCost.getCommand().equals(command)
         {
            return commandCost;
         }
      }
      return null;
   }

   @EventHandler
   public void commandPreprocess(PlayerCommandPreprocessEvent event)
   {
      String command = event.getMessage().split(" ")[0].substring(1).toLowerCase();
      //Não suporta aliases, então, tome cuidado '-'
      
      CommandCost commandCost = getCommandCost(command);

      if(commandCost == null) return;

      if(commandCost.getCost() > economy.getBalance(event.getPlayer().getName()))
      {
         event.setCancelled(true);
         event.getPlayer().sendMessage("§cVocê precisa ter " + commandCost.getCost() + " para executar este comando.");
      }
   }
}

CommandCostManager commandCostManager = new CommandCostManager();

 

Registra a listener commandCostManager

e para adicionar um comando, use commandCostManager.addCommandCost("comando", valor);

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

Só fiz um sistema para o cara ter uma ideia, o cara podia pegar o que queria dali, mas já que nem leu, problema é dele.

 

Tentei dar mais opções, e quando alguém faz isso, só se ferra...

 

é a vida...

Link para o comentário
Compartilhar em outros sites

logo-forum.png




Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.


Atenciosamente,
Gamer's Board

logo-forum.png




Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.


Atenciosamente,
Gamer's Board
Link para o comentário
Compartilhar em outros sites

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