Utiliser MCP dans les Plugins

ForgeGradle est un plugin Gradle qui intègre le workflow MCP dans le système de build Gradle. Il gère la mise en place de l’espace de travail, ainsi que la ré-obfuscation de votre plugin.

Note

Puisque ForgeGradle dépend de Gradle, les pages qui suivent supposent que vous utilisez Gradle pour build votre plugin. Voir Configurer Gradle pour commencer.

Configurer ForgeGradle

Vous pouvez choisir entre deux types d’espaces de travail :

  • Espace de travail Vanilla : Supporte les plugins pour SpongeVanilla et SpongeForge.

  • Espace de travail Forge : Supporte seulement les plugins pour SpongeForge (et pas SpongeVanilla).

Note

Dans la plupart des cas, l’espace de travail Vanilla peut être utilisé pour SpongeVanilla et SpongeForge. Dans certains cas, il peut y avoir des problèmes sur une des plateformes à cause des changements dans le code de Minecraft par Forge. Veillez à toujours tester votre plugin sur les deux plateformes lors de l’utilisation de MCP.

Choix d’une version de mappings MCP

Pour configurer un espace de travail MCP, vous devez spécifier la version de mappings de MCP qui sera utilisée pour dé-obfusquer les sources de Minecraft avec des noms lisibles. Une liste des versions de mappings MCP est disponible sur la Page d’exportation de MCPBot.

Il y a des versions stables (publiées de temps à autres) et des snapshots quotidiennes qui contiennent les derniers changements de noms. Si vous n’avez pas besoin d’un nom spécifique qui a été ajouté récemment, utilisez une version stable (si disponible pour votre version de Minecraft), sinon utilisez la dernière version snapshot.

Cliquez sur le bouton pour la version que vous souhaitez utiliser et sélectionnez « Use in ForgeGradle » (Utiliser dans ForgeGradle). Puis copiez la version fournie dans votre script de build Gradle (insérez-le dans l’espace réservé ``snapshot_xxx` dessous).

Espace de travail Vanilla

buildscript {
    repositories {
        maven {
            name = 'forge'
            url = 'http://files.minecraftforge.net/maven'
        }
    }

    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
    }
}

plugins {
    id 'org.spongepowered.plugin' version '0.8.1'
    id 'net.minecrell.vanillagradle.server' version '2.2-3'
}

minecraft {
    version = '1.10.2'
    // TODO: Replace with your mappings version, e.g. snapshot_20170120
    mappings = 'YOUR_MAPPINGS_VERSION'
}

Espace de travail Forge

buildscript {
    repositories {
        maven {
            name = 'forge'
            url = 'http://files.minecraftforge.net/maven'
        }
    }

    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
    }
}

plugins {
    id 'org.spongepowered.plugin' version '0.8.1'
}

apply plugin: 'net.minecraftforge.gradle.forge'

minecraft {
    forgeVersion = '1944' // TODO: Configure Forge build here
    // TODO: Replace with your mappings version, e.g. snapshot_20170120
    mappings = 'YOUR_MAPPINGS_VERSION'
}

Mettre en place l’espace de travail

Chaque fois que vous mettez à jour la version de Minecraft ou les versions de mapping, ou voulez ré-importer votre projet, vous devez commencer par mettre en place votre espace de travail à l’aide de Gradle. Pour faire ceci, exécutez la tâche de Gradle setupDecompWorkspace, avant d’importer le projet dans votre IDE :

gradle setupDecompWorkspace

Maintenant vous pouvez importer votre projet Gradle, comme décrit dans Configurer Gradle. Si votre projet est déjà importé, veillez à actualiser la configuration de Gradle pour que votre IDE puisse enregistrer les nouvelles dépendances de Minecraft.

Compiler votre Plugin

ForgeGradle configure automatiquement votre plugin pour ré-obfusquer les mappings Searge lors de la compilation pour que vous puissiez l’exécuter en production. Vérifiez que vous utiliser la tâche build de Gradle, et pas jar directement.

gradle clean build