MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Créer une library pour un mod

    Planifier Épinglé Verrouillé Déplacé Résolu 1.11.x
    1.11.x
    8 Messages 4 Publieurs 2.3k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Cl00e9mentC Hors-ligne
      Cl00e9ment
      dernière édition par

      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.

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

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

        1 réponse Dernière réponse Répondre Citer 0
        • AmaA Hors-ligne
          Ama
          dernière édition par

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

          Si je t'ai filé un coup de main n'oublie pas le + / -
          Par contre évite les demandes d'aides en MP, tu sera sympa'

          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

          1 réponse Dernière réponse Répondre Citer 1
          • Cl00e9mentC Hors-ligne
            Cl00e9ment
            dernière édition par

            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.
            :::

            ---- Minecraft Crash Report ----
            // There are four lights!
            
            Time: 4/27/17 8:13 PM
            Description: Exception in server tick loop
            
            net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Example Mod (examplemod)
            Caused by: java.lang.NoSuchMethodError: net.minecraft.world.WorldServer.getMapStorage()Lnet/minecraft/world/storage/MapStorage;
            at com.trcgames.dbSynchronizer.database.Database.initInstance(Database.java:33)
            at com.trcgames.dbSynchronizer.DBSynchronizer.onServerStarted(DBSynchronizer.java:33)
            at com.example.examplemod.ExampleMod.onServerStared(ExampleMod.java:27)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:641)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
            at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:246)
            at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:224)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
            at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
            at com.google.common.eventbus.EventBus.post(EventBus.java:275)
            at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
            at net.minecraftforge.fml.common.Loader.serverStarted(Loader.java:872)
            at net.minecraftforge.fml.common.FMLCommonHandler.handleServerStarted(FMLCommonHandler.java:300)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:444)
            at java.lang.Thread.run(Unknown Source)
            
            A detailed walkthrough of the error, its code path and all known details is as follows:
            ---------------------------------------------------------------------------------------
            
            -- System Details --
            Details:
            Minecraft Version: 1.11.2
            Operating System: Windows 10 (amd64) version 10.0
            Java Version: 1.8.0_121, Oracle Corporation
            Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
            Memory: 391019368 bytes (372 MB) / 676331520 bytes (645 MB) up to 954728448 bytes (910 MB)
            JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms512m -Xmx1024m
            IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
            FML: MCP 9.38 Powered by Forge 13.20.0.2228 5 mods loaded, 5 mods active
            States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
            UCHIJAAAA minecraft{1.11.2} [Minecraft] (minecraft.jar)
            UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
            UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forge-1.11.2-13.20.0.2228-universal.jar)
            UCHIJAAAA forge{13.20.0.2228} [Minecraft Forge] (forge-1.11.2-13.20.0.2228-universal.jar)
            UCHIJAAAE examplemod{1.0} [Example Mod] (DBSyncTest.jar)
            Loaded coremods (and transformers):
            GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
            Profiler Position: N/A (disabled)
            Player Count: 0 / 8; []
            Type: Integrated Server (map_client.txt)
            Is Modded: Definitely; Client brand changed to 'fml,forge'
            

            :::

            1 réponse Dernière réponse Répondre Citer 0
            • AymericRedA Hors-ligne
              AymericRed
              dernière édition par

              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.

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

              1 réponse Dernière réponse Répondre Citer 1
              • Cl00e9mentC Hors-ligne
                Cl00e9ment
                dernière édition par

                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 ?

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002R Hors-ligne
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                  dernière édition par

                  Faut compiler comme si c’est un mod.

                  1 réponse Dernière réponse Répondre Citer 1
                  • Cl00e9mentC Hors-ligne
                    Cl00e9ment
                    dernière édition par

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

                    1 réponse Dernière réponse Répondre Citer 0
                    • 1 / 1
                    • Premier message
                      Dernier message
                    Design by Woryk
                    ContactMentions Légales

                    MINECRAFT FORGE FRANCE © 2024

                    Powered by NodeBB