LogoyStore

API

A API fornece uma interface pública para desenvolvedores integrarem seus plugins ao sistema de AFK do yAFK, permitindo consultar dados de jogadores AFK e suas informações associadas.

Obtendo a instância da API

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

Exemplo:

AfkAPIHolder afkAPI;

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

Métodos disponíveis

retrievePlayer(String player)

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

PlayerAFKHolder playerAFK = afkAPI.retrievePlayer("Steve");

Parâmetros:

  • player - Nome do jogador

Retorno:

  • PlayerAFKHolder contendo os dados de AFK 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 AFK registrados
  • O resultado é recuperado diretamente do cache, não do banco de dados

Estrutura de dados

PlayerAFKHolder

Representa os dados de AFK de um jogador.

Propriedades principais:

  • Status de AFK (ativo/inativo)
  • Tempo de AFK
  • Informações do jogador associadas
  • Dados de rastreamento de inatividade

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

Exemplos de uso

Verificando status AFK de um jogador

PlayerAFKHolder playerAFK = afkAPI.retrievePlayer("Steve");
if (playerAFK != null) {
    // Dados de AFK do jogador encontrados
    // Processe as informações necessárias
}

Integrando com sistemas de recompensas

PlayerAFKHolder playerAFK = afkAPI.retrievePlayer(player.getName());
if (playerAFK != null && playerAFK.isAFK()) {
    // Aplicar lógica para jogadores em AFK
}

Obtendo informações de tempo AFK

PlayerAFKHolder playerData = afkAPI.retrievePlayer("Steve");
if (playerData != null) {
    long afkTime = playerData.getAFKTime();
    // Usar tempo de AFK em cálculos
}

Nesta página