API и руководство для разработчиков FreeMinecraftModels
FreeMinecraftModels является и самостоятельным плагином, и API-поверхностью для других плагинов.
Maven-репозиторий
<repository>
<id>magmaguy-repo-releases</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>
Зависимость
<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>FreeMinecraftModels</artifactId>
<version>LATEST.VERSION.HERE</version>
<scope>provided</scope>
</dependency>
Используйте его как compileOnly / provided. Не встраивайте плагин в свой собственный jar.
Основные точки входа
ModeledEntityManager.modelExists(String)ModeledEntityManager.reload()ModeledEntityManager.getAllEntities()ModeledEntityManager.getDynamicEntities()ModeledEntityManager.propEntities()
Основные типы времени выполнения
ModeledEntityStaticEntityDynamicEntityPropEntity
Создание сущностей
StaticEntity preview = StaticEntity.create("example_model", location);
DynamicEntity mobModel = DynamicEntity.create("example_model", livingEntity);
PropEntity prop = PropEntity.spawnPropEntity("example_model", location);
Все три пути создания возвращают null, если запрошенный ID модели не загружен.
Полезные методы времени выполнения
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()
Поверхность событий
Общие события взаимодействия:
ModeledEntityLeftClickEventModeledEntityRightClickEventModeledEntityHitboxContactEventModeledEntityHitByProjectileEvent
Также существуют типизированные варианты для StaticEntity, DynamicEntity и PropEntity.
Примечания
- FreeMinecraftModels - это зависимость от установленного плагина, а не встраиваемая библиотека.
- Если вашему плагину нужны только что импортированные модели, вызывайте
ModeledEntityManager.reload(), а не пытайтесь самостоятельно пересобрать состояние FreeMinecraftModels.