LogoyStore

API

A API fornece uma interface pública para desenvolvedores integrarem seus plugins ao sistema de blocos customizados do yFarmBlock.

Obtendo a instância da API

A API é exposta como singleton pela classe yFarmBlockAPI (pacote com.ystoreplugins.yfarmblock.api).

Exemplo:

import com.ystoreplugins.yfarmblock.api.yFarmBlockAPI;
import org.bukkit.block.Block;

yFarmBlockAPI api;

try {
  api = yFarmBlockAPI.getInstance();
} catch (IllegalStateException e) {
  // Plugin yFarmBlock não está ativo / API não inicializada
  return;
}

A API é inicializada no onEnable do yFarmBlock. Se o plugin não estiver carregado, getInstance() lança IllegalStateException.


Métodos disponíveis

getInstance()

Obtém a instância singleton da API.

yFarmBlockAPI api = yFarmBlockAPI.getInstance();

Retorno:

  • Instância de yFarmBlockAPI

Observações:

  • Lança IllegalStateException se a API ainda não foi inicializada

setCustomBlock(Block block)

Registra um bloco como customizado com base no material-mapping do config.yml.

Block block = player.getTargetBlock(null, 5);
boolean success = api.setCustomBlock(block);

Parâmetros:

  • block — bloco a ser registrado (null retorna false)

Retorno:

  • true se registrado com sucesso
  • false se o material não está no mapping, se o bloco já está registrado ou se block é null

Observações:

  • O material do bloco (block.getType().name()) precisa existir em material-mapping na config
  • A tag salva é o valor mapeado (ex.: "cactus")
  • O registro é persistido automaticamente

isCustomBlock(Block block)

Verifica se um bloco está registrado como customizado.

if (api.isCustomBlock(block)) {
  // bloco gerenciado pelo yFarmBlock
}

Parâmetros:

  • block — bloco a verificar (null retorna false)

Retorno:

  • true se o bloco está registrado; false caso contrário

removeCustomBlock(Block block)

Remove o registro de um bloco customizado.

boolean removed = api.removeCustomBlock(block);

Parâmetros:

  • block — bloco a remover do registro (null retorna false)

Retorno:

  • true se removido com sucesso
  • false se não estava registrado ou se block é null

Observações:

  • A alteração é persistida automaticamente
  • Não quebra o bloco no mundo; apenas remove o registro interno

getCustomBlockType(Block block)

Retorna o tipo/tag do bloco customizado.

String type = api.getCustomBlockType(block);
if (type != null) {
  // ex.: "cactus"
}

Parâmetros:

  • block — bloco a verificar (null retorna null)

Retorno:

  • Tag do bloco (ex.: "cactus") ou null se não for customizado

Exemplo de integração

import com.ystoreplugins.yfarmblock.api.yFarmBlockAPI;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;

public class FarmBlockHook implements Listener {

  @EventHandler
  public void onPlace(BlockPlaceEvent event) {
    yFarmBlockAPI api;
    try {
      api = yFarmBlockAPI.getInstance();
    } catch (IllegalStateException e) {
      return;
    }

    Block block = event.getBlockPlaced();
    Player player = event.getPlayer();

    if (api.setCustomBlock(block)) {
      player.sendMessage("§aBloco registrado como farm customizada: §f"
          + api.getCustomBlockType(block));
    }
  }
}

Dependência softdepend

No plugin.yml do seu plugin:

softdepend: [yFarmBlock]

Compile com o JAR do yFarmBlock no classpath para acessar com.ystoreplugins.yfarmblock.api.yFarmBlockAPI.

Nesta página