FreeMinecraftModels API 与开发者指南
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);
如果请求的模型 ID 没有被加载,这三种创建方式都会返回 null。
实用运行时方法
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 的内部状态。