LogoyStore

API

A API fornece uma interface pública para desenvolvedores integrarem seus plugins ao sistema de campos do yCampo, permitindo consultar dados de campos de jogadores.

Obtendo a instância da API

A API é exposta através de um BukkitService assim como feito comumente no Vault.

Exemplo:

CampoAPIHolder campoAPI;

try {
  RegisteredServiceProvider<CampoAPIHolder> rsp = Bukkit.getServer().getServicesManager().getRegistration(CampoAPIHolder.class);
  return rsp == null ? null : (CampoAPIHolder)rsp.getProvider();
} catch (Throwable t) {
  return null;
}

Métodos disponíveis

getPlayer(String playerName)

Recupera os dados de campo de um jogador específico.

PlayerCampoHolder playerCampo = campoAPI.getPlayer("Steve");

Parâmetros:

  • playerName - Nome do jogador

Retorno:

  • PlayerCampoHolder contendo os dados de campo do jogador ou null se não encontrado

Observações:

  • Recupera dados em cache do sistema principal
  • Retorna null se o jogador não possuir dados de campo registrados
  • O resultado é recuperado diretamente do cache, não do banco de dados

Estrutura de dados

PlayerCampoHolder

Representa os dados de campo de um jogador.

Propriedades principais:

  • Campos possuídos pelo jogador
  • Nível de cada campo
  • Experiência acumulada
  • Colheitas realizadas
  • Sementes plantadas
  • Dados de progresso

Boas práticas

  • Sempre verifique null ao recuperar dados de um jogador
  • Use o nome exato do jogador para melhor compatibilidade
  • Evite chamadas excessivas em eventos de alta frequência
  • Os dados retornados são do cache, não são em tempo real com o banco de dados
  • Armazene valores consultados quando possível

Exemplos de uso

Verificando progresso de campo do jogador

PlayerCampoHolder playerCampo = campoAPI.getPlayer("Steve");
if (playerCampo != null) {
    // Dados de campo do jogador encontrados
    // Processe as informações necessárias
}

Integrando com sistemas de recompensas

PlayerCampoHolder playerCampo = campoAPI.getPlayer(player.getName());
if (playerCampo != null) {
    // Verificar se jogador tem campos desbloqueados
    // Aplicar bônus ou recompensas baseado no progresso
}

Verificando dados de experiência em campos

PlayerCampoHolder playerCampo = campoAPI.getPlayer("Steve");
if (playerCampo != null) {
    // Obter experiência total em campos
    // Usar em cálculos de progressão
}

Eventos baseados em progresso de campo

@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    PlayerCampoHolder playerCampo = campoAPI.getPlayer(player.getName());
    
    if (playerCampo != null) {
        // Aplicar lógicas especiais baseado em progresso de campo
        applyFieldBonus(player, playerCampo);
    }
}

Dashboard de progresso de campo

PlayerCampoHolder playerCampo = campoAPI.getPlayer(player.getName());
if (playerCampo != null) {
    player.sendMessage("═══════════════════════════");
    player.sendMessage("PROGRESSO DE CAMPO");
    player.sendMessage("═══════════════════════════");
    // Exibir informações de campos
    player.sendMessage("═══════════════════════════");
}

Nesta página