5.2 KiB
5.2 KiB
📜 Sauvegarde de la Conversation - GamingCore Plugin
Date & Heure : 18 Août 2026
Auteur : Luc & Gemini Antigravity
Dépôt Git : https://gitea.luc-rival.fr/GeminiAntigravityCLI/gaming_core.git
Projet : C:\Développement\gamingcore
1. Initialisation & Accès Gitea
- Recherche des informations Gitea :
- Consultation de
C:\Développement\GEMINI.md:- Instance URL :
https://gitea.luc-rival.fr - Utilisateur :
GeminiAntigravityCLI - Email :
gemini@luc-rival.fr
- Instance URL :
- Récupération des identifiants stockés dans
.git-credentialspour authentifier les opérations Git. - Vérification de l'existence et accessibilité du dépôt distant
GeminiAntigravityCLI/gaming_core.
- Consultation de
2. Choix de la Version Java & Minecraft
- Compatibilité Minecraft ciblée : 1.16.5 à 1.20+ (et 1.21+).
- Stratégie JVM / Bytecode :
- SDK de compilation utilisé : Java 21 LTS (ou Java 17).
- Target bytecode (
release) : Java 17. - Évite les erreurs de version JVM (
UnsupportedClassVersionError) tout en bénéficiant de syntaxe moderne.
- Bibliothèques sélectionnées :
- Paper API 1.20.4 : API Bukkit/Paper cross-compatible.
- Kyori Adventure & MiniMessage : Couleurs HEX, gradients et composants de texte.
- XSeries (13.0.0) : Abstraction cross-version des matériaux (
XMaterial), sons et particules de la 1.16 à la 1.21+. - ShadowJar (8.3.6) : Embarquement et relocation des dépendances isolées dans le jar final.
3. Configuration Initiale du Projet Gradle
- Création du projet Gradle dans
C:\Développement\gamingcore. - Fichiers créés :
build.gradle.kts: Définition des dépôts, dépendances, toolchain et configuration du plugin Shadow.src/main/resources/plugin.yml: Manifeste du plugin.src/main/resources/config.yml: Configuration initiale avec préfixe et messages formatés en MiniMessage.src/main/java/fr/luc/gamingcore/GamingCore.java: Classe principale (JavaPlugin)..gitignore: Exclusion des dossiers.gradle,.idea,build/, etc.
4. Résolution de l'erreur IntelliJ (Java 26 vs Gradle 8.12)
- Problème rencontré :
Your build is currently configured to use incompatible Java 26.0.2 and Gradle 8.12. Cannot sync the project. - Cause : IntelliJ a téléchargé par défaut une version expérimentale de Java (Java 26), incompatible avec Gradle 8.12 (supportant jusqu'à Java 23).
- Solution appliquée :
- Définir le SDK du projet sur Java 21 LTS.
- Définir la JVM Gradle dans les paramètres IntelliJ sur Java 21.
- Re-synchroniser Gradle.
5. Simplification & Standardisation du Skeleton
- À la demande de l'utilisateur, simplification vers une structure classique :
GamingCore.java: Classe épurée aveconEnable(),onDisable(),getInstance(),saveDefaultConfig().plugin.yml: Déclaration classique minimale (name,version,main,api-version: '1.16').- Commit et synchronisation Git sur la branche
main.
6. Conception du Système de Minage (Custom Mining)
- Objectif : Créer un système de minerais personnalisés minables plusieurs fois avec gestion des drops et persistance SQLite.
- Spécifications fonctionnelles & tables :
Table ores (Types de minerais)
| Champ | Type | Description |
|---|---|---|
id |
VARCHAR(64) PK | Identifiant unique du minerai (ex: custom_iron) |
block_material |
VARCHAR(64) | Matériau du bloc (ex: IRON_ORE) |
hardness |
DOUBLE | Dureté / résistance du bloc |
rarity |
VARCHAR(32) | Niveau de rareté (COMMON, RARE, EPIC, etc.) |
stock |
INTEGER | Nombre de fois où le bloc est minable avant épuisement |
respawnable |
BOOLEAN | Si le minerai se régénère |
respawn_time |
INTEGER | Temps de régénération en secondes |
temp_block |
VARCHAR(64) | Bloc temporaire d'attente (ex: BEDROCK) |
Table ore_drops (Gestion des drops & taux)
| Champ | Type | Description |
|---|---|---|
id |
INTEGER PK AUTO | Identifiant du drop |
ore_id |
VARCHAR(64) FK | Référence vers le minerai parent |
item_material |
VARCHAR(64) | Item droppé (ex: RAW_IRON) |
default_amount |
INTEGER | Quantité de base |
default_chance |
DOUBLE | Taux de probabilité par défaut (0.0 à 1.0) |
fortunable |
BOOLEAN | Prise en compte de l'enchantement Fortune |
fortune_multiplier |
DOUBLE | Multiplicateur par niveau de Fortune |
smeltable |
BOOLEAN | Auto-smeltable si outil adéquat |
smelted_material |
VARCHAR(64) | Item obtenu si fondu (ex: IRON_INGOT) |
Table placed_ores (Blocs actifs posés dans les mondes)
| Champ | Type | Description |
|---|---|---|
id |
INTEGER PK AUTO | Identifiant unique du bloc posé |
ore_id |
VARCHAR(64) FK | Type de minerai associé |
world |
VARCHAR(64) | Nom du monde Minecraft |
x, y, z |
INTEGER | Coordonnées du bloc |
current_stock |
INTEGER | Stock restant en temps réel |
is_depleted |
BOOLEAN | Indique si le bloc est en attente de réapparition |
next_respawn_at |
BIGINT | Timestamp du prochain respawn |
- Schéma PlantUML généré : Enregistré dans
docs/mining_model.pumlet poussé sur le dépôt Gitea.