๋ง์ธํฌ๋ํํธ ์๋ฒ์์ ํ ๋ฆด๋ ์ด ๊ฒ์์ ์ฆ๊ธธ ์ ์๋ ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ํ๋ ์ด์ด๋ค์ด ํ์ ๋๋์ด ์์ฐจ์ ์ผ๋ก ์์ดํ ์ ์์งํ๊ณ ์ ๋ฌํ๋ ํ๋ ๊ฒ์์ ์ ๊ณตํฉ๋๋ค.
- ์๋ฒ ํ๊ฒฝ ๋ฐ Dependencies
- ๊ฒ์ ๊ตฌ์กฐ
- ์ค์ ํ์ผ
- ์ฝ๋ ๊ตฌ์กฐ
- ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
- ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฌธ์ ํด๊ฒฐ
- ๋ผ์ด์ผ์ค
- ๊ธฐ์ฌํ๊ธฐ
- ๋ฌธ์
- Java: 21 ์ด์
- ๋ง์ธํฌ๋ํํธ ์๋ฒ: Paper 1.21.1 ์ด์
- Maven: 3.6.0 ์ด์ (๋น๋์ฉ)
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>ํ๋ฌ๊ทธ์ธ ์์ฒด๋ ํน๋ณํ ๊ถํ์ ์๊ตฌํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋ช ๋ น์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ ๋ฐฐ์ : ํ๋ ์ด์ด๋ค์ด
/๋ ๋ํ๋๋/๋ธ๋ฃจํ๋ช ๋ น์ด๋ก ํ์ ์ฐธ๊ฐ - ๊ฒ์ ์์: ๊ด๋ฆฌ์๊ฐ
/๊ฒ์์์๋ช ๋ น์ด๋ก ๊ฒ์ ์์ - ์์ฐจ ์งํ: ๊ฐ ํ์ ์ฒซ ๋ฒ์งธ ์ฃผ์๊ฐ ์ฒซ ๋ฒ์งธ ๋ชฉํ ์์ดํ ์์ง
- ์์ดํ ์ ๋ฌ: ๋ชฉํ ๋ฌ์ฑ ์ ๋ค์ ์ฃผ์์๊ฒ ์ธ๋ฒคํ ๋ฆฌ์ ์์น ์ ๋ฌ
- ๋ชฉํ ์๋ฃ: ๋ชจ๋ ๋ชฉํ ์์ดํ ์ ์์๋๋ก ์์งํ ํ์ด ์น๋ฆฌ
| ๋ช ๋ น์ด | ์ค๋ช | ์ฌ์ฉ๋ฒ |
|---|---|---|
/๋ ๋ํ |
๋ ๋ํ์ ์ฐธ๊ฐ | ๋ชจ๋ ํ๋ ์ด์ด |
/๋ธ๋ฃจํ |
๋ธ๋ฃจํ์ ์ฐธ๊ฐ | ๋ชจ๋ ํ๋ ์ด์ด |
/๊ฒ์์์ |
ํ ๋ฆด๋ ์ด ๊ฒ์ ์์ | ๊ด๋ฆฌ์ |
/๊ฒ์์ข
๋ฃ |
๊ฒ์ ๊ฐ์ ์ข ๋ฃ | ๊ด๋ฆฌ์ |
- ํ ๊ด๋ฆฌ: ๋ ๋ํ๊ณผ ๋ธ๋ฃจํ์ผ๋ก ๊ตฌ๋ถ
- ์์ ์์คํ : ํ ๋ด ํ๋ ์ด์ด ์์๋๋ก ์ฃผ์ ์ญํ ์ํ
- ์์ดํ ์ ๋ฌ: ์ฃผ์ ๋ณ๊ฒฝ ์ ์ธ๋ฒคํ ๋ฆฌ์ ์์น ์๋ ๊ตํ
- ์งํ๋ฅ ํ์: ๋ณด์ค๋ฐ์ ์ก์ ๋ฐ๋ก ์ค์๊ฐ ์งํ ์ํฉ ํ์
- ์ค์ฝ์ด๋ณด๋: ํ๋ณ ๊ตฌ์ฑ์๊ณผ ์์ ํ์
# ํ ๋ฆด๋ ์ด: ์์ดํ
๋ชฉํ(์์๋๋ก)
objectives:
- DIAMOND_BLOCK
- TINTED_GLASS
- ENCHANTING_TABLE
- NAME_TAG
# ์ก์
๋ฐ ์
๋ฐ์ดํธ ์ฃผ๊ธฐ(ํฑ). 10ํฑ=0.5์ด
actionbarPeriodTicks: 10name: RelayPlugin
version: '1.0-SNAPSHOT'
main: yd.kingdom.relayPlugin.RelayPlugin
api-version: '1.21'
commands:
๋ ๋ํ:
description: ๋ ๋ํ์ผ๋ก ์์
usage: /๋ ๋ํ
๋ธ๋ฃจํ:
description: ๋ธ๋ฃจํ์ผ๋ก ์์
usage: /๋ธ๋ฃจํ
๊ฒ์์์:
description: ํ ๋ฆด๋ ์ด ๊ฒ์ ์์
usage: /๊ฒ์์์
๊ฒ์์ข
๋ฃ:
description: ํ ๋ฆด๋ ์ด ๊ฒ์ ์ข
๋ฃ
usage: /๊ฒ์์ข
๋ฃyd.kingdom.relayPlugin/
โโโ RelayPlugin.java # ๋ฉ์ธ ํ๋ฌ๊ทธ์ธ ํด๋์ค
โโโ command/ # ๋ช
๋ น์ด ์ฒ๋ฆฌ
โ โโโ RedTeamCommand.java # ๋ ๋ํ ์ฐธ๊ฐ ๋ช
๋ น์ด
โ โโโ BlueTeamCommand.java # ๋ธ๋ฃจํ ์ฐธ๊ฐ ๋ช
๋ น์ด
โ โโโ GameStartCommand.java # ๊ฒ์ ์์ ๋ช
๋ น์ด
โ โโโ GameStopCommand.java # ๊ฒ์ ์ข
๋ฃ ๋ช
๋ น์ด
โโโ manager/ # ํต์ฌ ๊ด๋ฆฌ ํด๋์ค
โ โโโ GameManager.java # ๊ฒ์ ์งํ ๊ด๋ฆฌ
โ โโโ TeamManager.java # ํ ๋ฐ ํ๋ ์ด์ด ๊ด๋ฆฌ
โโโ service/ # ์๋น์ค ํด๋์ค
โ โโโ ScoreboardService.java # ์ค์ฝ์ด๋ณด๋ ๊ด๋ฆฌ
โโโ listener/ # ์ด๋ฒคํธ ๋ฆฌ์ค๋
โ โโโ ItemProgressListener.java # ์์ดํ
์งํ ๊ฐ์ง
โโโ util/ # ์ ํธ๋ฆฌํฐ ํด๋์ค
โโโ InventoryUtil.java # ์ธ๋ฒคํ ๋ฆฌ ๊ด๋ จ ์ ํธ๋ฆฌํฐ
- ํ๋ฌ๊ทธ์ธ์ ๋ฉ์ธ ํด๋์ค
- ๋ชจ๋ ๋งค๋์ ์ ์๋น์ค ์ด๊ธฐํ
- ๋ช ๋ น์ด์ ๋ฆฌ์ค๋ ๋ฑ๋ก
- ๊ฒ์์ ์ ์ฒด์ ์ธ ์งํ ๊ด๋ฆฌ
- ํ๋ณ ์งํ ๋จ๊ณ ์ถ์
- ์์ดํ ์ ๋ฌ ๋ฐ ์์น ๊ตํ ์ฒ๋ฆฌ
- ๋ณด์ค๋ฐ์ ์ก์ ๋ฐ ๊ด๋ฆฌ
- ํ๋ณ ํ๋ ์ด์ด ๊ด๋ฆฌ
- ํ ๋ด ์์ ๊ด๋ฆฌ
- ํ๋ ์ด์ด ํ ๋ณ๊ฒฝ ์ฒ๋ฆฌ
- ํ๋ณ ์ค์ฝ์ด๋ณด๋ ์์ฑ ๋ฐ ๊ด๋ฆฌ
- ํ๋ ์ด์ด๋ณ ๋ง์ถคํ ๋ณด๋ ํ์
- ์์ดํ ํ๋ ์ด๋ฒคํธ ๊ฐ์ง
- ์ ์, ์ฉ๊ด๋ก ์ถ์ถ, ์ธ๋ฒคํ ๋ฆฌ ํด๋ฆญ ๋ฑ ๊ฐ์ง
git clone https://github.com/your-username/RelayPlugin.git
cd RelayPlugin
mvn clean package- ์์ฑ๋
target/RelayPlugin-1.0-SNAPSHOT-shaded.jarํ์ผ์ ์๋ฒ์pluginsํด๋์ ๋ณต์ฌ - ์๋ฒ ์ฌ์์ ๋๋ ํ๋ฌ๊ทธ์ธ ๋ฆฌ๋ก๋
- ํ ๋ฐฐ์ : ํ๋ ์ด์ด๋ค์ด
/๋ ๋ํ๋๋/๋ธ๋ฃจํ์ผ๋ก ํ ์ฐธ๊ฐ - ๊ฒ์ ์์: ๊ด๋ฆฌ์๊ฐ
/๊ฒ์์์๋ช ๋ น์ด ์คํ - ๊ฒ์ ์งํ: ๊ฐ ํ์ ์ฃผ์๊ฐ ์์๋๋ก ๋ชฉํ ์์ดํ ์์ง
- ๊ฒ์ ์ข
๋ฃ: ๋ชจ๋ ๋ชฉํ ์๋ฃ ์ ์๋ ์ข
๋ฃ ๋๋
/๊ฒ์์ข ๋ฃ๋ก ๊ฐ์ ์ข ๋ฃ
config.yml ํ์ผ์์ ๋ชฉํ ์์ดํ
๊ณผ ์ก์
๋ฐ ์
๋ฐ์ดํธ ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
- ์์ดํ ํ๋, ์ ์, ์ฉ๊ด๋ก ์ถ์ถ ๋ฑ ์๋ ๊ฐ์ง
- ์ธ๋ฒคํ ๋ฆฌ ํด๋ฆญ ์์๋ ์ค์๊ฐ ๊ฐ์ง
- ์ฃผ์ ๋ณ๊ฒฝ ์ ์ธ๋ฒคํ ๋ฆฌ์ ์์น ์๋ ๊ตํ
- ์์ดํ ์์ค ๋ฐฉ์ง
- ๋ณด์ค๋ฐ๋ก ํ์ฌ ๋ชฉํ์ ์งํ๋ฅ ํ์
- ์ก์ ๋ฐ๋ก ๊ฒฝ๊ณผ ์๊ฐ ํ์
- ์ค์ฝ์ด๋ณด๋๋ก ํ ๊ตฌ์ฑ์๊ณผ ์์ ํ์
- ํ์ฌ ์ฃผ์๊ฐ ์ด๋ฏธ ๋ชฉํ ์์ดํ ์ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ ์๋ ์ ๊ฑฐ
- ๋ค์ ์ฃผ์๊ฐ ๋ค์ ๋ชฉํ ์์ดํ ์ ๋ฏธ๋ฆฌ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ ์๋ ์ ๊ฑฐ
- ์ฃผ์๋ ์๋ฐ์ด๋ฒ ๋ชจ๋
- ๋๊ธฐ์๋ ๊ด์ ์ ๋ชจ๋
- ๊ฒ์ ์ข ๋ฃ ์ ๋ชจ๋ ํ๋ ์ด์ด ์๋ฐ์ด๋ฒ ๋ชจ๋๋ก ๋ณต์
- ์์ธ: ์ ํ ๋ชจ๋ ์ต์ 1๋ช ์ด์์ด์ด์ผ ํจ
- ํด๊ฒฐ: ๊ฐ ํ์ ํ๋ ์ด์ด๊ฐ ์ฐธ๊ฐํ๋์ง ํ์ธ
- ์์ธ: ํ๋ ์ด์ด๊ฐ ํ์ฌ ์ฃผ์๊ฐ ์๋
- ํด๊ฒฐ: ํ ์์ ํ์ธ ๋ฐ ์ฌ๋ฐ๋ฅธ ์ฃผ์ ํ์ธ
- ์์ธ: ๊ฒ์์ด ์งํ ์ค์ด์ง ์์
- ํด๊ฒฐ:
/๊ฒ์์์๋ช ๋ น์ด๋ก ๊ฒ์ ์์
- ์์ธ: ๋ค์ ์ฃผ์์ ์ธ๋ฒคํ ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐธ
- ํด๊ฒฐ: ๋ค์ ์ฃผ์์ ์ธ๋ฒคํ ๋ฆฌ ๊ณต๊ฐ ํ๋ณด
ํ๋ฌ๊ทธ์ธ ๋ก๊ทธ๋ ์๋ฒ ์ฝ์์์ ํ์ธํ ์ ์์ต๋๋ค:
[RelayPlugin] ์ผ์ ๋ฆด๋ ์ด ํ๋ฌ๊ทธ์ธ ํ์ฑํ
[RelayPlugin] ํ ๋ฆด๋ ์ด ์์! ๋ชฉํ: DIAMOND_BLOCK โ TINTED_GLASS โ ENCHANTING_TABLE โ NAME_TAG
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ผ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ถ์ผ์๋ค๋ฉด:
- ์ด ์ ์ฅ์๋ฅผ ํฌํฌํฉ๋๋ค
- ์๋ก์ด ๊ธฐ๋ฅ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค (
git checkout -b feature/amazing-feature) - ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค (
git commit -m 'Add some amazing feature') - ๋ธ๋์น์ ํธ์ํฉ๋๋ค (
git push origin feature/amazing-feature) - Pull Request๋ฅผ ์์ฑํฉ๋๋ค
- Java 21 ์ค์น
- Maven 3.6.0+ ์ค์น
- IDE์์ ํ๋ก์ ํธ ์ด๊ธฐ
mvn clean compile์คํ
- Java ํ์ค ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ค์
- ์ ์ ํ ์ฃผ์ ์์ฑ
- ์์ธ ์ฒ๋ฆฌ ํฌํจ
- ์ด์ ๋ฆฌํฌํธ: GitHub Issues
- ๊ธฐ๋ฅ ์์ฒญ: GitHub Discussions
- ๋ฒ๊ทธ ๋ฆฌํฌํธ: ์์ธํ ์ฌํ ๋จ๊ณ์ ํจ๊ป ์ด์ ์์ฑ
- ์ง์ ๋ฒ์ : Paper 1.21.1+
- Java ๋ฒ์ : 21+
- ์ต์ ๋ฆด๋ฆฌ์ฆ: Releases
RelayPlugin์ผ๋ก ๋ง์ธํฌ๋ํํธ ์๋ฒ์์ ์ฌ๋ฏธ์๋ ํ ๋ฆด๋ ์ด ๊ฒ์์ ์ฆ๊ฒจ๋ณด์ธ์! ๐ฎโจ