CNPC+ Health Bars Addon 0.3.2 - Script API

Import in a CustomNPC+ ECMAScript/Nashorn script:
var BossBars = Java.type("com.dad.npchealthbars.api.BossBarAPI");

GENERAL / VISIBILITY
BossBars.show(npc);                       // Always show world-space HP bar
BossBars.hide(npc);                       // Hide world-space HP bar
BossBars.onHit(npc);                      // Show while damaged
BossBars.onTarget(npc);                   // Show while aimed at
BossBars.inherit(npc);                    // Inherit faction visibility
BossBars.flash(npc);                      // Trigger a short visual flash/pulse
BossBars.reset(npc);                      // Clear addon script overrides

CATEGORY / SCALE
BossBars.setCategory(npc, "NORMAL");
BossBars.setCategory(npc, "ELITE");
BossBars.setCategory(npc, "MINI_BOSS");
BossBars.setCategory(npc, "BOSS");       // Compatibility shortcut: selects Custom BossBar
BossBars.setCategory(npc, 0);             // 0 Normal, 1 Elite, 2 Mini-Boss, 3 Boss
BossBars.clearCategory(npc);
BossBars.categoryCode("BOSS");            // Returns 3
BossBars.setScale(npc, 1.25);
BossBars.clearScale(npc);

LEGACY DIRECT COLOR OVERRIDES
These remain for backward compatibility and have highest priority for Primary/Damage.
BossBars.setColor(npc, 0xFF2020);
BossBars.clearColor(npc);
BossBars.setDamageColor(npc, 0xFFD060);
BossBars.clearDamageColor(npc);

PER-NPC WORLD-BAR PALETTE (NEW IN 0.3.2)
Only colors are overridden. Style, scale, distance, fade, position, HP text and animation settings still come from the faction.

BossBars.setNpcColorMode(npc, "FACTION");
BossBars.setNpcColorMode(npc, "CUSTOM");
BossBars.setNpcColorMode(npc, 0);          // 0 Faction, 1 Custom

BossBars.setNpcColorPreset(npc, "CLASSIC_GREEN");
BossBars.setNpcColorPreset(npc, "CRIMSON");
BossBars.setNpcColorPreset(npc, "BLOOD");
BossBars.setNpcColorPreset(npc, "AZURE");
BossBars.setNpcColorPreset(npc, "ARCANE_PURPLE");
BossBars.setNpcColorPreset(npc, "POISON");
BossBars.setNpcColorPreset(npc, "GOLDEN");
BossBars.setNpcColorPreset(npc, "ICE");
BossBars.setNpcColorPreset(npc, "DARK");
BossBars.setNpcColorPreset(npc, "UNDEAD");
BossBars.setNpcColorPreset(npc, 0);        // Preset index 0..10

BossBars.setNpcPrimaryColor(npc, 0xC9363E);
BossBars.setNpcDamageColor(npc, 0xF0A45D);
BossBars.setNpcHealColor(npc, 0x70E28A);
BossBars.setNpcBackgroundColor(npc, 0x171313);
BossBars.setNpcBorderColor(npc, 0x080808);
BossBars.setNpcShieldColor(npc, 0x60B9FF);
BossBars.clearNpcColors(npc);              // Return to Faction colors and clear legacy Primary/Damage overrides

PHASE / SHIELD
BossBars.setPhase(npc, 1, 3);
BossBars.setPhase(npc, 2, 3, "Corrupted Form");
BossBars.setPhase(npc, 2, 3, "Corrupted Form", 0x9A55E8);
BossBars.setPhaseName(npc, "Final Form");
BossBars.setShield(npc, 500, 500);
BossBars.clearShield(npc);

NPC-ONLY BOSSBAR MODE
BossBars.setBossMode(npc, "HIDE");
BossBars.setBossMode(npc, "SHOW");
BossBars.setBossMode(npc, "ATTACKING");
BossBars.setBossMode(npc, "CUSTOM");
BossBars.setBossMode(npc, 0);              // 0 Hide, 1 Show, 2 Attacking, 3 Custom

CUSTOM BOSSBAR APPEARANCE (mode CUSTOM / 3)
BossBars.setBossStyle(npc, "DEFAULT");
BossBars.setBossStyle(npc, "MODERN");
BossBars.setBossStyle(npc, 0);             // 0 Default, 1 Modern
BossBars.setBossWidth(npc, 72);
BossBars.setBossHeight(npc, 10);
BossBars.setBossY(npc, 12);
BossBars.setBossHpText(npc, "OFF");
BossBars.setBossHpText(npc, "PERCENT");
BossBars.setBossHpText(npc, "CURRENT");
BossBars.setBossHpText(npc, "CURRENT_MAX");
BossBars.setBossHpText(npc, 0);            // 0..3
BossBars.setBossShowPhase(npc, true);
BossBars.setBossShowShield(npc, true);
BossBars.setBossPreset(npc, "CRIMSON");   // Same palette names as above
BossBars.setBossPreset(npc, 1);
BossBars.setBossPrimaryColor(npc, 0xC9363E);
BossBars.setBossDamageColor(npc, 0xF0A45D);
BossBars.setBossHealColor(npc, 0x70E28A);
BossBars.setBossBackgroundColor(npc, 0x171313);
BossBars.setBossBorderColor(npc, 0x080808);
BossBars.setBossShieldColor(npc, 0x60B9FF);
BossBars.setBossDamageTrail(npc, true, 180, 7.0);
BossBars.resetBossAppearance(npc);

ORIGINAL MINECRAFT-STYLE BOSSBAR COLOR (modes SHOW / ATTACKING)
BossBars.setVanillaBossColorPreset(npc, "PURPLE");
BossBars.setVanillaBossColorPreset(npc, "CRIMSON");
BossBars.setVanillaBossColorPreset(npc, "GREEN");
BossBars.setVanillaBossColorPreset(npc, "BLUE");
BossBars.setVanillaBossColorPreset(npc, "GOLD");
BossBars.setVanillaBossColorPreset(npc, "WHITE");
BossBars.setVanillaBossColor(npc, 0x33AAFF); // Custom RGB
BossBars.resetVanillaBossColor(npc);          // Exact original purple again

NOTES
- Shield is presentation state. Your NPC script decides how damage is absorbed.
- Factions cannot create a top-screen Boss category; Custom BossBar is NPC-only.
- Purple leaves Minecraft's original boss bar renderer untouched.
- Non-purple native colors use the addon's vanilla-sized recolored renderer.
- Damage and healing animations are render-frame-time based in 0.3.2, not integer-pixel/tick stepping.
