The Structure of the Sponge Project

Предупреждение

This documentation refers to an outdated SpongeAPI version and is no longer actively maintained. While the code examples still work for that API version, the policies, guidelines, and some links may have changed. Please refer to the latest version of the documentation for those.

Проект Sponge состоит из нескольких подпроектов, расположенных в репозиториях на GitHub. Перед тем, как перейти к подробностям, ознакомьтесь с кратким обзором:

Project Описание What is done in the repository?
SpongeAPI The API itself Development of the API itself
SpongeForge A SpongeAPI implementation built on top of Forge Development of the parts of SpongeForge which rely on Forge
SpongeVanilla A SpongeAPI implementation built directly on top of Vanilla Minecraft Development of the Vanilla Counterpart of the SpongeForge repository
SpongeCommon The shared code between SpongeForge and SpongeVanilla Development of all code which is shared between SpongeForge and SpongeVanilla
Mixin The tool used to inject the implementations into the underlying code structure Development of our solution to hook Sponge into the Minecraft server
SpongeDocs The official SpongeProject Documentation Expanding, fixing and writing the SpongeDocs
SpongeHome Веб-сайт для SpongeProject Разработка нашего веб-сайта
Ore Plugin hosting solution Development of our plugin hosting solution

SpongeCommon, SpongeForge and SpongeVanilla

Репозиторий SpongeCommon - это база, которая содержит весь код, используемый совместно реализациями SpongeForge и SpongeVanilla. Репозитории SpongeForge и SpongeVanilla содержат все коды, которые не могут использоваться ими совместно, поскольку для Forge требуются специфические для него условия, которые не будут работать в Vanilla и наоборот.

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 — это веб-сайт SpongeProject. Он написан в Golang, с помощью библиотеки go-macaron. Мы используем SCSS как препроцессор CSS.

Ore

Ore — наше решение для хостинга плагинов. Ore написан в Scala, на основе Play Framework и, конечно же, имеет открытый исходный код!

Как всё взаимодействует друг с другом

На следующем рисунке изображены различные компоненты Sponge и то, как они взаимодействуют друг с другом и с из зависимостями. Слева представлена классическая сборка с несколькими плагинами на основе SpongeAPI, модом Forge и гибридом, который использует Forge (являясь его модом) и Sponge (являясь его плагином) для взаимодействия. Справа — сборка на основе SpongeVanilla. Ещё раз отметим, что SpongeVanilla не поддерживает ни моды Forge, ни гибридные плагины, потому что в SpongeVanilla не включен функционал, который есть в Forge:

Repo Overview