Fix: Replace deprecated ActiveEffectDialog.create() with createEmbeddedDocuments
- ActiveEffectDialog.create() was removed in Foundry VTT v14 - Replaced with direct document.createEmbeddedDocuments() call - After creation, opens the effect sheet for editing - Fixed in both base-actor-sheet.mjs and base-item-sheet.mjs Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
+49
-1
@@ -2,6 +2,8 @@
|
||||
|
||||
## Date : 2026-06-07
|
||||
|
||||
## Dernière mise à jour : 2026-06-07
|
||||
|
||||
## Problèmes identifiés et corrigés
|
||||
|
||||
### 1. ❌ Erreur de chargement des partials Handlebars
|
||||
@@ -56,7 +58,48 @@ const templatePaths = [
|
||||
|
||||
---
|
||||
|
||||
### 2. ❌ Erreur de parsing JSON (historique)
|
||||
### 2. ❌ Erreur de création d'effet actif
|
||||
|
||||
**Problème :**
|
||||
```
|
||||
base-actor-sheet.mjs:357 MournbladeCYD2 | Failed to create effect: TypeError:
|
||||
Cannot read properties of undefined (reading 'create')
|
||||
```
|
||||
|
||||
**Cause :**
|
||||
La fonction `ActiveEffectDialog.create()` n'existe pas dans Foundry VTT v14. L'API a changé et cette méthode a été supprimée.
|
||||
|
||||
**Solution :**
|
||||
Remplacement de l'appel à `foundry.applications.api.ActiveEffectDialog.create()` par une création directe via `document.createEmbeddedDocuments("ActiveEffect", [data])`, suivie de l'ouverture de la feuille d'édition.
|
||||
|
||||
**Fichiers modifiés :**
|
||||
- `modules/applications/sheets/base-actor-sheet.mjs` (lignes 328-363)
|
||||
- `modules/applications/sheets/base-item-sheet.mjs` (lignes 189-224)
|
||||
|
||||
**Code avant :**
|
||||
```javascript
|
||||
const effect = await foundry.applications.api.ActiveEffectDialog.create({
|
||||
document: this.document,
|
||||
effect: defaultEffectData
|
||||
});
|
||||
|
||||
if (effect) {
|
||||
await this.document.createEmbeddedDocuments("ActiveEffect", [effect.toObject()]);
|
||||
}
|
||||
```
|
||||
|
||||
**Code après :**
|
||||
```javascript
|
||||
const [effect] = await this.document.createEmbeddedDocuments("ActiveEffect", [defaultEffectData]);
|
||||
|
||||
if (effect) {
|
||||
effect.sheet.render(true);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. ❌ Erreur de parsing JSON (historique)
|
||||
|
||||
**Problème mentionné :**
|
||||
```
|
||||
@@ -174,12 +217,14 @@ Les chemins doivent être **relatifs au répertoire `systems/`** :
|
||||
- ❌ Ouverture des feuilles de créature → Erreur
|
||||
- ❌ Affichage des effets actifs → Impossible
|
||||
- ❌ Utilisation des effets d'items → Problèmes potentiels
|
||||
- ❌ Création d'effets actifs → Erreur TypeError
|
||||
|
||||
### Après les corrections :
|
||||
- ✅ Toutes les feuilles s'ouvrent correctement
|
||||
- ✅ Les effets actifs s'affichent correctement
|
||||
- ✅ Tous les items affichent leurs effets
|
||||
- ✅ Plus d'erreurs de templates manquants
|
||||
- ✅ Création d'effets actifs fonctionne correctement
|
||||
|
||||
---
|
||||
|
||||
@@ -198,8 +243,11 @@ Les chemins doivent être **relatifs au répertoire `systems/`** :
|
||||
| Fichier | Modification | Statut |
|
||||
|---------|--------------|--------|
|
||||
| `modules/mournblade-cyd2-utility.js` | Ajout de 2 partials dans `preloadHandlebarsTemplates()` | ✅ Corrigé |
|
||||
| `modules/applications/sheets/base-actor-sheet.mjs` | Correction de la création d'effets actifs | ✅ Corrigé |
|
||||
| `modules/applications/sheets/base-item-sheet.mjs` | Correction de la création d'effets actifs | ✅ Corrigé |
|
||||
| `test-templates.js` | Nouveau fichier de test | ✅ Ajouté |
|
||||
| `CORRECTIONS.md` | Documentation des corrections | ✅ Ajouté |
|
||||
| `lang/fr.json` | Correction de formatage JSON | ✅ Corrigé |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user