A estrutura do projeto Sponge

O projeto Sponge consiste de diferentes subprojetos, hospedados em diversos repositórios no GitHub. Aqui um breve resumo antes de entrar em detalhes:

Projeto

Descrição

O que é feito no repositório?

SpongeAPI

A própria API

Desenvolvimento da própria API

SpongeForge

Uma implementação da SpongeAPI construída em cima do Forge

Desenvolvimento das partes do SpongeForge que dependem do Forge

SpongeVanilla

Uma implementação da SpongeAPI construída em cima do Minecraft Vanilla

Desenvolvimento da parte Vanilla do SpongeForge

SpongeCommon

O código compartilhado entre o SpongeForge e o SpongeVanilla

Desenvolvimento de todo o código compartilhado entre o SpongeForge e o SpongeVanilla

Mixin

A ferramenta utilizada para injetar as implementações na estrutura de código

Desenvolvimento da nossa solução para ligar o Sponge ao servidor de Minecraft

SpongeDocs

A documentação oficial do projeto Sponge

Expansão, correção e desenvolvimento da documentação do Sponge

SpongeHome

O site para o SpongeProject

Desenvolvimento do nosso site

Ore

Solução de hospedagem de plugin

Desenvolvimento da nossa solução de hospedagem de plugins

SpongeAuth

O portal de autenticação e SSO para os nossos websites

Desenvolvimento do nosso portal de autenticação e da solução SSO

SpongeCommon, SpongeForge e SpongeVanilla

O repositório SpongeCommon é a base que contém todo o código compartilhado entre o SpongeForge e o SpongeVanilla. Os repositórios do SpongeForge e do SpongeVanilla contêm todo o código que não pode ser compartilhado entre eles, já que o Forge requer algumas coisas específicas que não iriam funcionar no Vanilla e vice-versa.

Quando você se refere ao SpongeForge, você está basicamente se referindo a tudo contido nos respositórios do SpongeCommon e SpongeForge. O mesmo se aplica para o SpongeVanilla e SpongeCommon. Por esta razão que compilar o SpongeForge ou o SpongeVanilla sem o SpongeCommon não irá funcionar.

SpongeHome

SpongeHome é o website do Projeto Sponge. É escrito em Golang, e usa a biblioteca go-macaron. Socorre-se de SCSS como pré-processador de CSS.

Ore

O Ore é a nossa própria estrutura de alojamento de plugins. É escrito em Scala, baseado na Framework Play, e é open source, claro!

Como tudo se encaixa

A imagem mostra as diversas partes das implementações do Sponge e como elas interagem entre si e suas dependências. No lado esquerdo há um típico setup do SpongeForge com alguns plugins da SpongeAPI, um mod do Forge e um híbrido que usa o Forge (como mod) e Sponge (como plugin) para interagir. No lado direito há um típico setup do SpongeVanilla. Nota-se que o SpongeVanilla não suporta mods do Forge ou híbridos, já que não há a funcionalidade do Forge no SpongeVanilla:

Repo Overview