docs: update conversation history with custom mining system completion

This commit is contained in:
2026-08-18 22:16:50 +02:00
parent fde7f422ba
commit 6a3277f8b0
+39
View File
@@ -103,3 +103,42 @@
| `next_respawn_at`| BIGINT | Timestamp du prochain respawn |
* **Schéma PlantUML généré** : Enregistré dans `docs/mining_model.puml` et poussé sur le dépôt Gitea.
---
## 7. Implémentation Complète du Système de Minage (Custom Mining)
* **Couche Modèle (`fr.luc.gamingcore.mining.model`)** :
* [`OreRarity.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/model/OreRarity.java) : Raretés (`COMMON`, `UNCOMMON`, `RARE`, `EPIC`, `LEGENDARY`, `MYTHIC`) avec gradients MiniMessage.
* [`OreDrop.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/model/OreDrop.java) : Gestion des probabilités, multiplicateurs Fortune et auto-smelt (`XMaterial`).
* [`CustomOre.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/model/CustomOre.java) : Types de minerais (dureté, stock, réapparition, bloc temporaire).
* [`BlockLocation.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/model/BlockLocation.java) : Coordonnées immuables et hashables pour le cache mémoire.
* [`PlacedOreBlock.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/model/PlacedOreBlock.java) : État en temps réel des blocs actifs posés dans les mondes.
* **Couche Persistance SQLite (`fr.luc.gamingcore.mining.database`)** :
* [`DatabaseManager.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/database/DatabaseManager.java) :
* Création automatique des tables `ores`, `ore_drops`, `placed_ores`.
* Seeding automatique des minerais de base (`custom_iron`, `custom_gold`, `custom_diamond`, `custom_netherite`).
* Synchronisation asynchrone des états de minage / régénération.
* **Couche Métier & Tâches (`fr.luc.gamingcore.mining.manager`)** :
* [`OreManager.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/manager/OreManager.java) : Cache mémoire haute performance, gestion du minage, calcul des drops, sons/particules XSeries et action bars.
* [`RespawnScheduler.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/manager/RespawnScheduler.java) : Tâche répétée (1s) pour régénérer automatiquement les minerais épuisés avec particules et sons.
* **Événements & Sécurité (`fr.luc.gamingcore.mining.listener`)** :
* [`BlockBreakListener.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/listener/BlockBreakListener.java) : Interception du cassage, décrémentation du stock, transformation en bloc temporaire (`BEDROCK`) et drop personnalisé.
* [`BlockProtectionListener.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/listener/BlockProtectionListener.java) : Protection contre les explosions (TNT/Creeper) et les pistons.
* **Commandes & Outils d'Administration (`fr.luc.gamingcore.mining.command`)** :
* [`MiningCommand.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/main/java/fr/luc/gamingcore/mining/command/MiningCommand.java) : `/gamingcore` (alias `/gc`, `/mining`) avec sous-commandes :
* `/gc ore list` : Affiche les minerais configurés et leurs drops.
* `/gc ore set <ore_id>` : Définit le bloc ciblé comme un minerai personnalisé actif.
* `/gc ore remove` : Retire le minerai personnalisé du bloc ciblé.
* `/gc ore info` : Affiche les infos du minerai ciblé (stock restant, temps de respawn, etc.).
* `/gc reload` : Recharge la configuration et la BDD.
* Auto-complétion (TabCompletion) intégrale.
* **Tests Unitaires & Build** :
* Tests JUnit 5 passés avec succès ([`OreModelTest.java`](file:///C:/D%C3%A9veloppement/gamingcore/src/test/java/fr/luc/gamingcore/mining/OreModelTest.java)).
* Compilation ShadowJar validée (`gamingcore-1.0.0-SNAPSHOT.jar`).
* Code commité et synchronisé sur Gitea `origin/main`.