gitextract_aj8f7_rc/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── package.yml │ ├── pr-test.yml │ └── publish.yml ├── .gitignore ├── .idea/ │ └── codeStyles/ │ └── codeStyleConfig.xml ├── AGENTS.md ├── BANNER.md ├── LICENSE.md ├── LICENSE_HEADER ├── README.md ├── SECURITY.md ├── api/ │ ├── build.gradle.kts │ ├── bukkit-api/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── api/ │ │ └── bukkit/ │ │ ├── BetterModelBukkit.java │ │ ├── BukkitModelEventBus.java │ │ ├── entity/ │ │ │ ├── BaseBukkitEntity.java │ │ │ └── BaseBukkitPlayer.java │ │ ├── event/ │ │ │ ├── BetterModelBukkitEvent.java │ │ │ └── BukkitEventApplication.java │ │ ├── platform/ │ │ │ ├── BukkitAdapter.java │ │ │ ├── BukkitEntity.java │ │ │ ├── BukkitItemStack.java │ │ │ ├── BukkitLivingEntity.java │ │ │ ├── BukkitLocation.java │ │ │ ├── BukkitOfflinePlayer.java │ │ │ ├── BukkitPlayer.java │ │ │ └── BukkitWorld.java │ │ └── scheduler/ │ │ └── BukkitModelScheduler.java │ ├── mod-api/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── api/ │ │ └── mod/ │ │ ├── BetterModelMod.java │ │ ├── entity/ │ │ │ ├── BaseModEntity.java │ │ │ └── BaseModPlayer.java │ │ ├── platform/ │ │ │ ├── ModAdapter.java │ │ │ ├── ModEntity.java │ │ │ ├── ModItemStack.java │ │ │ ├── ModLivingEntity.java │ │ │ ├── ModLocation.java │ │ │ ├── ModOfflinePlayer.java │ │ │ ├── ModPlayer.java │ │ │ ├── ModRegionHolder.java │ │ │ └── ModWorld.java │ │ └── scheduler/ │ │ └── ModModelScheduler.java │ └── src/ │ └── main/ │ └── java/ │ └── kr/ │ └── toxicity/ │ └── model/ │ └── api/ │ ├── BetterModel.java │ ├── BetterModelConfig.java │ ├── BetterModelEvaluator.java │ ├── BetterModelEventBus.java │ ├── BetterModelLogger.java │ ├── BetterModelPlatform.java │ ├── animation/ │ │ ├── AnimationIterator.java │ │ ├── AnimationKeyframe.java │ │ ├── AnimationModifier.java │ │ ├── AnimationOverrideState.java │ │ ├── AnimationProgress.java │ │ ├── AnimationStateHandler.java │ │ ├── RunningAnimation.java │ │ ├── Timed.java │ │ ├── TimedStorage.java │ │ └── VectorPoint.java │ ├── armor/ │ │ ├── ArmorItem.java │ │ └── PlayerArmor.java │ ├── bone/ │ │ ├── BoneEventDispatcher.java │ │ ├── BoneEventHandler.java │ │ ├── BoneIKSolver.java │ │ ├── BoneItemMapper.java │ │ ├── BoneMovement.java │ │ ├── BoneName.java │ │ ├── BonePosition.java │ │ ├── BoneRenderContext.java │ │ ├── BoneTag.java │ │ ├── BoneTagRegistry.java │ │ ├── BoneTags.java │ │ └── RenderedBone.java │ ├── config/ │ │ ├── DebugConfig.java │ │ ├── IndicatorConfig.java │ │ ├── ModuleConfig.java │ │ └── PackConfig.java │ ├── data/ │ │ ├── Float2.java │ │ ├── Float3.java │ │ ├── Float4.java │ │ ├── ModelAsset.java │ │ ├── blueprint/ │ │ │ ├── AnimationGenerator.java │ │ │ ├── BlueprintAnimation.java │ │ │ ├── BlueprintAnimator.java │ │ │ ├── BlueprintElement.java │ │ │ ├── BlueprintImage.java │ │ │ ├── BlueprintJson.java │ │ │ ├── BlueprintLoadContext.java │ │ │ ├── BlueprintTexture.java │ │ │ ├── ModelBlueprint.java │ │ │ └── ModelBoundingBox.java │ │ ├── raw/ │ │ │ ├── KeyframeChannel.java │ │ │ ├── ModelAnimation.java │ │ │ ├── ModelAnimator.java │ │ │ ├── ModelData.java │ │ │ ├── ModelDatapoint.java │ │ │ ├── ModelElement.java │ │ │ ├── ModelFace.java │ │ │ ├── ModelGroup.java │ │ │ ├── ModelKeyframe.java │ │ │ ├── ModelLoadContext.java │ │ │ ├── ModelLoadResult.java │ │ │ ├── ModelMeta.java │ │ │ ├── ModelOutliner.java │ │ │ ├── ModelPlaceholder.java │ │ │ ├── ModelResolution.java │ │ │ ├── ModelTexture.java │ │ │ └── ModelUV.java │ │ └── renderer/ │ │ ├── ModelRenderer.java │ │ ├── RenderPipeline.java │ │ ├── RenderSource.java │ │ └── RendererGroup.java │ ├── entity/ │ │ ├── BaseEntity.java │ │ └── BasePlayer.java │ ├── event/ │ │ ├── AnimationSignalEvent.java │ │ ├── CancellableEvent.java │ │ ├── CloseTrackerEvent.java │ │ ├── CreateDummyTrackerEvent.java │ │ ├── CreateEntityTrackerEvent.java │ │ ├── CreatePlayerSkinEvent.java │ │ ├── DismountModelEvent.java │ │ ├── ModelAssetsEvent.java │ │ ├── ModelDamageSource.java │ │ ├── ModelDespawnAtPlayerEvent.java │ │ ├── ModelEvent.java │ │ ├── ModelEventApplication.java │ │ ├── ModelEventListener.java │ │ ├── ModelImportedEvent.java │ │ ├── ModelSpawnAtPlayerEvent.java │ │ ├── MountModelEvent.java │ │ ├── PlayerHideTrackerEvent.java │ │ ├── PlayerPerAnimationEndEvent.java │ │ ├── PlayerPerAnimationStartEvent.java │ │ ├── PlayerShowTrackerEvent.java │ │ ├── PluginEndReloadEvent.java │ │ ├── PluginStartReloadEvent.java │ │ ├── RemovePlayerSkinEvent.java │ │ └── hitbox/ │ │ ├── HitBoxCreateEvent.java │ │ ├── HitBoxDamagedEvent.java │ │ ├── HitBoxDismountEvent.java │ │ ├── HitBoxEvent.java │ │ ├── HitBoxInteractAtEvent.java │ │ ├── HitBoxMountEvent.java │ │ └── HitBoxRemoveEvent.java │ ├── manager/ │ │ ├── ModelManager.java │ │ ├── PlayerManager.java │ │ ├── ProfileManager.java │ │ ├── ReloadInfo.java │ │ ├── ScriptManager.java │ │ └── SkinManager.java │ ├── mount/ │ │ ├── MountController.java │ │ └── MountControllers.java │ ├── nms/ │ │ ├── AnimationBundler.java │ │ ├── DisplayTransformer.java │ │ ├── HitBox.java │ │ ├── HitBoxListener.java │ │ ├── Identifiable.java │ │ ├── ModAnimationBundler.java │ │ ├── ModelDisplay.java │ │ ├── ModelInteractionHand.java │ │ ├── ModelNametag.java │ │ ├── NMS.java │ │ ├── NMSVersion.java │ │ ├── PacketBundler.java │ │ ├── PlayerChannelHandler.java │ │ └── Profiled.java │ ├── pack/ │ │ ├── PackAssets.java │ │ ├── PackBuilder.java │ │ ├── PackBuiltInAssets.java │ │ ├── PackByte.java │ │ ├── PackMeta.java │ │ ├── PackNamespace.java │ │ ├── PackObfuscator.java │ │ ├── PackOverlay.java │ │ ├── PackPath.java │ │ ├── PackResource.java │ │ ├── PackResult.java │ │ └── PackZipper.java │ ├── platform/ │ │ ├── PlatformAdapter.java │ │ ├── PlatformBillboard.java │ │ ├── PlatformEntity.java │ │ ├── PlatformItemStack.java │ │ ├── PlatformItemTransform.java │ │ ├── PlatformLivingEntity.java │ │ ├── PlatformLocation.java │ │ ├── PlatformNamespace.java │ │ ├── PlatformOfflinePlayer.java │ │ ├── PlatformPlayer.java │ │ ├── PlatformRegionHolder.java │ │ └── PlatformWorld.java │ ├── player/ │ │ ├── PlayerLimb.java │ │ └── PlayerSkinParts.java │ ├── profile/ │ │ ├── ModelProfile.java │ │ ├── ModelProfileInfo.java │ │ ├── ModelProfileSkin.java │ │ └── ModelProfileSupplier.java │ ├── scheduler/ │ │ ├── ModelScheduler.java │ │ └── ModelTask.java │ ├── script/ │ │ ├── AnimationScript.java │ │ ├── BlueprintScript.java │ │ ├── ScriptBuilder.java │ │ └── TimeScript.java │ ├── skin/ │ │ └── SkinData.java │ ├── tracker/ │ │ ├── DummyTracker.java │ │ ├── EntityBodyRotator.java │ │ ├── EntityHideOption.java │ │ ├── EntityTracker.java │ │ ├── EntityTrackerRegistry.java │ │ ├── ModelRotation.java │ │ ├── ModelRotator.java │ │ ├── ModelScaler.java │ │ ├── PlayerTracker.java │ │ ├── Tracker.java │ │ ├── TrackerAnimation.java │ │ ├── TrackerBuiltInAnimation.java │ │ ├── TrackerData.java │ │ ├── TrackerExtraAnimation.java │ │ ├── TrackerModifier.java │ │ └── TrackerUpdateAction.java │ ├── util/ │ │ ├── CollectionUtil.java │ │ ├── EntityUtil.java │ │ ├── EventUtil.java │ │ ├── FunctionUtil.java │ │ ├── HttpUtil.java │ │ ├── InterpolationUtil.java │ │ ├── LogUtil.java │ │ ├── MathUtil.java │ │ ├── PackUtil.java │ │ ├── ReflectionUtil.java │ │ ├── TransformedItemStack.java │ │ ├── collection/ │ │ │ ├── PriorityMap.java │ │ │ └── SingletonSequencedSet.java │ │ ├── function/ │ │ │ ├── BonePredicate.java │ │ │ ├── BooleanConstantSupplier.java │ │ │ ├── Float2FloatConstantFunction.java │ │ │ ├── Float2FloatFunction.java │ │ │ ├── FloatConstantFunction.java │ │ │ ├── FloatConstantSupplier.java │ │ │ ├── FloatFunction.java │ │ │ └── FloatSupplier.java │ │ ├── interpolator/ │ │ │ └── VectorInterpolator.java │ │ ├── json/ │ │ │ ├── JsonArrayBuilder.java │ │ │ └── JsonObjectBuilder.java │ │ ├── lazy/ │ │ │ └── LazyFloatProvider.java │ │ └── lock/ │ │ ├── DuplexLock.java │ │ └── SingleLock.java │ └── version/ │ └── MinecraftVersion.java ├── build.gradle.kts ├── buildSrc/ │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ ├── Extensions.kt │ ├── bukkit-conventions.gradle.kts │ ├── modrinth-conventions.gradle.kts │ ├── paperweight-conventions.gradle.kts │ ├── plugin-conventions.gradle.kts │ ├── publish-conventions.gradle.kts │ └── standard-conventions.gradle.kts ├── changelog/ │ ├── 3.0.1.md │ ├── 3.0.2.md │ ├── v1/ │ │ ├── 1.10.0.md │ │ ├── 1.10.1.md │ │ ├── 1.10.2.md │ │ ├── 1.10.3.md │ │ ├── 1.11.0.md │ │ ├── 1.11.1.md │ │ ├── 1.11.2.md │ │ ├── 1.11.3.md │ │ ├── 1.11.4.md │ │ ├── 1.12.0.md │ │ ├── 1.12.1.md │ │ ├── 1.13.0.md │ │ ├── 1.13.1.md │ │ ├── 1.13.2.md │ │ ├── 1.13.3.md │ │ ├── 1.13.4.md │ │ ├── 1.14.0.md │ │ ├── 1.14.1.md │ │ ├── 1.14.2.md │ │ ├── 1.15.0.md │ │ ├── 1.15.1.md │ │ ├── 1.15.2.md │ │ ├── 1.3.2.md │ │ ├── 1.3.3.md │ │ ├── 1.4.1.md │ │ ├── 1.4.2.md │ │ ├── 1.4.3.md │ │ ├── 1.4.md │ │ ├── 1.5.1.md │ │ ├── 1.5.2.md │ │ ├── 1.5.3.md │ │ ├── 1.5.4.md │ │ ├── 1.5.5.md │ │ ├── 1.5.md │ │ ├── 1.6.0.md │ │ ├── 1.6.1.md │ │ ├── 1.7.0.md │ │ ├── 1.8.0.md │ │ ├── 1.8.1.md │ │ ├── 1.9.0.md │ │ ├── 1.9.1.md │ │ ├── 1.9.2.md │ │ └── 1.9.3.md │ ├── v2/ │ │ ├── 2.0.0-pre1.md │ │ ├── 2.0.0-pre2.md │ │ ├── 2.0.0.md │ │ ├── 2.0.1.md │ │ ├── 2.1.0.md │ │ └── 2.2.0.md │ └── v3/ │ └── 3.0.0.md ├── core/ │ ├── build.gradle.kts │ ├── bukkit-core/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ ├── AbstractBetterModelPlugin.java │ │ │ ├── BetterModelLibrary.java │ │ │ └── BetterModelLibraryManager.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ ├── BetterModelConfigImpl.kt │ │ ├── BetterModelPlugin.kt │ │ ├── BetterModelProperties.kt │ │ ├── BukkitModelEventBusImpl.kt │ │ ├── audience/ │ │ │ ├── AudiencePlayer.kt │ │ │ ├── AudienceSender.kt │ │ │ └── BukkitAudience.kt │ │ ├── command/ │ │ │ └── Commands.kt │ │ ├── compatibility/ │ │ │ ├── Compatibility.kt │ │ │ ├── citizens/ │ │ │ │ ├── CitizensCompatibility.kt │ │ │ │ ├── command/ │ │ │ │ │ ├── AnimateCommand.kt │ │ │ │ │ ├── LimbCommand.kt │ │ │ │ │ └── ModelCommand.kt │ │ │ │ └── trait/ │ │ │ │ └── ModelTrait.kt │ │ │ ├── mythicmobs/ │ │ │ │ ├── MythicMobsCompatibility.kt │ │ │ │ ├── MythicMobsValue.kt │ │ │ │ ├── condition/ │ │ │ │ │ └── ModelHasPassengerCondition.kt │ │ │ │ ├── mechanic/ │ │ │ │ │ ├── AbstractSkillMechanic.kt │ │ │ │ │ ├── BillboardMechanic.kt │ │ │ │ │ ├── BindHitBoxMechanic.kt │ │ │ │ │ ├── BodyRotationMechanic.kt │ │ │ │ │ ├── BrightnessMechanic.kt │ │ │ │ │ ├── ChangePartMechanic.kt │ │ │ │ │ ├── DefaultStateMechanic.kt │ │ │ │ │ ├── DismountAllModelMechanic.kt │ │ │ │ │ ├── DismountModelMechanic.kt │ │ │ │ │ ├── EnchantMechanic.kt │ │ │ │ │ ├── GlowMechanic.kt │ │ │ │ │ ├── LockModelMechanic.kt │ │ │ │ │ ├── ModelMechanic.kt │ │ │ │ │ ├── MountModelMechanic.kt │ │ │ │ │ ├── PairModelMechanic.kt │ │ │ │ │ ├── PartVisibilityMechanic.kt │ │ │ │ │ ├── PlayLimbAnimMechanic.kt │ │ │ │ │ ├── RemapModelMechanic.kt │ │ │ │ │ ├── StateMechanic.kt │ │ │ │ │ └── TintMechanic.kt │ │ │ │ └── targeter/ │ │ │ │ └── ModelPartTargeter.kt │ │ │ ├── nexo/ │ │ │ │ └── NexoCompatibility.kt │ │ │ └── skinsrestorer/ │ │ │ └── SkinsRestorerCompatibility.kt │ │ ├── configuration/ │ │ │ └── PluginConfiguration.kt │ │ ├── manager/ │ │ │ ├── CompatibilityManager.kt │ │ │ ├── EntityManager.kt │ │ │ └── PlayerManagerImpl.kt │ │ ├── scheduler/ │ │ │ ├── BukkitScheduler.kt │ │ │ └── PaperScheduler.kt │ │ └── util/ │ │ ├── BukkitWrappers.kt │ │ ├── Entities.kt │ │ ├── Events.kt │ │ ├── Plugins.kt │ │ ├── Senders.kt │ │ └── Yamls.kt │ └── src/ │ └── main/ │ ├── java/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── BetterModelPlatformImpl.java │ ├── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ ├── BetterModelEvaluatorImpl.kt │ │ ├── BetterModelEventBusImpl.kt │ │ ├── command/ │ │ │ ├── CommandBuildContext.kt │ │ │ ├── CommandBuilder.kt │ │ │ ├── CommandExtensions.kt │ │ │ └── CommandLike.kt │ │ ├── manager/ │ │ │ ├── ArmorManager.kt │ │ │ ├── GlobalManager.kt │ │ │ ├── ModelManagerImpl.kt │ │ │ ├── ProfileManagerImpl.kt │ │ │ ├── ReloadPipeline.kt │ │ │ ├── ScriptManagerImpl.kt │ │ │ ├── SkinManagerImpl.kt │ │ │ └── debug/ │ │ │ ├── BossBarIndicator.kt │ │ │ └── ReloadIndicator.kt │ │ ├── profile/ │ │ │ ├── DefaultHttpModelProfileSupplier.kt │ │ │ └── HttpModelProfileSupplier.kt │ │ ├── script/ │ │ │ ├── BrightnessScript.kt │ │ │ ├── ChangePartScript.kt │ │ │ ├── EnchantScript.kt │ │ │ ├── PartVisibilityScript.kt │ │ │ ├── RemapScript.kt │ │ │ └── TintScript.kt │ │ └── util/ │ │ ├── Buffers.kt │ │ ├── Collections.kt │ │ ├── Events.kt │ │ ├── Files.kt │ │ ├── Functions.kt │ │ ├── Gsons.kt │ │ ├── Indicators.kt │ │ ├── Packs.kt │ │ ├── Platforms.kt │ │ ├── Scripts.kt │ │ └── Senders.kt │ └── resources/ │ ├── blue_wizard.bbmodel │ ├── config.yml │ ├── demon_knight.bbmodel │ └── steve.bbmodel ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── nms/ │ ├── v1_21_R3/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ └── nms/ │ │ │ └── v1_21_R3/ │ │ │ └── AbstractHitBox.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v1_21_R3/ │ │ ├── BaseEntityImpl.kt │ │ ├── BasePlayerImpl.kt │ │ ├── BukkitWrappers.kt │ │ ├── EntityData.kt │ │ ├── Functions.kt │ │ ├── HitBoxImpl.kt │ │ ├── HitBoxInteraction.kt │ │ ├── ModAnimationBundlerImpl.kt │ │ ├── ModelDamageSourceImpl.kt │ │ ├── ModelDisplayImpl.kt │ │ ├── ModelGameProfile.kt │ │ ├── ModelNametagImpl.kt │ │ ├── NMSImpl.kt │ │ ├── PacketBundlers.kt │ │ ├── PlayerArmorImpl.kt │ │ ├── ProfiledImpl.kt │ │ └── TypeAliases.kt │ ├── v1_21_R4/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ └── nms/ │ │ │ └── v1_21_R4/ │ │ │ └── AbstractHitBox.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v1_21_R4/ │ │ ├── BaseEntityImpl.kt │ │ ├── BasePlayerImpl.kt │ │ ├── BukkitWrappers.kt │ │ ├── EntityData.kt │ │ ├── Functions.kt │ │ ├── HitBoxImpl.kt │ │ ├── HitBoxInteraction.kt │ │ ├── ModAnimationBundlerImpl.kt │ │ ├── ModelDamageSourceImpl.kt │ │ ├── ModelDisplayImpl.kt │ │ ├── ModelGameProfile.kt │ │ ├── ModelNametagImpl.kt │ │ ├── NMSImpl.kt │ │ ├── PacketBundlers.kt │ │ ├── PlayerArmorImpl.kt │ │ ├── ProfiledImpl.kt │ │ └── TypeAliases.kt │ ├── v1_21_R5/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ └── nms/ │ │ │ └── v1_21_R5/ │ │ │ └── AbstractHitBox.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v1_21_R5/ │ │ ├── BaseEntityImpl.kt │ │ ├── BasePlayerImpl.kt │ │ ├── BukkitWrappers.kt │ │ ├── EntityData.kt │ │ ├── Functions.kt │ │ ├── HitBoxImpl.kt │ │ ├── HitBoxInteraction.kt │ │ ├── ModAnimationBundlerImpl.kt │ │ ├── ModelDamageSourceImpl.kt │ │ ├── ModelDisplayImpl.kt │ │ ├── ModelGameProfile.kt │ │ ├── ModelNametagImpl.kt │ │ ├── NMSImpl.kt │ │ ├── PacketBundlers.kt │ │ ├── PlayerArmorImpl.kt │ │ ├── ProfiledImpl.kt │ │ └── TypeAliases.kt │ ├── v1_21_R6/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ └── nms/ │ │ │ └── v1_21_R6/ │ │ │ └── AbstractHitBox.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v1_21_R6/ │ │ ├── BaseEntityImpl.kt │ │ ├── BasePlayerImpl.kt │ │ ├── BukkitWrappers.kt │ │ ├── EntityData.kt │ │ ├── Functions.kt │ │ ├── HitBoxImpl.kt │ │ ├── HitBoxInteraction.kt │ │ ├── ModAnimationBundlerImpl.kt │ │ ├── ModelDamageSourceImpl.kt │ │ ├── ModelDisplayImpl.kt │ │ ├── ModelGameProfile.kt │ │ ├── ModelNametagImpl.kt │ │ ├── NMSImpl.kt │ │ ├── PacketBundlers.kt │ │ ├── PlayerArmorImpl.kt │ │ ├── ProfiledImpl.kt │ │ └── TypeAliases.kt │ ├── v1_21_R7/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── bukkit/ │ │ │ └── nms/ │ │ │ └── v1_21_R7/ │ │ │ └── AbstractHitBox.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v1_21_R7/ │ │ ├── BaseEntityImpl.kt │ │ ├── BasePlayerImpl.kt │ │ ├── BukkitWrappers.kt │ │ ├── EntityData.kt │ │ ├── Functions.kt │ │ ├── HitBoxImpl.kt │ │ ├── HitBoxInteraction.kt │ │ ├── ModAnimationBundlerImpl.kt │ │ ├── ModelDamageSourceImpl.kt │ │ ├── ModelDisplayImpl.kt │ │ ├── ModelGameProfile.kt │ │ ├── ModelNametagImpl.kt │ │ ├── NMSImpl.kt │ │ ├── PacketBundlers.kt │ │ ├── PlayerArmorImpl.kt │ │ ├── ProfiledImpl.kt │ │ └── TypeAliases.kt │ └── v26_R1/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── bukkit/ │ │ └── nms/ │ │ └── v26_R1/ │ │ └── AbstractHitBox.java │ └── kotlin/ │ └── kr/ │ └── toxicity/ │ └── model/ │ └── bukkit/ │ └── nms/ │ └── v26_R1/ │ ├── BaseEntityImpl.kt │ ├── BasePlayerImpl.kt │ ├── BukkitWrappers.kt │ ├── EntityData.kt │ ├── Functions.kt │ ├── HitBoxImpl.kt │ ├── HitBoxInteraction.kt │ ├── ModAnimationBundlerImpl.kt │ ├── ModelDamageSourceImpl.kt │ ├── ModelDisplayImpl.kt │ ├── ModelGameProfile.kt │ ├── ModelNametagImpl.kt │ ├── NMSImpl.kt │ ├── PacketBundlers.kt │ ├── PlayerArmorImpl.kt │ ├── ProfiledImpl.kt │ └── TypeAliases.kt ├── platform/ │ ├── fabric/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── kr/ │ │ │ │ └── toxicity/ │ │ │ │ └── model/ │ │ │ │ ├── impl/ │ │ │ │ │ └── fabric/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── AbstractArmorStand.java │ │ │ │ │ │ └── EntityHook.java │ │ │ │ │ └── network/ │ │ │ │ │ └── BetterModelBundlePacket.java │ │ │ │ └── mixin/ │ │ │ │ ├── AvatarAccessor.java │ │ │ │ ├── ClientboundBundlePacketMixin.java │ │ │ │ ├── ConnectionAccessor.java │ │ │ │ ├── DisplayAccessor.java │ │ │ │ ├── EntityAccessor.java │ │ │ │ ├── EntityMixin.java │ │ │ │ ├── ItemDisplayAccessor.java │ │ │ │ ├── LivingEntityMixin.java │ │ │ │ ├── MobAccessor.java │ │ │ │ ├── ServerCommonPacketListenerImplAccessor.java │ │ │ │ ├── ServerLevelEntityCallbacksMixin.java │ │ │ │ └── SynchedEntityDataAccessor.java │ │ │ ├── kotlin/ │ │ │ │ └── kr/ │ │ │ │ └── toxicity/ │ │ │ │ └── model/ │ │ │ │ └── impl/ │ │ │ │ └── fabric/ │ │ │ │ ├── BetterModelFabricImpl.kt │ │ │ │ ├── BetterModelLoggerImpl.kt │ │ │ │ ├── BetterModelNMSImpl.kt │ │ │ │ ├── Constants.kt │ │ │ │ ├── Entities.kt │ │ │ │ ├── FabricWrappers.kt │ │ │ │ ├── Functions.kt │ │ │ │ ├── armor/ │ │ │ │ │ └── PlayerArmorImpl.kt │ │ │ │ ├── attachment/ │ │ │ │ │ └── BetterModelAttachments.kt │ │ │ │ ├── audience/ │ │ │ │ │ ├── AudienceCommandSource.kt │ │ │ │ │ ├── AudiencePlayer.kt │ │ │ │ │ └── AudienceSourceStack.kt │ │ │ │ ├── chat/ │ │ │ │ │ └── Components.kt │ │ │ │ ├── command/ │ │ │ │ │ └── Commands.kt │ │ │ │ ├── config/ │ │ │ │ │ └── BetterModelConfigImpl.kt │ │ │ │ ├── entity/ │ │ │ │ │ ├── BaseFabricEntityImpl.kt │ │ │ │ │ ├── BaseFabricPlayerImpl.kt │ │ │ │ │ ├── DisplayTransformerImpl.kt │ │ │ │ │ ├── HitBoxEntityImpl.kt │ │ │ │ │ ├── InteractionEntityImpl.kt │ │ │ │ │ ├── ModelDisplayEntityImpl.kt │ │ │ │ │ ├── ModelNametagImpl.kt │ │ │ │ │ ├── PlayerChannelHandlerImpl.kt │ │ │ │ │ ├── ProfiledImpl.kt │ │ │ │ │ └── TransformationData.kt │ │ │ │ ├── events/ │ │ │ │ │ ├── ServerEntityDismountCallback.kt │ │ │ │ │ ├── ServerLivingEntityJumpCallback.kt │ │ │ │ │ ├── ServerMobEffectLoadCallback.kt │ │ │ │ │ └── ServerMobEffectUnloadCallback.kt │ │ │ │ ├── manager/ │ │ │ │ │ ├── EntityManager.kt │ │ │ │ │ ├── PlayerManagerImpl.kt │ │ │ │ │ └── Syncers.kt │ │ │ │ ├── network/ │ │ │ │ │ ├── ModAnimationBundlerImpl.kt │ │ │ │ │ ├── PacketBundlers.kt │ │ │ │ │ └── Packets.kt │ │ │ │ ├── profile/ │ │ │ │ │ └── ModelProfileImpl.kt │ │ │ │ ├── scheduler/ │ │ │ │ │ └── FabricModelSchedulerImpl.kt │ │ │ │ └── world/ │ │ │ │ ├── Chunks.kt │ │ │ │ └── damagesource/ │ │ │ │ └── ModelDamageSourceImpl.kt │ │ │ └── resources/ │ │ │ ├── bettermodel.accesswidener │ │ │ └── bettermodel.mixins.json │ │ └── testmod/ │ │ ├── kotlin/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── test/ │ │ │ └── RollTest.kt │ │ └── resources/ │ │ ├── knight.bbmodel │ │ ├── knight_line.json │ │ └── knight_sword.json │ ├── paper/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── kr/ │ │ │ └── toxicity/ │ │ │ └── model/ │ │ │ └── paper/ │ │ │ └── BetterModelLoader.java │ │ └── kotlin/ │ │ └── kr/ │ │ └── toxicity/ │ │ └── model/ │ │ └── paper/ │ │ └── BetterModelPaper.kt │ └── spigot/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ └── kr/ │ └── toxicity/ │ └── model/ │ └── spigot/ │ └── BetterModelSpigot.kt ├── purpur/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ └── kr/ │ └── toxicity/ │ └── model/ │ └── bukkit/ │ └── purpur/ │ └── PurpurHook.kt ├── renovate.json ├── settings.gradle.kts └── test-plugin/ ├── build.gradle.kts └── src/ └── main/ ├── java/ │ └── kr/ │ └── toxicity/ │ └── model/ │ └── test/ │ ├── BetterModelTest.java │ ├── FightTester.java │ ├── ModelTester.java │ └── RollTester.java └── resources/ ├── knight.bbmodel ├── knight_line.json └── knight_sword.json