API
A API fornece uma interface pública para desenvolvedores integrarem seus plugins ao sistema de criptomoedas do yCriptos.
Obtendo a instância da API
A API é exposta através de um BukkitService assim como feito comumente no Vault.
Exemplo:
CryptoAPIHolder cryptoAPI;
try {
RegisteredServiceProvider<CryptoAPIHolder> rsp = Bukkit.getServer().getServicesManager().getRegistration(CryptoAPIHolder.class);
return rsp == null ? null : (CryptoAPIHolder)rsp.getProvider();
} catch (Throwable t) {
return null;
}Métodos disponíveis
existsCrypto(String key)
Verifica se uma criptomoeda está cadastrada.
boolean exists = cryptoAPI.existsCrypto("bitcoin");Parâmetros:
key- Chave da criptomoeda configurada no plugin.
Retorno:
truese a criptomoeda existe,falsecaso contrário.
getCryptoKeys()
Retorna todas as chaves de criptomoedas cadastradas.
Set<String> keys = cryptoAPI.getCryptoKeys();Retorno:
Set<String>com as chaves das criptomoedas.
getCrypto(String key)
Obtém os dados de uma criptomoeda cadastrada.
CryptoHolder crypto = cryptoAPI.getCrypto("bitcoin");Parâmetros:
key- Chave da criptomoeda.
Retorno:
CryptoHoldercom os dados da criptomoeda ounullse ela não existir.
getCurrentPrice(String cryptoKey)
Retorna o preço atual de uma criptomoeda.
double price = cryptoAPI.getCurrentPrice("bitcoin");Parâmetros:
cryptoKey- Chave da criptomoeda.
Retorno:
- Preço atual da criptomoeda.
getPlayerAmount(UUID uuid, String cryptoKey)
Retorna a quantidade que um jogador possui de uma criptomoeda específica.
double amount = cryptoAPI.getPlayerAmount(player.getUniqueId(), "bitcoin");Parâmetros:
uuid- UUID do jogador.cryptoKey- Chave da criptomoeda.
Retorno:
- Quantidade da criptomoeda na carteira do jogador.
getPlayerPortfolio(UUID uuid)
Retorna a carteira completa de criptomoedas de um jogador.
Map<String, Double> portfolio = cryptoAPI.getPlayerPortfolio(player.getUniqueId());Parâmetros:
uuid- UUID do jogador.
Retorno:
Map<String, Double>onde a chave é a criptomoeda e o valor é a quantidade do jogador.
getPlayerPortfolioValue(UUID uuid)
Retorna o valor total da carteira do jogador com base nos preços atuais.
double value = cryptoAPI.getPlayerPortfolioValue(player.getUniqueId());Parâmetros:
uuid- UUID do jogador.
Retorno:
- Valor total da carteira do jogador.
addCrypto(UUID uuid, String cryptoKey, double amount)
Adiciona uma quantidade de criptomoeda à carteira do jogador.
boolean added = cryptoAPI.addCrypto(player.getUniqueId(), "bitcoin", 0.5);Parâmetros:
uuid- UUID do jogador.cryptoKey- Chave da criptomoeda.amount- Quantidade a adicionar.
Retorno:
truese a operação foi aplicada,falsecaso contrário.
removeCrypto(UUID uuid, String cryptoKey, double amount)
Remove uma quantidade de criptomoeda da carteira do jogador.
boolean removed = cryptoAPI.removeCrypto(player.getUniqueId(), "bitcoin", 0.25);Parâmetros:
uuid- UUID do jogador.cryptoKey- Chave da criptomoeda.amount- Quantidade a remover.
Retorno:
truese a operação foi aplicada,falsecaso contrário.
Estrutura de dados
CryptoHolder
Representa os dados públicos de uma criptomoeda cadastrada.
| Método | Descrição |
|---|---|
getKey() | Retorna a chave interna da criptomoeda. |
getCoingeckoId() | Retorna o ID usado para integração com a CoinGecko. |
getDisplayName() | Retorna o nome exibido da criptomoeda. |
setDisplayName(String displayName) | Altera o nome exibido da criptomoeda em memória. |
getOrder() | Retorna a ordem de exibição configurada. |
getSellTax() | Retorna a taxa de venda da criptomoeda. |
setSellTax(double sellTax) | Altera a taxa de venda da criptomoeda em memória. |
Boas práticas
- Verifique
existsCrypto()antes de consultar ou manipular uma criptomoeda. - Valide valores negativos ou zerados antes de chamar
addCrypto()ouremoveCrypto(). - Use
UUIDdo jogador para evitar problemas com troca de nick. - Evite chamadas muito frequentes em tarefas de curto intervalo, especialmente ao consultar carteiras de muitos jogadores.