Структура проекта Sponge
Предупреждение
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. Перед тем, как перейти к подробностям, ознакомьтесь с кратким обзором:
Проект |
Описание |
Что завершено в репозитории? |
---|---|---|
Сам API |
Сама разработка API |
|
Реализация SpongeAPI, построенная на основе Forge |
Разработка частей SpongeForge, которые зависят от Forge |
|
Реализация SpongeAPI, построенная непосредственно на основе оригинального Minecraft |
Разработки SpongeVanilla и SpongeForge во многом аналогичны |
|
Общий код между SpongeForge и SpongeVanilla |
Разработка всего кода, который разделён между SpongeForge и SpongeVanilla |
|
Инструмент, используемый для совмещения реализаций и нижележащего программного кода |
Разработка нашего решения для включения Sponge в сервер Minecraft |
|
Официальная документация проекта Sponge |
Расширение, исправление и написание SpongeDocs |
|
Веб-сайт для SpongeProject |
Разработка нашего веб-сайта |
|
Решения для хостинга плагинов |
Разработка нашего решения хостинга плагинов |
SpongeCommon, SpongeForge и SpongeVanilla
Репозиторий SpongeCommon - это база, которая содержит весь код, используемый совместно реализациями SpongeForge и SpongeVanilla. Репозитории SpongeForge и SpongeVanilla содержат все коды, которые не могут использоваться ими совместно, поскольку для Forge требуются специфические для него условия, которые не будут работать в Vanilla и наоборот.
При работе с реализацией SpongeForge Вы должны понимать, что на самом деле речь идёт едином коде, образованном репозиториями SpongeCommon и SpongeForge. Ситуация со связкой SpongeCommon + SpongeVanilla аналогична. Это является причиной невозможности получить рабочий вариант SpongeForge или SpongeVanilla без включения в них SpongeCommon.
SpongeHome
SpongeHome — это веб-сайт SpongeProject. Он написан в Golang, с помощью библиотеки go-macaron. Мы используем SCSS как препроцессор CSS.
Ore
Ore — наше решение для хостинга плагинов. Ore написан в Scala, на основе Play Framework и, конечно же, имеет открытый исходный код!
Как всё взаимодействует друг с другом
На следующем рисунке изображены различные компоненты Sponge и то, как они взаимодействуют друг с другом и с из зависимостями. Слева представлена классическая сборка с несколькими плагинами на основе SpongeAPI, модом Forge и гибридом, который использует Forge (являясь его модом) и Sponge (являясь его плагином) для взаимодействия. Справа — сборка на основе SpongeVanilla. Ещё раз отметим, что SpongeVanilla не поддерживает ни моды Forge, ни гибридные плагины, потому что в SpongeVanilla не включен функционал, который есть в Forge: