Sponge プロジェクトの構成
Sponge プロジェクトは GitHub のリポジトリでホストされた異なる下位プロジェクトで構成されています。詳細に入る前の簡単な概要を示します。
プロジェクト |
説明 |
What is done in the repository? |
---|---|---|
API そのもの |
API そのものの開発 |
|
Forge 上に実装された SpongeAPI 実装 |
Development of the parts of SpongeForge which rely on Forge |
|
直接バニラの Minecraft 上に実装された SpongeAPI 実装 |
Development of the Vanilla Counterpart of the SpongeForge repository |
|
The shared code between SpongeForge and SpongeVanilla |
Development of all code which is shared between SpongeForge and SpongeVanilla |
|
The tool used to inject the implementations into the underlying code structure |
Development of our solution to hook Sponge into the Minecraft server |
|
The official SpongeProject Documentation |
SpongeDocs の拡充、修正、執筆 |
|
Sponge プロジェクトの Web サイト |
Web サイトの開発 |
|
プラグインホスティングの解決策 |
Development of our plugin hosting solution |
|
The authentication portal and SSO for our websites |
Development of our authentication portal and SSO solution |
SpongeCommon 、 SpongeForge そして SpongeVanilla
The SpongeCommon repository is the base which contains all code which is shared between the SpongeForge and SpongeVanilla implementation. The SpongeForge and SpongeVanilla repositories contain all code which can’t be shared between them, as Forge requires some Forge specific things which won’t work on Vanilla and vice versa.
When you refer to the SpongeForge implementation, you’re basically talking about everything contained in the SpongeCommon and SpongeForge repositories. The same applies for SpongeVanilla and SpongeCommon. This is the reason why building SpongeForge or SpongeVanilla from the repository without including SpongeCommon won’t work.
SpongeHome
SpongeHome is the Sponge Project’s website. It’s written in Golang, using the go-macaron library. It uses SCSS as its CSS preprocessor.
Ore
Ore is our very own plugin hosting solution. It’s written in Scala, based on the Play Framework and of course open source!
How everything is tied together
The image shows the various parts of the Sponge Implementations and how they interact with each other and their dependencies. On the left side is a typical SpongeForge setup with some SpongeAPI plugins, a Forge mod and a hybrid which uses Forge (as a mod) and Sponge (as a plugin) to interact. On the right side there’s a typical SpongeVanilla setup. You’ll notice that SpongeVanilla doesn’t support Forge mods or the hybrid, because SpongeVanilla is missing the Forge functionality: