Aller au contenu principal

Guide API et developpement de FreeMinecraftModels

FreeMinecraftModels est a la fois un plugin autonome et une surface d'API pour d'autres plugins.

Depot Maven

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

Dependance

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

Utilisez-le comme compileOnly/provided. N'incluez pas le plugin dans votre propre jar.

Points d'entree principaux

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

Types d'execution principaux

  • ModeledEntity
  • StaticEntity
  • DynamicEntity
  • PropEntity

Creer des entites

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

Les trois chemins de creation renvoient null si l'ID de modele demandee n'est pas chargee.

Methodes utiles a l'execution

  • 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()

Surface d'evenements

Evenements d'interaction generiques :

  • ModeledEntityLeftClickEvent
  • ModeledEntityRightClickEvent
  • ModeledEntityHitboxContactEvent
  • ModeledEntityHitByProjectileEvent

Des variantes typees existent aussi pour StaticEntity, DynamicEntity et PropEntity.

Notes

  • FreeMinecraftModels est une dependance de plugin installe, pas une bibliotheque integrable.
  • Si votre plugin a besoin de modeles fraichement importes, appelez ModeledEntityManager.reload() au lieu d'essayer de reconstruire vous-meme l'etat de FreeMinecraftModels.