Créer une library pour un mod



  • Bonjour,

    Je suis en train de créer une library pour un mod Minecraft. Cette library permettra de simplifier la sauvegarde de données et la synchronisation des données.
    J'ai déjà compilé un prototype de cette library et pour l'implémenter à un mod, je fais tout simplement :
    Properties → Java Build Path → Libraries → Add Jars…

    Mon problème est le suivant : Où doit se situer le jar de ma library ?
    Quand je le met à la racine du projet le build du mod fonctionne très bien, mais une fois en jeu, le mod ne trouve plus les fichiers de ma library (normal : la library n'est pas build avec le mod).
    Donc j'ai eu l'idée de la mettre dans les ressources du mod, sauf que là, le build ne fonctionne même plus : la console m'indique qu'elle ne trouve pas les fichiers de ma library (ce que je comprends moins).

    J'espère que vous saurez m'aider. Merci.


  • Administrateurs

    Salut,
    Dans le dossier de forge / gradle, fais un dossier libs et mets-le dedans.



  • Normalement tu dois avoir les deux jars (ton mod et la lib) dans le dossier mods du .minecraft une fois le tout terminé.



  • Ok merci, je teste ça.
    Les gars vous êtes beaucoup trop chauds.  😮  J'ai à peine eu le temps de mettre mon pc en veille que j'ai reçu une notif par mail ! Et là 2 nouvelles réponses ! Merci en tout cas 😄


    Oubliez ce que j'ai dis précédemment, voici les vrais infos :

    Quand je met ma library dans un dossier libs à la racine du projet le build du mod fonctionne très bien, mais une fois en jeu, le mod ne trouve plus les fichiers de ma library.

    Donc j'ai eu l'idée de la mettre dans les ressources du mod, sauf que là, le build ne fonctionne même plus : la console m'indique qu'elle ne trouve pas les fichiers de ma library.
    En fait cette erreur de build apparait du moment que la library n'est pas dans un dossier libs à la racine du projet. Elle apparait quand la library est directement à la racine du projet ou dans un dossier quelconque à la racine du projet, même dans le dossier gradle/libs par exemple.

    –-

    Du coup, j'ai build mon mod avec la première option. Et cette fois j'ai mis ma library dans le dossier mods. Et là surprise, ça fonctionne... ou pas. En fait la fonction getMapStorage() n'est pas trouvée. C'est étrange car avec la même version de Minecraft et de Forge, ça fonctionne très bien dans mon environnement de développement.



  • La 1e solution est la bonne, mettre la librairie dans le dossier mod est aussi la bonne manière.
    Tu l'as compilé avec quoi ta librairie ? Car le problème est qu'elle utilise les noms non obfusqués de l'environnement de dev au lieu de ceux obfusqués.



  • Ah… d'accord, ça expliquerait tout !
    En fait j'ai créer ma library comme si c'était un mod sauf que je ne l'ai pas build, j'ai juste exporter un jar avec les classes que j'ai créé (sauf la classe principale qui me servait de test).

    Du coup, comment je dois m'y prendre ?


  • Administrateurs

    Faut compiler comme si c'est un mod.



  • MERCI !
    Ahh… l'explosion de joie quand j'ai vu que ça a fonctionné ! Merci encore !