Guia de API y desarrollo de FreeMinecraftModels
FreeMinecraftModels es tanto un plugin independiente como una superficie de API para otros 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>
Usalo como compileOnly/provided. No empaquetes el plugin dentro de tu propio jar.
Puntos de entrada principales
ModeledEntityManager.modelExists(String)ModeledEntityManager.reload()ModeledEntityManager.getAllEntities()ModeledEntityManager.getDynamicEntities()ModeledEntityManager.propEntities()
Tipos principales en tiempo de ejecucion
ModeledEntityStaticEntityDynamicEntityPropEntity
Crear entidades
StaticEntity preview = StaticEntity.create("example_model", location);
DynamicEntity mobModel = DynamicEntity.create("example_model", livingEntity);
PropEntity prop = PropEntity.spawnPropEntity("example_model", location);
Las tres rutas de creacion devuelven null si la ID de modelo solicitada no esta cargada.
Metodos utiles en tiempo de ejecucion
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 de interaccion genericos:
ModeledEntityLeftClickEventModeledEntityRightClickEventModeledEntityHitboxContactEventModeledEntityHitByProjectileEvent
Tambien existen variantes tipadas para StaticEntity, DynamicEntity y PropEntity.
Notas
- FreeMinecraftModels es una dependencia de plugin instalado, no una biblioteca para incrustar.
- Si tu plugin necesita modelos recien importados, llama a
ModeledEntityManager.reload()en lugar de intentar reconstruir por tu cuenta el estado de FreeMinecraftModels.