[1.3.1] - Critical NPC Stability & Protocol Fixes
Fixed
- CRITICAL — Normal NPC Persistence: NPC data of type NORMAL was being silently wiped on every server restart or plugin reload.
- CRITICAL — Mass Disconnect on NPC Spawn: Corrected an invalid entity metadata index that caused an IllegalStateException, disconnecting all online players when an NPC was spawned.
- CRITICAL — NPC Skin Not Appearing: All NPC skins were rendering as default Steve. Fixed by properly delaying PlayerInfoRemove to allow skin textures to load on the client side.
- Interaction De-duplication: Interaction messages were triggering multiple times per click on Normal NPCs.
- Profile Name Sanitation: Added validation on NPC profile names to prevent native protocol failures.
- Vanilla Nametag Visibility: Default Minecraft nametags on NPCs are now properly hidden, ensuring full compatibility with FancyHolograms.
Improved - Mineskin API Retry Logic: Added retry-with-backoff support when Mineskin returns a timeout, with up to 3 automatic retries.
- HTTP Request Timeout: Async threads no longer hang indefinitely when Mineskin or Mojang API is unresponsive.
[1.3.0] - Native Packet NPC System Overhaul
Added
- Native Packet NPC System: Completely replaced FancyNpcs with a native NPC rendering system built on PacketEvents, handling all normal NPC behavior directly at the protocol level.
- Packet-Based Interactions: Left and right click interactions are now intercepted natively at the packet level, no longer relying on Bukkit's Entity API.
- Per-Player Look Tracking: Normal NPCs now send head rotation packets dynamically to nearby players for smooth and efficient look tracking.
- Background Player Tracking: Added async player distance tracking up to 48 blocks, intelligently managing NPC spawn/despawn packets per player.
Changed - Removed FancyNpcs Dependency: FancyNpcs has been fully stripped from the plugin, making it more reliable, isolated, and lightweight.
- NPCManager and NPCSpawner updated to utilize the new native packet processing logic.
[1.2.1] - NPC Display Name Toggle
Added
- NPC Display Name Toggle: Control the visibility of the display name hologram for normal-type NPCs via /menpc name <id> <true|false>. Defaults to hidden to prevent conflicts with custom FancyHolograms displays.
Changed
- FancyNpcsIntegration now dynamically injects <empty> as the display name when an NPC is configured to hide its name natively.
[1.2.0] - NPC Cloning, Type Conversion & Skin Overhaul
Added
- NPC Cloning: Deep-copy any NPC including model, skin, animations, interactions, and hologram settings via /menpc copy <source> <new-id>.
- Universal LookClose System: Fully rewritten LookCloseTask now supports both MODEL_ENGINE and NORMAL NPC types natively.
- NPC Type Conversion: Convert existing NPCs between model and normal types at runtime via /menpc setnpctype <id> <type>. Handles the full despawn → transition → respawn cycle automatically.
- Set Skin Command: Set or change the skin of any normal-type NPC at any time via /menpc setskin <id> <player-name|url>.
- Mojang API Skin Support: Normal NPCs can now use a Minecraft player name (e.g. Notch) as the skin source, fetched directly from Mojang's session server.
- Smart Skin Detection: SkinManager now auto-detects input type — URLs route to Mineskin API, player names route to Mojang API.
Changed
- Async Skin Fetching: NPCs now spawn instantly while skins load in the background, eliminating spawn delays and timeout errors.
- Texture Caching: Skin textures are cached after the first fetch — subsequent spawns on reload or restart apply skins instantly with no network calls.
- FancyNpcs Integration: Updated SkinVariant to use AUTO for full compatibility with FancyNpcs 2.9.x.
Fixed
- SocketTimeoutException on NPC Creation: Skin fetching no longer blocks the spawn process.
- SkinVariant Enum Error: Resolved No enum constant SkinData.SkinVariant.CLASSIC crash on FancyNpcs 2.9.x.
- LookClose Not Working for Normal NPCs: Look-at-player state now correctly syncs to live NPC instances.
[1.1.0] - Normal NPC Support & Skin Integration
Added
- Normal NPC Support: Create standard Minecraft player-type NPCs (NPCType.NORMAL) alongside ModelEngine entities.
- FancyNpcs Integration: Integrated FancyNpcs API (v2.9.x) for rendering normal-type NPCs.
- Mineskin API Support: SkinManager now fetches and processes skin URLs asynchronously via the Mineskin API.
- Dynamic Commands: /menpc create now accepts a type parameter (normal or model) with context-aware tab completion.
- Context-Aware GUI: The NPC editor GUI dynamically switches between model ID and skin URL editing based on NPC type.
Changed
- Refactored NPCManager to properly route spawning behaviors between NPCSpawner (model) and FancyNpcsIntegration (normal).
- Normal NPCs now safely bypass ModelEngine-specific checks to prevent console exceptions.
[1.0.3] - Developer API & Core Optimization
Added
- Public Developer API: Full programmatic access to create, remove, and manage NPCs via ModelEngineNPCAPI.
- Maven Repository: Plugin artifacts are now hosted on repo.minekarta.com for easy dependency management.
- YAML persistence architecture via YamlNPCRepository.
- Interactive clicking system with configurable interaction commands.
- Hologram settings and formatting integration via FancyHolograms API.
ModelEngineNPC v1.0.1
Changelog - ModelEngineNPC v1.0.1
🚀 New Features
- [NEW] Added
/menpc play <id> <anim> [loop] [speed] command.- Allows playing any animation on an NPC dynamically.
- Supports
loop (true/false) and speed (multiplier) parameters. - Includes full Tab Completion for animations based on the NPC's model.
- Smart Reset: Automatically returns the NPC to its configured idle animation after 3 seconds if the played animation is not looping (default behavior).
✨ Improvements
- Added dynamic Tab Completion for
<anim> argument in /menpc animation. - Added tab completion support for
loop and speed arguments. - Updated
messages.yml with new response messages for animation commands.
🐛 Fixes
- Fixed an issue where playing a custom animation would not properly stop the previous idle animation or return to it afterwards.
Page 1