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)).
This commit is contained in:
@@ -1,3 +1,20 @@
|
||||
<!-- 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user