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 Project는 GitHub의 다양한 저장소에서 호스팅되는 서로 다른 하위 프로젝트로 구성됩니다. 자세히 설명하기 전에 간단하게 개요를 보여 드리겠습니다.
프로젝트 |
설명 |
저장소에 어떤 작업을 하나요? |
---|---|---|
API 자체 |
API 자체를 개발합니다. |
|
Forge에서 동작하는 SpongeAPI 구현체입니다. |
Forge에 의존하는 SpongeForge를 개발합니다. |
|
바닐라 마인크래프트에 직접 동작하는 SpongeAPI 구현체입니다. |
SpongeForge에서 바닐라와 관련된 개발을 합니다. |
|
SpongeForge와 SpongeVanilla가 공유하는 코드 집합입니다. |
SpongeForge와 SpongeVanilla가 공유하는 모든 코드 집합을 개발합니다. |
|
기본 코드 구조에 구현을 주입하는 데 사용되는 도구입니다. |
Sponge를 마인크래프트 서버에 연결하는 방안을 개발합니다. |
|
Sponge 프로젝트 공식 문서입니다. |
Sponge 문서를 작성하고, 고치고, 확장합니다. |
|
Sponge 프로젝트의 웹사이트입니다. |
웹사이트를 개발합니다. |
|
플러그인 호스팅 방안 |
Development of our plugin hosting 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 SpongeProject’s website. It’s written in Golang, using the go-macaron library. It uses SCSS as it’s CSS preprocessor.
광물
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: