Files
gaming_core/conv_save.md
T

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
    • Récupération des identifiants stockés dans .git-credentials pour authentifier les opérations Git.
    • Vérification de l'existence et accessibilité du dépôt distant GeminiAntigravityCLI/gaming_core.

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 avec onEnable(), 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.puml et poussé sur le dépôt Gitea.