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:
PlayerCampoHoldercontendo os dados de campo do jogador ounullse não encontrado
Observações:
- Recupera dados em cache do sistema principal
- Retorna
nullse 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
nullao 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("═══════════════════════════");
}