Pular para o conteúdo principal

API e guia para programadores do FreeMinecraftModels

O FreeMinecraftModels e ao mesmo tempo um plugin autonomo e uma superficie de API para outros plugins.

Repositorio Maven

<repository>
<id>magmaguy-repo-releases</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>

Dependencia

<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>FreeMinecraftModels</artifactId>
<version>LATEST.VERSION.HERE</version>
<scope>provided</scope>
</dependency>

Use-o como compileOnly/provided. Nao inclua o plugin dentro do seu proprio jar.

Pontos de entrada principais

  • ModeledEntityManager.modelExists(String)
  • ModeledEntityManager.reload()
  • ModeledEntityManager.getAllEntities()
  • ModeledEntityManager.getDynamicEntities()
  • ModeledEntityManager.propEntities()

Tipos principais em tempo de execucao

  • ModeledEntity
  • StaticEntity
  • DynamicEntity
  • PropEntity

Criar entidades

StaticEntity preview = StaticEntity.create("example_model", location);
DynamicEntity mobModel = DynamicEntity.create("example_model", livingEntity);
PropEntity prop = PropEntity.spawnPropEntity("example_model", location);

Os tres caminhos de criacao devolvem null se o ID de modelo pedido nao estiver carregado.

Metodos uteis em tempo de execucao

  • ModeledEntity#setDisplayName(String)
  • ModeledEntity#setDisplayNameVisible(boolean)
  • ModeledEntity#setLeftClickCallback(...)
  • ModeledEntity#setRightClickCallback(...)
  • ModeledEntity#setHitboxContactCallback(...)
  • ModeledEntity#setModeledEntityHitByProjectileCallback(...)
  • ModeledEntity#playAnimation(String, boolean, boolean)
  • ModeledEntity#stopCurrentAnimations()
  • ModeledEntity#hasAnimation(String)
  • DynamicEntity#setSyncMovement(boolean)
  • Bone#getBoneLocation()

Superficie de eventos

Eventos genericos de interacao:

  • ModeledEntityLeftClickEvent
  • ModeledEntityRightClickEvent
  • ModeledEntityHitboxContactEvent
  • ModeledEntityHitByProjectileEvent

Tambem existem variantes tipadas para StaticEntity, DynamicEntity e PropEntity.

Notas

  • O FreeMinecraftModels e uma dependencia de plugin instalado, nao uma biblioteca para incorporar.
  • Se o teu plugin precisar de modelos acabados de importar, chama ModeledEntityManager.reload() em vez de tentares reconstruir tu proprio o estado do FreeMinecraftModels.