edca00fa4a
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)).
75 lines
4.1 KiB
Markdown
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 -->
|