CPM(codificador del paquete de modificaciones)

Advertencia

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!

El`Mod Coder Pack`_(resumido MCP) fue originalmente creado para la colección de guiones, herramientas y mapeos para crear el desarrollo de las modificaciones de Minecraft facilmente. Como Minecraft no es de codigo abierto y su mayor parte esta ofuscado, desarrollar nuevamente seria difícil ya que el codigo original era casi ilegible. MCP fue diseñado como un espacio de trabajo en el que los desarrolladores pudieran crear modificaciones usando descompresiones, el codigo Minecraft (humanamente legibles) descomprimido.

Flujo de trabajo

Mediante MCP añade pasos adicionales para el flujo de trabajo de los desarrolladores de complementos, simplificado a continuacion:

  • Configura el área de trabajo MCP
    • Descarga los archivos cliente/servidor de Minecraft

    • Desofusca el código (cambiando los nombres ofuscados a nombres legibles por humanos)

    • Desompila el codigo (generando archivos fuente desde las clases binarias)

  • Crea un complemento usando la fuente desofuscada de Minecraft

  • Re-ofusca el código del complemento de modo que pueda ser usado con el código ofuscado en tiempo de ejecución

Mapeos

MCP usa dos conjuntos diferentes de asignaciones que se aplican por separado durante la configuración del espacio de trabajo. La diferencia entre las asignaciones Notch, Searge y * MCP* se pueden ver en el siguiente ejemplo:

// Notch
boolean a(rw ☃);

// Searge
boolean func_72838_d(Entity p_72838_1_);

// MCP
boolean spawnEntityInWorld(Entity entityIn);
  • Mapeos Notch son los nombres originales en el binario ofuscado de Minecraft. Estos cambian regularmente con las nuevas versiones de Minecraft.

  • Mapeos Searge contienen nombres únicos para todos los métodos, campos y parámetros ofuscados, así como también nombres legibles para las clases. A diferencia de las asignaciones de Notch, generalmente permanecen iguales en las actualizaciones de Minecraft a menos que las firmas de método cambien. Para SpongeVanilla y SpongeForge, también son usadas en la producción (fuera de tu IDE).

  • Mapeos MCP contienen nombres legibles por humanos, en gran parte aportados por la comunidad. Por lo general, solo se usan en el entorno de desarrollo y luego se vuelven a ofuscar a mapeos Notch o Searge.

Nota

When you create a plugin, you work with MCP mappings in your development environment. To run the plugin in production (outside of your IDE) you need to re-obfuscate it to Searge mappings.

Usando el Bot MCP

The MCPBot is available in the Sponge and MCP IRC channels, or in the #bot-spam channel on Discord, and allows you to lookup MCP mappings or contribute new names. You can send commands to the bot by sending messages in one of the supported channels (e.g. #spongedev).

Truco

Échale un vistazo a la MCPBot help page para una lista de todos los comandos disponibles.

Aportando nuevos nombres

También puedes aportar nuevos nombres para miembros de clase que aun no tienen nombre. Échale un vistazo al MCPBot help page para mas instrucciones.

Nota

No puedes cambiar nombres existentes. Si quieres sugerir cambiar un mapeo existente, crea un nuevo asunto en el MCPBot issue tracker on GitHub.

Ver también

Mod Coder Pack

Sitio web oficial del Paquete de Codificación para Modificaciones.

MCPBot help page

Mas información sobre el uso del MCPBot.