fix: re-check soft dependencies after every plugin has enabled - #78
Conversation
Paper breaks the Cooking/CustomCrops/ItemsAdder/MMOItems/nightcore dependency cycle by enabling MMOItems after activity. Activity then treated every m.<type>.<id> path as unusable for the whole session, so daily/weekly reward scrolls failed with "could not be handed over", m.* icons fell back to PAPER and MMOItems station crafts went uncredited. Hooks are now registered on the first tick, and the config is reloaded there when an item plugin's availability changed since enable. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughStartup defers hook registration to a scheduled task. The task checks whether item plugin availability changed and reloads configuration before registering hooks when needed. ChangesPlugin startup
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to Startup reconciles relevant plugin availability before registering hooks. A missing-plugin warning may become stale when overall item-path availability remains unchanged, but no material impact is established; no actionable merge risk remains. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change restores integrations that can become available late in startup without showing a new player-controlled route to rewards. A failure during the new startup reload could, however, leave some integrations inactive while the plugin remains enabled. Retained concerns
Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
A rabbit checks the plugin trail, Comment |
Problem
On main (boot 2026-09-29 16:23), Paper broke the dependency cycle
Cooking → CustomCrops → ItemsAdder → MMOItems → nightcore → MMOItemsby enabling MMOItems after activity, despite the softdepend. Activity checkedisPluginEnabled("MMOItems")duringonEnable, found it off, and disabled everym.<type>.<id>path for the whole session:m.loot.*_item_skin_scroll) → "Your rewards could not be handed over. Please make a ticket."m.*drops (Ignitium, skin scrolls) are affected the same waym.*icons fall back to PAPER; the MMOItems station listener was never registered, so station crafting tasks weren't creditedFix
🤖 Generated with Claude Code
Summary by CodeRabbit