Files
hytale-chain-lightning/CLAUDE.md
T
kayjaydee edca00fa4a feat(phase-1): scaffold ChainLightning Sceptre plugin
Build infrastructure (Gradle wrapper, shadow, Java 25), manifest, item
JSON + interactions, and ChainLightningPlugin entry with stub handler
that logs sceptre clicks. Cooldown wiring deferred to Phase 3 (real
Hytale API is getCooldown(id).setCooldownMax — not cooldown(Duration)).
2026-04-26 19:22:18 +02:00

75 lines
4.1 KiB
Markdown

<!-- MYTHLANE:hytale-rules-start -->
## Hytale plugin rules — READ BEFORE WRITING API CODE
Avant d'écrire toute ligne touchant l'API Hytale (au-delà de la logique Java pure / tests JUnit), faire dans l'ordre :
1. **Lire les leçons accumulées** : `C:\Users\minit\Desktop\portfolio\PLUGINS\hytale-gravity-flip\HYTALE-PLUGIN-LEARNINGS.md` — surprises, lessons, discoveries de la prod GravityFlip. C'est l'antidote aux pièges déjà connus (`IncludesAssetPack: true` obligatoire, casse `Server/`, string-ID interactions, `shutdown()` vs `stop()`, etc.).
2. **Grep la source décompilée** : `.tools/decompiled/` contient le `Server-2026.03.26-89796e57b.jar` décompilé via CFR. Pour vérifier la signature exacte d'une méthode/classe :
```bash
grep -rn "class CooldownHandler\|interface CooldownHandler" .tools/decompiled/
grep -rn "public.*registerSystem\|public.*register" .tools/decompiled/com/hypixel/hytale/server/core/
```
**Ne jamais deviner une API** — le décompilé est la source de vérité. La déviation Phase 1 (`CooldownHandler.cooldown(Duration)` n'existait pas — l'API réelle est `getCooldown(String).setCooldownMax(float).resetCooldown()`) aurait été évitée en greppant ici en amont.
3. **Chercher un Interaction builtin similaire** : `.tools/decompiled/com/hypixel/hytale/builtin/.../interactions/*.java` contient des dizaines d'exemples canoniques (`BedInteraction`, `TeleporterInteraction`, `HarvestCropInteraction`, …). Si l'usage est ambigu, copier le pattern d'un voisin builtin.
**Researcher / planner / executor agents :** ces 3 étapes sont obligatoires dès qu'une phase touche au runtime Hytale. Phase 2 (algo pur + JUnit) peut s'en passer ; Phase 3 (runtime intégration) et Phase 4 (particles + son) y sont entièrement soumises.
<!-- MYTHLANE:hytale-rules-end -->
<!-- GSD:project-start source:PROJECT.md -->
## Project
**ChainLightning Sceptre**
Plugin Hytale (Mythlane) — un sceptre magique qui lance une foudre en chaîne. Le joueur cible un mob ; l'éclair saute jusqu'à 5 cibles consécutives dans un rayon de 8 blocs, avec des dégâts dégressifs et une traînée électrique visible (particles + son atténué).
**Plateforme :** Hytale Plugin API (serveur 2026.03.26-89796e57b), Java 25, Gradle Shadow.
**Core Value:** **La mécanique de chaînage visuellement unique** — pas un projectile classique. C'est ce qui différencie le plugin de Wan's Wonder Weapons (342K downloads free) et exploite la catégorie magie quasi-vide sur BlockyBlockyBlock (1 seul plugin payant).
<!-- GSD:project-end -->
<!-- GSD:stack-start source:STACK.md -->
## Technology Stack
Technology stack not yet documented. Will populate after codebase mapping or first phase.
<!-- GSD:stack-end -->
<!-- GSD:conventions-start source:CONVENTIONS.md -->
## Conventions
Conventions not yet established. Will populate as patterns emerge during development.
<!-- GSD:conventions-end -->
<!-- GSD:architecture-start source:ARCHITECTURE.md -->
## Architecture
Architecture not yet mapped. Follow existing patterns found in the codebase.
<!-- GSD:architecture-end -->
<!-- GSD:skills-start source:skills/ -->
## Project Skills
No project skills found. Add skills to any of: `.claude/skills/`, `.agents/skills/`, `.cursor/skills/`, `.github/skills/`, or `.codex/skills/` with a `SKILL.md` index file.
<!-- GSD:skills-end -->
<!-- GSD:workflow-start source:GSD defaults -->
## GSD Workflow Enforcement
Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync.
Use these entry points:
- `/gsd-quick` for small fixes, doc updates, and ad-hoc tasks
- `/gsd-debug` for investigation and bug fixing
- `/gsd-execute-phase` for planned phase work
Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it.
<!-- GSD:workflow-end -->
<!-- GSD:profile-start -->
## Developer Profile
> Profile not yet configured. Run `/gsd-profile-user` to generate your developer profile.
> This section is managed by `generate-claude-profile` -- do not edit manually.
<!-- GSD:profile-end -->