Структура проекта 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. Перед тем, как перейти к подробностям, ознакомьтесь с кратким обзором:

Проект

Описание

Что завершено в репозитории?

SpongeAPI

Сам API

Сама разработка API

SpongeForge

Реализация SpongeAPI, построенная на основе Forge

Разработка частей SpongeForge, которые зависят от Forge

SpongeVanilla

Реализация SpongeAPI, построенная непосредственно на основе оригинального Minecraft

Разработки SpongeVanilla и SpongeForge во многом аналогичны

SpongeCommon

Общий код между SpongeForge и SpongeVanilla

Разработка всего кода, который разделён между SpongeForge и SpongeVanilla

Mixin

Инструмент, используемый для совмещения реализаций и нижележащего программного кода

Разработка нашего решения для включения Sponge в сервер Minecraft

SpongeDocs

Официальная документация проекта Sponge

Расширение, исправление и написание SpongeDocs

SpongeHome

Веб-сайт для SpongeProject

Разработка нашего веб-сайта

Ore

Решения для хостинга плагинов

Разработка нашего решения хостинга плагинов

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:

Repo Overview