Skip to content

vibe coded#1677

Open
LotusRPG wants to merge 2 commits into
magemonkeystudio:devfrom
LotusRPG:lotus-changes-plugin
Open

vibe coded#1677
LotusRPG wants to merge 2 commits into
magemonkeystudio:devfrom
LotusRPG:lotus-changes-plugin

Conversation

@LotusRPG
Copy link
Copy Markdown

@LotusRPG LotusRPG commented May 15, 2026

Coped from copilot:

1. ItemStack Refactoring (FabledClass, Skill, FabledAttribute, Data.java)

  • Replaced Supplier<ItemStack> lazy loading with direct ItemStack fields
  • Updated icon handling to maintain display name/lore/damage/custom model data during GUI operations
  • Simplified Data.parseIcon() / serializeIcon() by removing Codex item type lookups

2. Divinity Plugin Integration (DivinityHook.java, StatMechanic, HealMechanic, StatusMechanic, DurabilityMechanic)

  • New DivinityHook methods: clampStatAmount(), applyStatToMob(), removeStatFromMob()
  • StatMechanic now respects Divinity's stat caps via clamping
  • HealMechanic applies Divinity's healing-cast and healing-received multipliers
  • StatusMechanic applies CC duration multiplier and CC resistance reduction
  • DurabilityMechanic integrates with Divinity's durability system
  • Added PluginChecker.isDivinityActive() tracking

3. Bow/Crossbow Attack Indicator Condition (AttackIndicatorCondition.java)

  • New ShootListener captures bow/crossbow draw force via EntityShootBowEvent metadata
  • Supports "auto", "bow", and "crossbow" weapon modes
  • Handles both pre-launch polling (draw state) and post-launch metadata snapshots
  • Includes reflection fallbacks for Paper API methods on Spigot

4. Flag System & Reentrance Protection (FlagManager.java, FlagTrigger.java, FlagExpireTrigger.java)

  • FlagManager guards against reentrant clearFlags() calls with clearingEntities set
  • FlagTrigger and FlagExpireTrigger now resolve dynamic placeholders ({player}, {target}, {targetUUID}, custom cast data)
  • Fixes infinite recursion when FlagExpireTrigger skills add flags during clearing

5. Other Mechanics & Conditions Fixes

  • FlagCondition: Apply filter() to flag names for dynamic variable resolution
  • FlagMechanic, FlagToggleMechanic, FlagClearMechanic: Apply filter() to flag keys
  • DamageMechanic: Added damage flags metadata (crit ignore, dodge ignore, block ignore, bleed/vamp disable, skill crit ignore)
  • RepeatMechanic: New single-instance setting to cancel previous repeats before starting new ones
  • TargetComponent: Allow self-targeting when IncludeCaster is not FALSE
  • Skill.damage(): Wrapped damage application in try-finally for proper skill damage flag cleanup

6. Config Save Refactoring (RegistrationManager.java)

  • Removed deferred save queue and async batch saves
  • Now saves dynamic skills/classes immediately during initialization
  • Each file receives: soft-save → load → full save to ensure optional fields are populated

7. New Event (PlayerMaxManaChangeEvent.java)

  • Fired after player mana calculation with attribute/class bonuses
  • Allows plugins to apply additional mana bonuses
  • Clamped to minimum 0

8. UI & Display Improvements

  • FabledAttribute.getToolIcon(): Now preserves icon metadata (lore, display name)
  • Skill.getIndicator(): Fixed to preserve item metadata including damage and custom model data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant