MCP (Mod Coder Pack)

Avertissement

These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!

Le Mod Coder Pack (MCP) a été originalement créé comme collection de scripts, outils et mappings pour faciliter le développement de mods pour Minecraft. Minecraft n’étant pas open-source et la plupart du temps offusqué, le développement contre cela était doulouré étant donné que le code d’origine était presque illisible. MCP a été conçu comme un espace de travail dans lequel les développeurs peuvent créer des mods en utilisant le code décompilé, déoffusqué (lisible) de Minecraft.

Workflow

L’utilisation de MCP ajoute des étapes supplémentaires au workflow de développement de plugins, simplifié ci-dessous :

  • Mettre en place l’espace de travail de MCP
    • Télécharger les fichiers de Minecraft client/serveur

    • Déobfusquer le code (changer les noms obfusqués en noms plus lisibles)

    • Décompiler le code (générer des fichiers sources depuis les classes binaires)

  • Créer un plugin en utilisant les sources de Minecraft déobfusquées

  • Ré-obfusquer le code du plugin pour qu’il puisse être utilisé avec le code obfusqué au runtime

Mappings

MCP utilise deux ensembles différents de mappings qui sont appliqués séparément lors de la configuration de l’espace de travail. La différence entre les mappings Notch, Searge et MCP peuvent être vus dans l’exemple ci-dessous :

// Notch
boolean a(rw ☃);

// Searge
boolean func_72838_d(Entity p_72838_1_);

// MCP
boolean spawnEntityInWorld(Entity entityIn);
  • Les Notch mappings sont les noms originaux dans le code binaire obfusqué de Minecraft. Ils changent régulièrement avec les nouvelles versions de Minecraft.

  • Les Searge mappings contiennent des noms uniques pour tous les paramètres, méthodes et variables obfusqués, ainsi que des noms lisibles pour les classes. Contrairement aux Notch mappings ils restent habituellement les mêmes à travers les mises à jour de Minecraft à moins que les signatures de méthodes changent. Pour SpongeVanilla et SpongeForge, ils sont aussi utilisés en production (en dehors de l’IDE).

  • Les MCP mappings contiennent des noms lisibles contribués en grande partie par la communauté. Ils sont généralement seulement utilisés dans l’environnement de développement, et ensuite ré-obfusqués en mappings Searge ou Notch.

Note

Quand vous créez un plugin, vous travaillez avec les mappingss MCP dans votre environnement de développement. Pour lancer le plugin en production (en dehors de l’IDE) vous avez besoin de le ré-obfusquer avec les mappings Searge.

Utiliser le MCPBot

Le MCPBot est disponible dans les canaux IRC de MCP et Sponge et le canal #bot-spam sur Discord, il vous permet de rechercher les mappings MCP ou de contribuer de nouveaux noms. Vous pouvez envoyer des commandes au bot en envoyant des messages dans un des canaux supportés (par exemple #spongedev).

Astuce

Allez voir la MCPBot help page pour la liste des commandes disponibles.

Contribuer de nouveaux noms

Vous pouvez aussi contribuer des noms pour les membres de classes qui sont encore sans nom. Allez voir la MCPBot help page pour en savoir plus.

Note

Vous ne pouvez pas changer les noms existants. Si vous souhaitez suggérer un changement pour un mapping existant, créez une nouvelle issue sur le MCPBot issue tracker sur GitHub.

Voir aussi

Mod Coder Pack

Site officiel du Mod Coder Pack.

MCPBot help page

Plus d’informations sur l’utilisation de MCPBot.