MFF

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

    Compiler un mod avec des libs

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    17 Messages 2 Publieurs 1.4k Vues 2 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.
    • FeedBackF Hors-ligne
      FeedBack @robin4002
      dernière édition par

      @robin4002 a dit dans Compiler un mod avec des libs :

      gradle shadow relocate

      Merci !
      Dans mon cas, vu que forge add en dependencies tt les .jar de mon dossier libs,
      je dois mettre quoi dans relocate ‘jsp’ ?

      FeedBackF 1 réponse Dernière réponse Répondre Citer 0
      • FeedBackF Hors-ligne
        FeedBack @FeedBack
        dernière édition par FeedBack

        @robin4002
        J’ai fait un fatJar

        build.gradle

        buildscript {
            repositories {
                jcenter()
                maven { url = "https://files.minecraftforge.net/maven" }
            }
            dependencies {
                classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
        		classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'        
        	}
        }
        
        apply plugin: 'net.minecraftforge.gradle.forge'
        apply plugin: 'com.github.johnrengelman.shadow'
        
        version = "1.0"
        group = "com.drastic.twitchmod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
        archivesBaseName = "TwitchMod"
        
        sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
        compileJava {
            sourceCompatibility = targetCompatibility = '1.8'
        }
        
        minecraft {
            version = "1.12.2-14.23.5.2847"
            runDir = "run"
        
            mappings = "snapshot_20171003"
        }
        
        dependencies {
        	shadow fileTree(dir: 'libs', includes: ['*.jar']) 
        }
        
        reobf {
            shadowJar {}
        }
        
        processResources {
            inputs.property "version", project.version
            inputs.property "mcversion", project.minecraft.version
        
            from(sourceSets.main.resources.srcDirs) {
                include 'mcmod.info'
                        
                expand 'version':project.version, 'mcversion':project.minecraft.version
            }
                
            from(sourceSets.main.resources.srcDirs) {
                exclude 'mcmod.info'
            }
        }
        

        4576a1fa-0ba5-4c03-aaa4-b7eb40208596-image.png

        Ca m’exporte bien mon mod mais j’ai une erreur quand je lance le jeu

        net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Twitch Mod (twitchmod)
        Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        
        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 robin4002

          Probablement car tu embarque dans ton jar une lib qui est déjà utilisé par Minecraft mais dans une autre version, d’où la nécessité de relocate.

          EDIT: quoi que; slf4j ne semble pas être utilisé par Minecraft. As-tu bien installé le fichier -all.jar ?

          FeedBackF 1 réponse Dernière réponse Répondre Citer 0
          • FeedBackF Hors-ligne
            FeedBack @robin4002
            dernière édition par

            @robin4002 oui, bien sûr

            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

              Donc essaies de relocate la bibliothèque slf4j

              FeedBackF 1 réponse Dernière réponse Répondre Citer 0
              • FeedBackF Hors-ligne
                FeedBack @robin4002
                dernière édition par FeedBack

                @robin4002 comment je suis censé faire ?
                (je me doute qu’il faut utiliser relocate dans build.gradle mais aucune idée de comment)

                Edit : je tiens à préciser que mes libs sont des .jar dans /libs ^^

                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

                  https://imperceptiblethoughts.com/shadow/configuration/relocation/#filtering-relocation

                  Ce n’est pas vraiment une bonne pratique d’avoir les libs dans le dossier libs. Utilises plutôt les dépendances via maven.

                  FeedBackF 1 réponse Dernière réponse Répondre Citer 0
                  • FeedBackF Hors-ligne
                    FeedBack @robin4002
                    dernière édition par

                    @robin4002 merci !
                    J’ai réussi à exporter et le jeu ne crash plus mais j’ai 2 problèmes :

                    J’ai ce magnifique icône sur eclipse ba5c9b22-a2a3-45d0-9465-724eccafbdf2-image.png
                    (ça n’a pas l’air d’influer sur le jeu)

                    Et sur minecraft (hors eclipse), le jeu n’a pas l’air de vouloir charger mes resources 😕

                    Je n’ai pas non plus mettre mes libs via maven car j’ai un crash au lancement si je fais comme ça car gradle ne connait pas la fonction api() nécessaire à ma dépendance

                    buildscript {
                        repositories {
                            jcenter()
                            maven { url = "https://files.minecraftforge.net/maven" }
                    		
                    		maven {
                    			url "https://plugins.gradle.org/m2/"
                    		}
                    		
                    		mavenCentral()
                        }
                        dependencies {
                            classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
                    		classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.3'   
                    	}
                    }
                    
                    apply plugin: 'net.minecraftforge.gradle.forge'
                    apply plugin: 'com.github.johnrengelman.shadow'
                    apply plugin: 'com.github.johnrengelman.plugin-shadow'
                    
                    version = "1.0"
                    group = "com.drastic.twitchmod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
                    archivesBaseName = "TwitchMod"
                    
                    sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
                    compileJava {
                        sourceCompatibility = targetCompatibility = '1.8'
                    }
                    
                    minecraft {
                        version = "1.12.2-14.23.5.2847"
                        runDir = "run"
                    
                        mappings = "snapshot_20171003"
                    }
                    
                    dependencies {
                    	implementation fileTree(dir: 'libs', includes: ['*.jar']) 
                    }
                    
                    import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
                    
                    task relocateShadowJar(type: ConfigureShadowRelocation) {
                        target = tasks.shadowJar
                        prefix = "twitchmod" // Default value is "shadow"
                    
                    }
                    
                    tasks.shadowJar.dependsOn tasks.relocateShadowJar
                    
                    reobf {
                        shadowJar {}
                    }
                    
                    processResources {
                        inputs.property "version", project.version
                        inputs.property "mcversion", project.minecraft.version
                    
                        from(sourceSets.main.resources.srcDirs) {
                            include 'mcmod.info'
                                    
                            expand 'version':project.version, 'mcversion':project.minecraft.version
                        }
                            
                        from(sourceSets.main.resources.srcDirs) {
                            exclude 'mcmod.info'
                        }
                    }
                    
                    #Mon Sep 14 12:28:28 PDT 2015
                    distributionBase=GRADLE_USER_HOME
                    distributionPath=wrapper/dists
                    zipStoreBase=GRADLE_USER_HOME
                    zipStorePath=wrapper/dists
                    distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip
                    
                    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

                      Ah probablement que le fat jar n’inclut pas les ressources. As-tu déjà vérifié si le dossier assets est présent ou non dans le fat jar ?

                      api c’est pour les versions récentes de gradle, utilises compile à la place.

                      FeedBackF 1 réponse Dernière réponse Répondre Citer 0
                      • FeedBackF Hors-ligne
                        FeedBack @robin4002
                        dernière édition par

                        @robin4002 bonjour,
                        j’ai bien vérifié et mes assets / mcmod.info sont bien dans mon jar

                        Je pense que le problème vient de ForgeGradle car il est déprécié quand on met à jour gradle (ce que j’ai fait pour pouvoir utiliser shadow)

                        Malheureusement, je n’ai aucune idée de comment utiliser ForgeGradle 3.+

                        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

                          C’est presque pareil, base toi sur le mdk de forge 14.23.5.2855

                          FeedBackF 1 réponse Dernière réponse Répondre Citer 0
                          • FeedBackF Hors-ligne
                            FeedBack @robin4002
                            dernière édition par FeedBack

                            @robin4002 d’acc

                            j’ai réussi mais j’ai une erreur quand je fais un gradlew setupDecompWorkspace
                            0788b7fa-655a-43bc-ac7f-4e7493f125de-image.png

                            edit: j’ai trouvé le pourquoi mais pas la solution : le bon lien pour le userdev est : https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2847/forge-1.12.2-14.23.5.2847-userdev.jar
                            mais forge cherche
                            https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2847/forge-1.12.2-14.23.5.2847/userdev3.jar

                            buildscript {
                                repositories {
                                    maven { url = 'https://files.minecraftforge.net/maven' }
                                    maven { url "https://plugins.gradle.org/m2/" }
                                    jcenter()
                                    mavenCentral()
                                }
                                dependencies {
                                    classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true	
                            		classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'   
                            	}
                            }
                            
                            plugins{
                                id 'com.github.johnrengelman.shadow' version '5.2.0'
                            }
                            
                            apply plugin: 'net.minecraftforge.gradle'
                            apply plugin: 'eclipse'
                            apply plugin: 'maven-publish'
                            
                            version = "1.0.1"
                            group = "com.drastic.twitchmod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
                            archivesBaseName = "TwitchMod"
                            
                            sourceCompatibility = targetCompatibility = '1.8'
                            
                            compileJava {
                                sourceCompatibility = targetCompatibility = '1.8'
                            }
                            
                            println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
                            
                            minecraft {
                                mappings channel: 'snapshot', version: '20171003'
                            	
                            	runs {
                                    client {
                                        workingDirectory project.file('run')
                            
                                        // Recommended logging data for a userdev environment
                                        property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
                            
                                        // Recommended logging level for the console
                                        property 'forge.logging.console.level', 'debug'
                            
                                        mods {
                                            examplemod {
                                                source sourceSets.main
                                            }
                                        }
                                    }
                            
                                    server {
                                        workingDirectory project.file('run')
                            
                                        // Recommended logging data for a userdev environment
                                        property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
                            
                                        // Recommended logging level for the console
                                        property 'forge.logging.console.level', 'debug'
                            
                                        mods {
                                            examplemod {
                                                source sourceSets.main
                                            }
                                        }
                                    }
                            
                                    data {
                                        workingDirectory project.file('run')
                            
                                        // Recommended logging data for a userdev environment
                                        property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
                            
                                        // Recommended logging level for the console
                                        property 'forge.logging.console.level', 'debug'
                            
                                        args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/')
                            
                                        mods {
                                            examplemod {
                                                source sourceSets.main
                                            }
                                        }
                                    }
                                }
                            }
                            
                            dependencies {
                            	minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2847'
                            
                                shadow fileTree(dir: 'libs', include: ['*.jar'])
                            
                            	compile group: 'com.github.twitch4j', name: 'twitch4j', version: '1.3.1'
                            	shadow group: 'com.github.twitch4j', name: 'twitch4j', version: '1.3.1'
                            	shadow group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
                            }
                            
                            import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
                            
                            task relocateShadowJar(type: ConfigureShadowRelocation) {
                                target = tasks.shadowJar
                                prefix = "twitchmod"
                            
                            }
                            
                            tasks.shadowJar.dependsOn tasks.relocateShadowJar
                            
                            reobf {
                                shadowJar {}
                            }
                            
                            processResources {
                                inputs.property "version", project.version
                                inputs.property "mcversion", project.minecraft.version
                            
                                from(sourceSets.main.resources.srcDirs) {
                                    include 'mcmod.info'
                                            
                                    expand 'version':project.version, 'mcversion':project.minecraft.version
                                }
                                    
                                from(sourceSets.main.resources.srcDirs) {
                                    exclude 'mcmod.info'
                                }
                            }
                            
                            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

                              Ah mince, donc le setup forge gradle 3 pour la 1.12 est cassé 😕

                              La je n’ai pas de solution

                              FeedBackF 1 réponse Dernière réponse Répondre Citer 0
                              • FeedBackF Hors-ligne
                                FeedBack @robin4002
                                dernière édition par

                                @robin4002 on peut fork au pire nn ?

                                FeedBackF 1 réponse Dernière réponse Répondre Citer 0
                                • FeedBackF Hors-ligne
                                  FeedBack @FeedBack
                                  dernière édition par

                                  Bon j’ai trouvé !
                                  J’ai réussi avec cette config :

                                  buildscript {
                                      repositories {
                                          maven { url = 'https://files.minecraftforge.net/maven' }
                                          maven { url "https://plugins.gradle.org/m2/" }
                                          jcenter()
                                          mavenCentral()
                                  		maven { url 'https://jitpack.io' }
                                          gradlePluginPortal()		
                                      }
                                      dependencies {
                                          classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
                                  		classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
                                  	}
                                  }
                                  
                                  plugins{
                                  	id 'java'
                                  }
                                  
                                  apply plugin: 'net.minecraftforge.gradle.forge'
                                  apply plugin: 'eclipse'
                                  apply plugin: 'com.github.johnrengelman.shadow'
                                  
                                  version = "1.0.0"
                                  group = "com.drastic.twitchmod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
                                  archivesBaseName = "TwitchMod-RedSkyll"
                                  
                                  sourceCompatibility = targetCompatibility = '1.8'
                                  
                                  compileJava {
                                      sourceCompatibility = targetCompatibility = '1.8'
                                  }
                                  
                                  println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
                                  
                                  minecraft {
                                      version = "1.12.2-14.23.5.2847"
                                      runDir = "run"
                                  
                                      mappings 'snapshot_20171003'
                                  }
                                  
                                  
                                  dependencies {
                                     shadow fileTree(dir: 'libs', include: ['*.jar'])
                                  }
                                  
                                  import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
                                  
                                  task relocateShadowJar(type: ConfigureShadowRelocation) {
                                      target = tasks.shadowJar
                                  	prefix = "twitchmod"
                                  }
                                  
                                  tasks.shadowJar.dependsOn tasks.relocateShadowJar
                                  
                                  reobf {
                                  	shadowJar {}
                                  }
                                  
                                  processResources {
                                      inputs.property "version", project.version
                                      inputs.property "mcversion", project.minecraft.version
                                  
                                      from(sourceSets.main.resources.srcDirs) {
                                          include 'mcmod.info'
                                                  
                                          expand 'version':project.version, 'mcversion':project.minecraft.version
                                      }
                                          
                                      from(sourceSets.main.resources.srcDirs) {
                                          exclude 'mcmod.info'
                                      }
                                  }
                                  
                                  #Mon Sep 14 12:28:28 PDT 2015
                                  distributionBase=GRADLE_USER_HOME
                                  distributionPath=wrapper/dists
                                  zipStoreBase=GRADLE_USER_HOME
                                  zipStorePath=wrapper/dists
                                  distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002R robin4002 marked this topic as a question on
                                  • robin4002R robin4002 has marked this topic as solved on
                                  • robin4002R robin4002 a déplacé ce sujet de Support pour les moddeurs sur
                                  • 1 / 1
                                  • Premier message
                                    Dernier message
                                  Design by Woryk
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB