メインコンテンツまでスキップ

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 が読み込まれていない場合、これら 3 つの作成経路はすべて 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 は、埋め込み用ライブラリではなく、インストール済みプラグインへの依存関係です。
  • プラグインで新しくインポートされたモデルが必要な場合は、FreeMinecraftModels の状態を自前で組み直そうとせず、ModeledEntityManager.reload() を呼び出してください。