跳到主要内容

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

核心运行时类型

  • ModeledEntity
  • StaticEntity
  • DynamicEntity
  • PropEntity

创建实体

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

事件接口

通用交互事件:

  • ModeledEntityLeftClickEvent
  • ModeledEntityRightClickEvent
  • ModeledEntityHitboxContactEvent
  • ModeledEntityHitByProjectileEvent

同时也为 StaticEntityDynamicEntityPropEntity 提供了类型化变体。

说明

  • FreeMinecraftModels 是对已安装插件的依赖,不是可嵌入的库。
  • 如果你的插件需要刚导入的模型,请调用 ModeledEntityManager.reload(),不要试图自己重建 FreeMinecraftModels 的内部状态。