Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

157 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์ž”๋”” ๋ธ”๋ก ๋ชจ์–‘์˜ MineHarbor ์•„์ด์ฝ˜

MineHarbor โ€” Minecraft Server Launcher

๋ณต์žกํ•œ Java์™€ ๋„คํŠธ์›Œํฌ ์„ค์ •์€ ์ค„์ด๊ณ , Windows์—์„œ ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ์„œ๋ฒ„๋ฅผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”.

์„œ๋ฒ„ ์ƒ์„ฑ๋ถ€ํ„ฐ ์—…๋ฐ์ดํŠธ, ๋ฐฑ์—…, ์ฝ˜ํ…์ธ , ํ”Œ๋ ˆ์ด์–ด, ์™ธ๋ถ€ ์ ‘์†๊นŒ์ง€ ํ•œ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์Šคํฌํ†ฑ ๋Ÿฐ์ฒ˜์ž…๋‹ˆ๋‹ค.

์ตœ์‹  GitHub Release ๋ฒ„์ „ ๋นŒ๋“œ ๋ฐ ๋ฆด๋ฆฌ์Šค ์›Œํฌํ”Œ๋กœ ์ƒํƒœ MIT ๋ผ์ด์„ ์Šค Windows 10 ๋ฐ Windows 11 ์ง€์›

ํ•œ๊ตญ์–ด ยท English


ํ•œ๊ตญ์–ด

๋‹ค์šด๋กœ๋“œ

๋ฐฉ์‹ ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค ๋ฐ›๊ธฐ
Portable EXE ์„ค์น˜ ์—†์ด ํŒŒ์ผ ํ•˜๋‚˜๋กœ ๋ฐ”๋กœ ์‹คํ–‰ ๊ณ ์ • ๋งํฌ๋กœ ๋‹ค์šด๋กœ๋“œ
Windows ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ๋ฉ”๋‰ด, ์„ ํƒ์  ๋ฐ”ํƒ•ํ™”๋ฉด ๋ฐ”๋กœ๊ฐ€๊ธฐ, ์ œ๊ฑฐ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์ตœ์‹  Release ์—ด๊ธฐ
Portable ZIP README์™€ ๋ผ์ด์„ ์Šค๋ฅผ ํฌํ•จํ•œ ๋ฌถ์Œ ๋ณด๊ด€ ์ตœ์‹  Release ์—ด๊ธฐ

ํ˜„์žฌ ์†Œ์Šค ๋ฒ„์ „์€ v1.21.1, ๋‚ด๋ถ€ ๋นŒ๋“œ๋Š” 26.2.45.90์ž…๋‹ˆ๋‹ค. MineHarbor ์ด๋ฆ„์œผ๋กœ ๋ฐฐํฌ๋œ Portable EXE๋Š” ๊ฐ™์€ ๋งํฌ์—์„œ ๊ณ„์† ์ตœ์‹  ํŒŒ์ผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ์„ค์น˜์˜ %LOCALAPPDATA%\MinecraftServerLauncher ๋ฐ์ดํ„ฐ๋Š” ์ž๋™์œผ๋กœ ์ฐพ์•„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ƒˆ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ๋Š” %LOCALAPPDATA%\MineHarbor์ž…๋‹ˆ๋‹ค.

์ด README๋Š” ๋กœ๋“œ๋งต์ด ์•„๋‹ˆ๋ผ ํ˜„์žฌ v1.21.1 ์†Œ์Šค์™€ ์ž๋™ ํ…Œ์ŠคํŠธ, ๊ณต๊ฐœ Release ์ž์‚ฐ์—์„œ ํ™•์ธํ•œ ๊ธฐ๋Šฅ๋งŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ข…๋ฅ˜๋‚˜ ๋ธŒ๋ฆฌ์ง€ ์—ฐ๊ฒฐ์ฒ˜๋Ÿผ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ธฐ๋Šฅ๊ณผ ์ง€์›๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๋Š” ์•„๋ž˜์— ๋”ฐ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Warning

ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค ์‹คํ–‰ ํŒŒ์ผ์€ ์š”์ฒญ๋œ ์ž์ฒด์„œ๋ช… ์ธ์ฆ์„œ๋กœ ๋ฌด๊ฒฐ์„ฑ์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๊ณต๊ฐœ ์ธ์ฆ ๊ธฐ๊ด€์ด ์‹ ๋ขฐํ•œ ๋ฐฐํฌ์ž ์„œ๋ช…์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Windows SmartScreen ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Release์˜ SHA256SUMS.txt์™€ GitHub ์ถœ์ฒ˜๋ฅผ ํ•จ๊ป˜ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

Tip

Paper/Purpur ์‹ค์‹œ๊ฐ„ ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€๋Š” ์•ฑ์˜ ๋ช…๋ นยท๋ธŒ๋ฆฌ์ง€ ๊ด€๋ฆฌ์—์„œ ์„œ๋ฒ„๋ณ„๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™ ์„ค์น˜ ํŒŒ์ผ๊ณผ SHA256SUMS.txt๋Š” ์ตœ์‹  Release์— ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์™œ ์ด ๋Ÿฐ์ฒ˜์ธ๊ฐ€์š”?

๋น ๋ฅธ ์‹œ์ž‘
Java, ์„œ๋ฒ„ JAR, ๊ธฐ๋ณธ ์„ค์ •์„ ์ˆœ์„œ๋Œ€๋กœ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ„์ „ ํ˜ธํ™˜
์„œ๋ฒ„ ์ข…๋ฅ˜์™€ Minecraft ๋ฒ„์ „์— ๋งž๋Š” Java๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํ•œ๊ณณ์—์„œ ์šด์˜
์—ฌ๋Ÿฌ ์„œ๋ฒ„, ๋ฐฑ์—…, ์ฝ˜ํ…์ธ , ํ”Œ๋ ˆ์ด์–ด์™€ ์ฝ˜์†”์„ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€ ์ ‘์† ์ง€์›
์™ธ๋ถ€ TCP ์‘๋‹ต์„ ํ™•์ธํ•˜๋˜ ์„œ๋ฒ„ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ UPnP๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

Paper, Vanilla, Purpur๋ถ€ํ„ฐ ๋ชจ๋“œ ์„œ๋ฒ„๊นŒ์ง€ ์ง€์›ํ•˜๋ฉด์„œ๋„ ์ž์ฃผ ์“ฐ๋Š” ๊ธฐ๋Šฅ๋งŒ ๋จผ์ € ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ์ƒ์„ธ ์„ค์ •๊ณผ ์ง„๋‹จ ๋„๊ตฌ๋Š” ํ•„์š”ํ•  ๋•Œ ์—ด ์ˆ˜ ์žˆ๊ณ , ํ•œ๊ตญ์–ดยท์˜์–ด ๋ฐ ๋‹คํฌยท๋ผ์ดํŠธ ๋ชจ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„๋กœ ์‹œ์ž‘ํ•˜๊ธฐ

  1. Portable EXE๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ์œ„์น˜์™€ ์„œ๋ฒ„ ์ข…๋ฅ˜, Minecraft ๋ฒ„์ „, ํ”„๋ฆฌ์…‹, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ  Minecraft EULA์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ์„œ๋ฒ„ ์‹œ์ž‘์„ ๋ˆ„๋ฅธ ๋’ค ํ™”๋ฉด์— ํ‘œ์‹œ๋œ ์ฃผ์†Œ๋ฅผ ์นœ๊ตฌ์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธ ์ฐฝ์€ ๋จผ์ € ํ‘œ์‹œ๋˜๊ณ  ์—…๋ฐ์ดํŠธ, ํ”„๋กœํ•„, ์ตœ์‹  ๋ฒ„์ „ ๋ชฉ๋ก์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. Java ์ค€๋น„, ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ, ์„œ๋ฒ„ ์‹œ์ž‘, ํฌํŠธ ํ™•์ธ์ฒ˜๋Ÿผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์€ ํ˜„์žฌ ๋‹จ๊ณ„์™€ ์ง„ํ–‰๋ฅ ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋ฉฐ, ์ฝ˜ํ…์ธ  ์ž‘์—…์€ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์› ๋ฒ”์œ„

์„œ๋ฒ„ ์ข…๋ฅ˜

์ข…๋ฅ˜ ํŒŒ์ผ ์ค€๋น„ ๋ฒ„์ „ ์„ ํƒ ์‹ค์‹œ๊ฐ„ ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€
Paper ์ž๋™ ์ง€์› Paper 1.13 ์ด์ƒ์—์„œ ์„ ํƒ ์‚ฌ์šฉ
Vanilla ์ž๋™ ์ง€์› ๋กœ์ปฌ ์ž๋™์™„์„ฑ
Purpur ์ž๋™ ์ง€์› Purpur 1.13 ์ด์ƒ์—์„œ ์„ ํƒ ์‚ฌ์šฉ
Fabric ์ž๋™ ์ง€์› ๋กœ์ปฌ ์ž๋™์™„์„ฑ
Forge ์ž๋™ ์ง€์› ๋กœ์ปฌ ์ž๋™์™„์„ฑ
NeoForge ์ž๋™ ์ง€์› ๋กœ์ปฌ ์ž๋™์™„์„ฑ
์ง์ ‘ JAR ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ • ์š”๊ตฌ Java ์ง์ ‘ ์„ ํƒ ๋กœ์ปฌ ์ž๋™์™„์„ฑ

์Šค๋ƒ…์ƒท๊ณผ ํ”„๋ฆฌ๋ฆด๋ฆฌ์ฆˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ธฐ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์Šค๋ƒ…์ƒท ํฌํ•จ์„ ์ผฐ์„ ๋•Œ๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ JAR์€ EXE์— ๋„ฃ์ง€ ์•Š์œผ๋ฉฐ, ์ƒˆ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ๋•Œ ์„ ํƒํ•œ ํ”„๋กœ์ ํŠธ์˜ ๊ณต๊ฐœ API์—์„œ ์ตœ์‹  ํ˜ธํ™˜ ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›๊ณ  ์ œ๊ณต๋œ ํ•ด์‹œ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

Java ํ˜ธํ™˜์„ฑ

Minecraft ๋ฐ ์„œ๋ฒ„ ์ข…๋ฅ˜์— ๋งž์ถฐ Java 8ยท11ยท16ยท17ยท21ยท25 ์ค‘ ํ•„์š”ํ•œ ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Java๋Š” ๋Ÿฐ์ฒ˜ EXE์— ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ˜ธํ™˜ ๋ฒ„์ „์ด ์—†์„ ๋•Œ Eclipse Adoptium์—์„œ ํ•œ ๋ฒˆ๋งŒ ๋‚ด๋ ค๋ฐ›์•„ SHA-256์„ ํ™•์ธํ•˜๊ณ  ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ JAR์€ ์ œ์ž‘์ž๊ฐ€ ์š”๊ตฌํ•˜๋Š” Java ์ฃผ ๋ฒ„์ „์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ

ํ•ญ๋ชฉ ์š”๊ตฌ ์‚ฌํ•ญ
์šด์˜์ฒด์ œ Windows 10 ๋˜๋Š” Windows 11 x64
๋Ÿฐํƒ€์ž„ .NET Framework 4.8
๋ฉ”๋ชจ๋ฆฌ ์„œ๋ฒ„ ๊ทœ๋ชจ์— ๋”ฐ๋ผ ์„ ํƒ, ๊ธฐ๋ณธ ์ถ”์ฒœ 4GB
์ธํ„ฐ๋„ท ์ตœ์ดˆ Javaยท์„œ๋ฒ„ ํŒŒ์ผ ์ค€๋น„, ์—…๋ฐ์ดํŠธ, ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰, ์™ธ๋ถ€ ์ ‘์† ๊ฒ€์‚ฌ์— ํ•„์š”
์ €์žฅ ๊ณต๊ฐ„ ์„œ๋ฒ„ ํŒŒ์ผ, ์›”๋“œ, ํ”Œ๋Ÿฌ๊ทธ์ธยท๋ชจ๋“œ์™€ ๋ฐฑ์—… ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

์„œ๋ฒ„ ์ƒ์„ฑ๊ณผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ๊ด€๋ฆฌ

  • ํ‰ํ™”๋กœ์›€ยท์‰ฌ์›€ยท๋ณดํ†ตยท์–ด๋ ค์›€ยทํ•˜๋“œ์ฝ”์–ด ์•ผ์ƒ ํ”„๋ฆฌ์…‹
  • ์ผ๋ฐ˜ ์ง€ํ˜•ยทํ‰์ง€ ํฌ๋ฆฌ์—์ดํ‹ฐ๋ธŒ ์›”๋“œ ํ”„๋ฆฌ์…‹
  • ๊ฒŒ์ž„ ๋ชจ๋“œ, ๋‚œ์ด๋„, PvP, ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ, ๋ช…๋ น ๋ธ”๋ก, ์ •ํ’ˆ ์ธ์ฆ, ๊ฑฐ๋ฆฌ ์„ค์ • ์ง์ ‘ ํŽธ์ง‘
  • Paper/Purpur์—์„œ TNTยท์–‘ํƒ„์žยท๋ ˆ์ผ, ์ค‘๋ ฅ ๋ธ”๋ก, ์ฒ ์‚ฌ๋ซ ๊ฐˆ๊ณ ๋ฆฌ ๋ณต์‚ฌ๋ฅผ ์„œ๋ฒ„๋ณ„๋กœ ์„ ํƒ ํ—ˆ์šฉ
  • ํ”„๋กœํ•„ ์ƒ์„ฑ, ๋ณต์ œ, ํด๋” ๊ฐ€์ ธ์˜ค๊ธฐ, ์ด๋ฆ„ ๋ณ€๊ฒฝ, ์•ˆ์ „ ๋ณด๊ด€๊ณผ ๊ธฐ๋ณธ ์„œ๋ฒ„ ์„ ํƒ
  • ์‚ญ์ œํ•œ ์„œ๋ฒ„๋ฅผ 30์ผ๊ฐ„ ๋ณด๊ด€ํ•˜๋Š” ํœด์ง€ํ†ต๊ณผ ๋ณต๊ตฌยท์˜๊ตฌ ์‚ญ์ œ ๊ด€๋ฆฌ. ํœด์ง€ํ†ต์œผ๋กœ ๋ณด๋‚ผ ๋•Œ๋งŒ ์„œ๋ฒ„ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์˜๊ตฌ ์‚ญ์ œ๋Š” 3์ดˆ ์•ˆ์ „ ํ™•์ธ ์‚ฌ์šฉ
  • ํ”„๋กœํ•„๋ณ„ ์›”๋“œยท์„ค์ •ยทํ”Œ๋Ÿฌ๊ทธ์ธยท๋ชจ๋“œ ๋ถ„๋ฆฌ
  • ๊ฐ™์€ ํฌํŠธ์˜ ์„œ๋ฒ„๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ๋•Œ ํ™•์ธ ํ›„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฌํŠธ๋กœ ์ž๋™ ๋ณ€๊ฒฝ
  • ์„œ๋ฒ„๋ณ„ ์ ‘์† ์ฃผ์†Œ์™€ ๋ฐ”๋กœ ์˜† ๋ณต์‚ฌ ๊ธฐํ˜ธ, ์™ธ๋ถ€ ์ ‘์† ์‹คํŒจ ์‹œ ์ ‘์† ๋ถˆ๊ฐ€ ์ƒํƒœ ํ‘œ์‹œ
  • ๊ด€๋ฆฌ ๋„๊ตฌ ์ฐฝ์„ ์—ด์–ด ๋‘” ์ƒํƒœ์—์„œ๋„ ๋ฉ”์ธ ์ฐฝ์˜ ์ƒํƒœยท์ฝ˜์†”ยท์ฃผ์†Œ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ผ  ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋˜๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์šฉ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํŠธ๋ ˆ์ด ์—์ด์ „ํŠธ(๋ฒ ํƒ€)
  • ๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ์—์„œ ์‹คํ–‰ํ•œ ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—์ด์ „ํŠธ๋กœ ์ธ๊ณ„ํ•˜๋Š” ์ฐฝ ๋‹ซ๊ธฐ ์˜ต์…˜
  • ๋น„์ •์ƒ ์ข…๋ฃŒ ์ž๋™ ์žฌ์‹œ์ž‘ ๋ฐ 10๋ถ„ ์•ˆ์— 3๋ฒˆ ์—ฐ์† ์‹คํŒจํ•˜๋ฉด ์ค‘๋‹จ

Paper/Purpur์˜ ๋ณต์‚ฌ ์˜ต์…˜์€ ์„œ๋ฒ„๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ˜ธํ™˜ ์„ค์ •์ž…๋‹ˆ๋‹ค. 1.19 ์ด์ƒ์€ config/paper-global.yml, ์ด์ „ ๋ฒ„์ „์€ paper.yml์˜ settings.unsupported-settings์— ์ €์žฅ๋˜๋ฉฐ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ๋’ค ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ”ผ์Šคํ†ค ๋ณต์‚ฌ๋Š” ์ง€์›๋˜๋Š” ๋ชจ๋“  Paper ์„ธ๋Œ€์— ์ œ๊ณตํ•˜๊ณ , ์ค‘๋ ฅ ๋ธ”๋ก์€ 1.20.4 ์ด์ƒ, ์ฒ ์‚ฌ๋ซ ๊ฐˆ๊ณ ๋ฆฌ๋Š” 1.21.4 ์ด์ƒ ๋˜๋Š” ์‹ค์ œ ์ƒ์„ฑ๋œ ํ‚ค๊ฐ€ ํ™•์ธ๋œ ์„œ๋ฒ„์—์„œ๋งŒ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. SpigotยทVanillaยท๋ชจ๋“œ ์„œ๋ฒ„์—๋Š” Paper ์ „์šฉ ํ‚ค๋ฅผ ์“ฐ์ง€ ์•Š๊ณ  ๊ฐ ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ JAR์€ ๊ธฐ์กด Paper ์„ค์ • ํŒŒ์ผ๊ณผ ํ•ด๋‹น ํ‚ค๋ฅผ ๊ฐ์ง€ํ•œ ๋ฒ”์œ„์—์„œ๋งŒ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. MineHarbor๋Š” YAML์˜ ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ์ฃผ์„์„ ๋ณด์กดํ•˜๊ณ  ๋ณ€๊ฒฝ ์ „ ํŒŒ์ผ์„ .mineharbor/configuration-backups์— ๋ณด๊ด€ํ•˜์ง€๋งŒ, ์ค‘์š”ํ•œ ์›”๋“œ๋Š” ๋ณ„๋„๋กœ ๋ฐฑ์—…ํ•ด ์ฃผ์„ธ์š”.

์—…๋ฐ์ดํŠธ์™€ ๋ฐฑ์—…

  • ์„œ๋ฒ„ ํŒŒ์ผ ์ž๋™ ์—…๋ฐ์ดํŠธ ์˜ต์…˜๊ณผ ์ˆ˜๋™ ์„œ๋ฒ„ ์—…๊ธ€
  • ์„œ๋ฒ„ ์ข…๋ฅ˜ยทMinecraft ๋ฒ„์ „ ๋ณ€๊ฒฝ ์ „ ํ˜ธํ™˜์„ฑ ๊ฒฝ๊ณ ์™€ ๋ฐฑ์—…
  • ์ „์ฒด ํ”„๋กœํ•„ ์ˆ˜๋™ ๋ฐฑ์—…, ๋ณด์กด ๊ฐœ์ˆ˜ ์„ค์ •, ๋‚ด๋ณด๋‚ด๊ธฐ์™€ ์™ธ๋ถ€ ๋ฐฑ์—… ๊ฐ€์ ธ์˜ค๊ธฐ
  • ์„œ๋ฒ„๋ณ„ ์ •๊ธฐ ๋ฐฑ์—…, ์‹œ์ž‘ ์ „ยท์ข…๋ฃŒ ํ›„ ๋ฐฑ์—…, ๋ฐ˜๋ณต ๊ฐ„๊ฒฉยท๋งค์ผยท์„ ํƒ ์š”์ผยทํŠน์ • ๋‚ ์งœ ํ•œ ๋ฒˆ์„ ์ง€์ •ํ•œ ์˜ˆ์•ฝ ์‹œ์ž‘ยท์ข…๋ฃŒยท์žฌ์‹œ์ž‘ยท๋ช…๋ น ์‹คํ–‰๊ณผ ์ฆ‰์‹œ ์‹คํ–‰
  • ์ปดํ“จํ„ฐ ์ข…๋ฃŒยท์ ˆ์ „ ๋“ฑ์œผ๋กœ ๋†“์นœ ์ž‘์—…์„ ๋‹ค์Œ ์‹คํ–‰ ๋•Œ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ์•Œ๋ฆผ๋งŒ ๋‚จ๊ธฐ๋Š” ์ •์ฑ…๊ณผ ์ตœ๋Œ€ ์ง€์—ฐ ์‹œ๊ฐ„
  • ์˜ˆ์•ฝ ํŽธ์ง‘๊ธฐ์˜ ๋‹ค์Œ ์‹คํ–‰ยท์œ„ํ—˜๋„ยท์„œ๋ฒ„๊ฐ€ ๊บผ์กŒ์„ ๋•Œ ์ฒ˜๋ฆฌยท5๋ถ„ ์ด๋‚ด ์ถฉ๋Œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์žฌ์‹œ์ž‘ ์ „ ํ”Œ๋ ˆ์ด์–ด ๊ณต์ง€, ์ตœ๊ทผ ๊ฒฐ๊ณผ์™€ ๊ฐœ์ˆ˜ยท๊ธฐ๊ฐ„ยท์ด์šฉ๋Ÿ‰ ๋ฐฑ์—… ๋ณด์กด ์ •์ฑ…
  • ๋ฉ”์ธ ์šด์˜ ๊ธฐ๋ก์—์„œ ์„œ๋ฒ„ ์‹œ์ž‘ยท์ข…๋ฃŒยท์ถฉ๋Œยท์ž๋™ ์žฌ์‹œ์ž‘๊ณผ ์˜ˆ์•ฝ ๊ฒฐ๊ณผ๋ฅผ ์„œ๋ฒ„/์ค‘์š”๋„/์ฝ์Œ ์ƒํƒœ๋กœ ํ•„ํ„ฐ๋งํ•˜๊ณ  CSV๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ
  • ์„œ๋ฒ„๋ณ„ .mineharbor/operations-history.json์˜ ์ตœ๋Œ€ 500๊ฐœ ๋กœ์ปฌ ๊ธฐ๋ก, ์›์ž์  ์ €์žฅ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž ๊ธˆ๊ณผ SHA-256 ์—ฐ์† ํ•ด์‹œ ๋ณ€์กฐ ๊ฐ์ง€
  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์šด์˜(๋ฒ ํƒ€)์„ ์ผœ๋ฉด ์ฐฝ์„ ๋‹ซ์€ ๋’ค์—๋„ ์‚ฌ์šฉ์ž ๊ณ„์ •์šฉ ํŠธ๋ ˆ์ด ์—์ด์ „ํŠธ๊ฐ€ ์˜ˆ์•ฝ์„ ํ‰๊ฐ€ํ•˜๋ฉฐ, Windows ๋กœ๊ทธ์ธ ์ž๋™ ์‹œ์ž‘์„ ๋ณ„๋„๋กœ ์„ ํƒ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ„๋„๋กœ ์ผ  ๊ฒฝ์šฐ ์ƒˆ ์„œ๋ฒ„ยท์˜ˆ์•ฝยท๋ฐฑ์—…ยท์ฝ˜ํ…์ธ ยท๋„คํŠธ์›Œํฌยท์—…๋ฐ์ดํŠธยท๋ณด์•ˆ ์šด์˜ ๊ธฐ๋ก์„ Windows ์ž‘์—… ํ‘œ์‹œ์ค„ ์•Œ๋ฆผ์œผ๋กœ ํ‘œ์‹œ
  • ์•Œ๋ฆผ ์ตœ์†Œ ์ค‘์š”๋„ยท์ข…๋ฅ˜ยท์กฐ์šฉํ•œ ์‹œ๊ฐ„, ์ด์ „ ๊ธฐ๋ก ์žฌ์ƒ ๋ฐฉ์ง€์™€ 8์ดˆ ์ด๋‚ด ๋‹ค์ค‘ ์•Œ๋ฆผ ์š”์•ฝ
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ„๋„๋กœ ์ผ  ๊ฒฝ์šฐ Discord ๊ธธ๋“œ ์ „์šฉ /mineharbor๋กœ ํ—ˆ์šฉ ์„œ๋ฒ„์˜ ์ƒํƒœยท์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ดยท์ตœ๊ทผ ์˜ค๋ฅ˜๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹œ์ž‘ยท์•ˆ์ „ ์ข…๋ฃŒยท์žฌ์‹œ์ž‘ยท๋ฐฑ์—…
  • Discord ๋ด‡ ํ† ํฐ์˜ ํ˜„์žฌ ์‚ฌ์šฉ์ž DPAPI ์•”ํ˜ธํ™”, ์‚ฌ์šฉ์žยท์—ญํ• ยท๊ธธ๋“œยท์ฑ„๋„ยท์„œ๋ฒ„ ํ—ˆ์šฉ ๋ชฉ๋ก, ์‚ฌ์šฉ์ž๋ณ„ ์†๋„ ์ œํ•œ๊ณผ ์ข…๋ฃŒยท์žฌ์‹œ์ž‘ 60์ดˆ ํ™•์ธ
  • SHA-256 ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ๊ณผ ์ž„์‹œ ํด๋” ๊ฒ€์ฆ ํ›„ ์•ˆ์ „ ๋ณต์›
  • ์„ค์ • ๋ณ€๊ฒฝ ์ „ server.properties ๋ฐฑ์—…
  • ์‚ฌ์šฉ์ž ์Šน์ธ ํ›„์—๋งŒ ์‹คํ–‰๋˜๋Š” ๋Ÿฐ์ฒ˜ ์ž๋™ ์—…๋ฐ์ดํŠธ์™€ ์‹คํŒจ ์‹œ ์ด์ „ EXE ๋ณต์›
  • ์–ธ์–ด ๋ณ€๊ฒฝ ์˜† ๋Ÿฐ์ฒ˜ ์—…๋ฐ์ดํŠธ ๋ฒ„ํŠผ์„ ํ†ตํ•œ ์ฆ‰์‹œ ์žฌ๊ฒ€์‚ฌ์™€ ์„ ํƒํ•œ ๋ฒ„์ „์˜ ์•Œ๋ฆผ ์ˆจ๊ธฐ๊ธฐ

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์šด์˜(๋ฒ ํƒ€)

  • ์„œ๋ฒ„ ๊ด€๋ฆฌ โ†’ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜ํ•œ ๊ฒฝ์šฐ์—๋งŒ MineHarbor.exe --background-agent๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด์—์„œ ์„œ๋ฒ„๋ณ„ ์‹œ์ž‘ยท์•ˆ์ „ ์ข…๋ฃŒยท์žฌ์‹œ์ž‘ยท์ฆ‰์‹œ ๋ฐฑ์—…ยท์ฝ˜์†” ์—ด๊ธฐ, ์ „์ฒด ์•ˆ์ „ ์ข…๋ฃŒ, ์˜ˆ์•ฝ ์ผ์‹œ ์ค‘์ง€์™€ ์™„์ „ ์ข…๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ํ–ˆ๊ฑฐ๋‚˜ ๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ธ๊ณ„ํ•œ ์„œ๋ฒ„๋Š” ๊ด€๋ฆฌ ์ฐฝ์„ ๋‹ซ์•„๋„ ๊ณ„์† ์‹คํ–‰๋˜๋ฉฐ, ์—์ด์ „ํŠธ ์ „์šฉ ์ฝ˜์†”์€ ์ธ๊ณ„ ์ „ํ›„ ๋กœ๊ทธ ํ™•์ธยท์ž๋™์™„์„ฑยท์œ„ํ—˜ ๋ช…๋ น ์žฌํ™•์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ๊ด€๋ฆฌ ์ฐฝ์„ ๋‹ซ์„ ๋•Œ ์ค‘๋‹จ ์—†์ด ์ธ๊ณ„, ๋ชจ๋‘ ์•ˆ์ „ ์ข…๋ฃŒ, ์ทจ์†Œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ณ„ ์ค‘ ์ถ”๊ฐ€ ๋‹ซ๊ธฐ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ •ํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๋ณด๋ฅ˜ํ•˜๋ฉฐ, ์ผ๋ถ€ ์ธ๊ณ„๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์ฐฝ์„ ์œ ์ง€ํ•˜๊ณ  ์„ฑ๊ณตํ•œ ์„œ๋ฒ„๋งŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ IPC๋Š” ํ˜„์žฌ Windows ์‚ฌ์šฉ์ž SID์—๋งŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ ์ด๋ฆ„ ์žˆ๋Š” ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์š”์ฒญ ํฌ๊ธฐ์™€ ์ˆ˜์‹  ์‹œ๊ฐ„์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ ์ž์‹ ์ œ์–ด ์ฑ„๋„์€ ์„œ๋ฒ„๋งˆ๋‹ค ์ƒˆ 256๋น„ํŠธ ํ† ํฐ์„ ๋งŒ๋“ค๊ณ  ์ž์‹ยท๊ธฐ์กด ์†Œ์œ ์žยท์ƒˆ ์†Œ์œ ์ž์˜ PID์™€ ํ”„๋กœ์„ธ์Šค ์‹œ์ž‘ ์‹œ๊ฐ์„ ๋ชจ๋‘ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ณ„ ์‘๋‹ต ์œ ์‹ค์€ ๋ฉฑ๋“ฑ ์žฌ์‹œ๋„์™€ ์‹ค์ œ ์†Œ์œ ์ž ์žฌํ™•์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • GUI์™€ ์—์ด์ „ํŠธ๋Š” ์˜ˆ์•ฝ ํŒŒ์ผ์˜ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž ๊ธˆ๊ณผ PIDยท์‹œ์ž‘ ์‹œ๊ฐ ์ž„๋Œ€๋กœ ์ค‘๋ณต ์‹คํ–‰์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ ˆ์ „ ๋ณต๊ท€ ์‹œ ๋†“์นœ ์ž‘์—… ์ •์ฑ…์„ ๋‹ค์‹œ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์—์ด์ „ํŠธ๊ฐ€ ์†Œ์œ ํ•˜์ง€ ์•Š์€ ์‹คํ–‰ ์ค‘ ์„œ๋ฒ„์—๋Š” ๋ช…๋ นยท์ข…๋ฃŒยท์‹คํ–‰ ์ค‘ ๋ฐฑ์—…์„ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ๋Ÿฐ์ฒ˜ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹œ์ž‘ํ•œ ์„œ๋ฒ„์™€ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์˜ ์„œ๋ฒ„๋Š” ์ธ๊ณ„ ๋Œ€์ƒ์œผ๋กœ ์ถ”์ •ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ์กด์ฒ˜๋Ÿผ ์•ˆ์ „ ์ข…๋ฃŒ ๋˜๋Š” ์™ธ๋ถ€ ์†Œ์œ  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฐ์ฒ˜ ์—…๋ฐ์ดํŠธ ์ „์—๋Š” ์—์ด์ „ํŠธ ์„œ๋ฒ„๋ฅผ ๋จผ์ € ์•ˆ์ „ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‹œ๊ฐ„ ์•ˆ์— ์ข…๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ์™€ ์—์ด์ „ํŠธ ์ข…๋ฃŒ๋ฅผ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.
  • Windows ์•Œ๋ฆผ์€ ๋ณ„๋„ ๋™์˜ ํ›„์—๋งŒ ํ‘œ์‹œ๋˜๋ฉฐ ์ •๋ณดยท๊ฒฝ๊ณ ยท์˜ค๋ฅ˜, ์ข…๋ฅ˜์™€ ์กฐ์šฉํ•œ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ ๊ธฐ๋ก์€ ๋‹ค์‹œ ์•Œ๋ฆฌ์ง€ ์•Š๊ณ  ์งง์€ ์‹œ๊ฐ„์— ๋ฐœ์ƒํ•œ ์—ฌ๋Ÿฌ ์‚ฌ๊ฑด์€ ํ•˜๋‚˜๋กœ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • Discord ์›๊ฒฉ ์ œ์–ด(๋ฒ ํƒ€)๋Š” ๋ณ„๋„๋กœ ๋™์˜ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ๋ด‡์„ ์—ฐ๊ฒฐํ•œ ๊ฒฝ์šฐ์—๋งŒ ์—์ด์ „ํŠธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์ˆ˜์‹  ํฌํŠธ๋ฅผ ์—ด์ง€ ์•Š๋Š” Gateway ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ƒํƒœ, ํ”Œ๋ ˆ์ด์–ด, ์ตœ๊ทผ ์˜ค๋ฅ˜, ์‹œ์ž‘, ํ™•์ธํ˜• ์•ˆ์ „ ์ข…๋ฃŒยท์žฌ์‹œ์ž‘, ๋ฐฑ์—…๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜ ์ฝ˜์†”ยท์…ธยทํŒŒ์ผ ์‹คํ–‰๊ณผ ์™ธ๋ถ€ ์†Œ์œ  ์„œ๋ฒ„ ์ œ์–ด๋Š” ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • Discord ์„ค์ •์€ ์„œ๋ฒ„ ๊ด€๋ฆฌ โ†’ ๋ฐฑ๊ทธ๋ผ์šด๋“œ โ†’ Discord ์›๊ฒฉ ๋˜๋Š” ์—์ด์ „ํŠธ ํŠธ๋ ˆ์ด์—์„œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“ฑ๋ก ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ์•ฑยท๋ด‡ ์ƒ์„ฑ, ๊ธธ๋“œ ์„ค์น˜, ID ๋ณต์‚ฌ์™€ MineHarbor ์—ฐ๊ฒฐ์„ ์„ค๋ช…ํ•˜๋Š” ํ˜„๋Œ€ํ˜• 4๋‹จ๊ณ„ ๊ฐ€์ด๋“œ๊ฐ€ ๋จผ์ € ์—ด๋ฆฌ๋ฉฐ, ์„ค์ • ์‹œ์ž‘์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ž…๋ ฅ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ณ„ ์นด๋“œ์™€ ๋ณด์•ˆ ์•ˆ๋‚ด๋Š” ํ•œยท์˜ ๋ฌธ๊ตฌ์˜ ์‹ค์ œ ์ค„ ์ˆ˜์— ๋งž์ถฐ ๋†’์ด๊ฐ€ ๋ณ€ํ•˜๊ณ , ํ™”๋ฉด์ด ๋ถ€์กฑํ•  ๋•Œ๋งŒ ๋‹จ๊ณ„ ์˜์—ญ ์•ˆ์—์„œ ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค. ์„ค์ • ํ™”๋ฉด์˜ ์„ค์ • ๊ฐ€์ด๋“œ๋กœ ๋‹ค์‹œ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์šด์˜์„ ๋จผ์ € ์ผ  ๋’ค ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ๋ด‡์˜ ํ† ํฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ยท์„œ๋ฒ„ยท์ฑ„๋„ ID์™€ ํ—ˆ์šฉ ์„œ๋ฒ„๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ํ™”๋ฉด์— ํ•ญ์ƒ ํ‘œ์‹œ๋˜๋Š” ํ—ˆ์šฉ ์‚ฌ์šฉ์ž ๋˜๋Š” ํ—ˆ์šฉ ์—ญํ•  ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ˆ„๋ฝ์ด๋‚˜ ์ž˜๋ชป๋œ ID๋Š” ์ €์žฅ ์ „์— ํ•ด๋‹น ์œ„์น˜์—์„œ ์•ˆ๋‚ดํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ID ๋ณต์‚ฌ ๊ฒฝ๋กœ๋„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์„ค์น˜ยท๊ถŒํ•œ ๊ฒฝ๊ณ„๋Š” Discord ์›๊ฒฉ ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ Windows ์„œ๋น„์Šค๋Š” ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋กœ๊ทธ์˜จ ์ „ ์‹คํ–‰๊ณผ ์›น ์›๊ฒฉ ๊ด€๋ฆฌ๋Š” ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Warning

์ตœ์‹  ๋ฒ„์ „์—์„œ ์ƒ์„ฑํ•œ ์›”๋“œ๋ฅผ ๊ตฌ๋ฒ„์ „ ์„œ๋ฒ„๋กœ ์—ด๋ฉด ์›”๋“œ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฐ์ฒ˜๋Š” ์œ„ํ—˜ํ•œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€๋งŒ, ์ค‘์š”ํ•œ ์›”๋“œ๋Š” ๋ณ„๋„ ์žฅ์น˜์—๋„ ๋ฐฑ์—…ํ•ด ๋‘๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜ํ…์ธ , ํ”Œ๋ ˆ์ด์–ด์™€ ์ฝ˜์†”

  • ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธยท๋ชจ๋“œยท๋ฐ์ดํ„ฐํŒฉ์„ MineHarbor ๊ด€๋ฆฌ ํŒŒ์ผ๊ณผ ์ˆ˜๋™ ์„ค์น˜ ํŒŒ์ผ๋กœ ๊ตฌ๋ถ„
  • ๊ฐœ๋ณ„ยท์ผ๊ด„ ์—…๋ฐ์ดํŠธ ํ™•์ธ, ํ™œ์„ฑํ™”ยท๋น„ํ™œ์„ฑํ™”, ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ์ œ๊ฑฐ์™€ ์„œ๋ฒ„๋ณ„ manifest ์ €์žฅ
  • ํ˜„์žฌ ๋ฒ„์ „๊ณผ ๋กœ๋”์— ๋งž๋Š” Modrinth ํ”Œ๋Ÿฌ๊ทธ์ธยท๋ชจ๋“œยท๋ฐ์ดํ„ฐํŒฉ ๊ฒ€์ƒ‰. ๋นˆ ๊ฒ€์ƒ‰์–ด๋กœ ์ธ๊ธฐ์ˆœ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ œ์ž‘์žยท๋‹ค์šด๋กœ๋“œ ์ˆ˜ยท์„ค๋ช…์„ ํ•จ๊ป˜ ํ‘œ์‹œ
  • ๋กœ์ปฌ JARยท๋ฐ์ดํ„ฐํŒฉ ZIP ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•œ ๋’ค ์„ ํƒํ•œ ์„œ๋ฒ„๋‚˜ ์›”๋“œ์— ์ง์ ‘ ์„ค์น˜
  • Modrinth ํ•„์ˆ˜ ์˜์กด์„ฑยท์ˆœํ™˜ ์˜์กด์„ฑ, Minecraft ๋ฒ„์ „ยท๋กœ๋” ํ˜ธํ™˜์„ฑ ๊ฒ€์‚ฌ
  • ์„ ํƒํ•œ ์›”๋“œ์˜ <์›”๋“œ ์ด๋ฆ„>/datapacks์— ์„ค์น˜ํ•˜๊ณ  ๋ฃจํŠธ pack.mcmeta, ์••์ถ• ๊ฒฝ๋กœยท์ค‘๋ณต ํ•ญ๋ชฉยทํŒŒ์ผ ์ˆ˜ยทํ•ด์ œ ํฌ๊ธฐ๋ฅผ ๊ฒ€์ฆ
  • ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ์™€ SHA-512/SHA-1 ๊ฒ€์ฆ ํ›„ ์„ค์น˜, ๊ธฐ์กด ํŒŒ์ผ ์ž๋™ ๋ฐฑ์—…
  • ๊ฒ€์ƒ‰ยท์„ค์น˜ยท์—…๋ฐ์ดํŠธ ์ง„ํ–‰๋ฅ ๊ณผ ์ทจ์†Œ ๊ธฐ๋Šฅ, ์ฐฝ์„ ๋‹ซ์€ ๋’ค ๋น„๋™๊ธฐ UI ์ฝœ๋ฐฑ ์ฐจ๋‹จ
  • ์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด ์ด๋ฆ„ ์ž๋™์™„์„ฑ์„ ์ง€์›ํ•˜๋Š” ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ, OPยทDEOP, ์ถ”๋ฐฉ, ์ฐจ๋‹จยทํ•ด์ œ ํ”Œ๋ ˆ์ด์–ด ๊ด€๋ฆฌ
  • ๊ฒ€์ƒ‰ โ†’ ๋กœ๊ทธ ๋ถ„๋ฅ˜ โ†’ ์ค„ ๋ฐ”๊ฟˆ ์ˆœ์„œ๋กœ ์ •๋ฆฌํ•œ ์ฝ˜์†” ๋„๊ตฌ๋ง‰๋Œ€์™€ ์ผ๋ฐ˜ ๊ฒฝ๊ณ ยทํ˜ธํ™˜์„ฑยท์˜ค๋ฅ˜ ํ•„ํ„ฐ
  • ์ฝ๋˜ ์œ„์น˜๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋งจ ์•„๋ž˜๋ฅผ ๋ณผ ๋•Œ๋งŒ ์ƒˆ ๋กœ๊ทธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ์ฝ˜์†”
  • ๊ฐœ์ธ์ •๋ณด๋ฅผ ๊ฐ€๋ฆฐ ๋กœ๊ทธยท์„ค์ •ยทํฌ๋ž˜์‹œ ๋ณด๊ณ ์„œ ์ง„๋‹จ ๋ฌถ์Œ
  • ๋‹คํฌยท๋ผ์ดํŠธ ํ…Œ๋งˆ์— ๋งž์ถ˜ ์ œ๋ชฉ ํ‘œ์‹œ์ค„, ์ฝ˜์†”ยท๋ชฉ๋ก ์Šคํฌ๋กค๋ฐ”, ๋‘ฅ๊ทผ ์ž…๋ ฅยท๊ทธ๋ฃน ํ…Œ๋‘๋ฆฌ, ๋“œ๋กญ๋‹ค์šด, ์ฒดํฌ๋ฐ•์Šค์™€ ํƒญ
  • ์ฐฝ ํฌ๊ธฐยทDPI์— ๋งž์ถ˜ ๋ฐ˜์‘ํ˜• ๋ฐฐ์น˜, ์ž‘์€ ํ™”๋ฉด์—์„œ๋งŒ ํ•„์š”ํ•œ ์Šคํฌ๋กค, ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค์™€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์„ค๋ช…
  • ๋ณด์กฐ ์ฐฝ X ์ž…๋ ฅ์ด ๋’ค์˜ ๋ฉ”์ธ ๋ฒ„ํŠผ์— ์ „๋‹ฌ๋˜์ง€ ์•Š๋„๋ก ๊ฐ™์€ ํด๋ฆญ๊ณผ ๋‹ซ๊ธฐ ์ง€์  ์ฃผ๋ณ€์˜ ๋ฐ˜๋ณต ํด๋ฆญ์„ ์ฐจ๋‹จํ•˜๊ณ , ๋–จ์–ด์ง„ ์œ„์น˜์˜ ์˜๋„์ ์ธ ํด๋ฆญ์€ ์ฆ‰์‹œ ํ—ˆ์šฉ
  • XยทAlt+F4๋กœ ๋Ÿฐ์ฒ˜๋ฅผ ๋‹ซ์„ ๋•Œ ํ•ญ์ƒ ํ™•์ธ. ์œ ํœด ์ƒํƒœ๋Š” ์„œ๋ฒ„ ์ข…๋ฃŒ ์ ˆ์ฐจ ์—†์ด ๋‹ซ๊ณ , ์ž‘์—… ์ค‘์—๋Š” ์™„๋ฃŒ ๋Œ€๊ธฐ, ์„œ๋ฒ„ ์‹คํ–‰ ์ค‘์—๋Š” ์•ˆ์ „ ์ข…๋ฃŒ ํ›„ ๋‹ซ๊ธฐ

์„œ๋ฒ„ ๋Œ€์‹œ๋ณด๋“œ

  • ์„œ๋ฒ„ ์ƒํƒœยท๊ฐ€๋™ ์‹œ๊ฐ„, Java ํ”„๋กœ์„ธ์Šค CPUยท๋ฉ”๋ชจ๋ฆฌ์™€ Java ๋ฒ„์ „
  • ์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด, ์„œ๋ฒ„ยท์›”๋“œยท๋ฐฑ์—… ์šฉ๋Ÿ‰, ์ตœ๊ทผ ๊ฒฝ๊ณ ยท์˜ค๋ฅ˜์™€ ๋‹ค์Œ ์˜ˆ์•ฝ ์ž‘์—…
  • ์‹ค์ œ ์™ธ๋ถ€ ์ ‘์† ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ ํ™•์ธ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ์„ฑ๊ณต์œผ๋กœ ์ถ”์ •ํ•˜์ง€ ์•Š์Œ
  • Paper/Purpur ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€ ์—ฐ๊ฒฐ ์‹œ ๊ณต๊ฐœ ์„œ๋ฒ„ API์—์„œ ๋ฐ›์€ TPS 1ยท5ยท15๋ถ„ ๊ฐ’๊ณผ MSPT ํ‘œ์‹œ
  • ๋ธŒ๋ฆฌ์ง€ ๋ฏธ์ง€์›ยท์—ฐ๊ฒฐ ํ•ด์ œยท๊ถŒํ•œ ๋ถ€์กฑยท์„œ๋ฒ„ ์ข…๋ฃŒ ์ƒํƒœ๋Š” ์ž„์˜ ๊ฐ’ ๋Œ€์‹  ๋ช…์‹œ์ ์ธ ์ง€์› ๋ถˆ๊ฐ€ ์ƒํƒœ๋กœ ํ‘œ์‹œ

๋น ๋ฅธ ๋ช…๋ น๊ณผ ์ž๋™์™„์„ฑ

๋น ๋ฅธ ๋ช…๋ น์€ ์นดํ…Œ๊ณ ๋ฆฌ โ†’ ๊ธฐ๋Šฅ โ†’ ๋ช…๋ น ๊ตฌ์กฐ๋กœ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›”๋“œ โ†’ ๋‚œ์ด๋„ โ†’ ์–ด๋ ค์›€, ์›”๋“œ โ†’ ๋‚ ์”จ โ†’ ๋ง‘์Œ์ฒ˜๋Ÿผ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฆ„, ์„ค๋ช…, ๊ฒฝ๋กœ์™€ ์‹ค์ œ ๋ช…๋ น์–ด๋ฅผ ํ•œ ๋ฒˆ์— ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

  • Ctrl+F, ๋ฐฉํ–ฅํ‚ค, Enter, Esc๋กœ ๋ช…๋ น ์„ ํƒ์ฐฝ ์กฐ์ž‘
  • ๋ช…๋ น ์„ ํƒ ํ›„ ํ•„์ˆ˜ยท์„ ํƒ ์ธ์ˆ˜๋ฅผ ๋‘ฅ๊ทผ ์ธ๋ผ์ธ ํ† ํฐ์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋‹จ๊ณ„ํ˜• ๋ช…๋ น ๋นŒ๋”
  • ๋ฏธ์™„์„ฑ ์ธ์ˆ˜๋Š” ํšŒ์ƒ‰, ํ˜„์žฌ ์ธ์ˆ˜๋Š” ๊ฐ•์กฐ์ƒ‰, ์ž˜๋ชป๋œ ๊ฐ’์€ ์œ„ํ—˜์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๊ฐ’ ํ™•์ • ์‹œ ๋‹ค์Œ ์ธ์ˆ˜๋กœ ์ž๋™ ์ด๋™
  • โ†‘ยทโ†“๋กœ ํ›„๋ณด ์ด๋™, Tab ๋˜๋Š” ๋ฏธ์™„์„ฑ ์ƒํƒœ์˜ Enter๋กœ ํ˜„์žฌ ๊ฐ’์„ ํ™•์ •, Shift+Tab์œผ๋กœ ์ด์ „ ์ธ์ˆ˜ ์ด๋™
  • ๋ชจ๋“  ํ•„์ˆ˜ ์ธ์ˆ˜๊ฐ€ ์œ ํšจํ•  ๋•Œ๋งŒ ์ „์†ก ๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉฐ, ์„ ํƒ ์ธ์ˆ˜๊ฐ€ ๋‚จ์•˜์œผ๋ฉด Enter๋กœ ์ƒ๋žตํ•˜๊ณ  ์ „์†ก ๊ฐ€๋Šฅ
  • Ctrl+Space๋กœ ํ›„๋ณด ๋‹ค์‹œ ์—ด๊ธฐ, Ctrl+โ†‘ยทCtrl+โ†“๋กœ ๋ช…๋ น ๊ธฐ๋ก ํƒ์ƒ‰
  • ํ›„๋ณด๊ฐ€ ๋งŽ์œผ๋ฉด ์ฐฝ์˜ ์œ„ยท์•„๋ž˜ ๊ฐ€์šฉ ๊ณต๊ฐ„ ์ค‘ ๋„“์€ ์ชฝ์—์„œ ์ตœ๋Œ€ 430px๊นŒ์ง€ ํ™•์žฅํ•˜๊ณ , ์ ์œผ๋ฉด ํ•„์š”ํ•œ ๋†’์ด๋งŒ ์‚ฌ์šฉ
  • ๋น ๋ฅธ ๋ช…๋ น ์นด๋“œ๋Š” ์˜ค๋ฅธ์ชฝ ๊ณ ์ • ์—ด์„ ์œ ์ง€ํ•˜๊ณ , ์ฝ˜์†”์€ ๋ณ„๋„ ์™ผ์ชฝ ์—ด์—์„œ ๊ฒน์นจ ์—†์ด ํ‘œ์‹œ
  • ๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ์ฝ˜์†”์—์„œ ๊ธฐ๋ณธ ๋ช…๋ น๊ณผ ์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด ์ด๋ฆ„ ์ž๋™์™„์„ฑ
  • ๋ฉ”์ธ ์ฝ˜์†”์˜ ๊ธฐ๋ณธ ๋ช…๋ นยท์—ฐ๊ฒฐ๋œ ํ”Œ๋ ˆ์ด์–ด ์ธ์ˆ˜ ์ž๋™์™„์„ฑ๊ณผ ์˜ˆ์•ฝ ๋ช…๋ น ํŽธ์ง‘์˜ ๊ธฐ๋ณธ ๋ช…๋ น ์ž๋™์™„์„ฑ
  • ์ œ์žฌ ๋ชฉ๋กยทIP ์ฐจ๋‹จ, ์‹œ๋“œยท์‹œ๊ฐ„ ์กฐํšŒ, ๊ฒŒ์ž„ ๊ทœ์น™, ๋ฐ์ดํ„ฐํŒฉ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”์™€ ์•ˆ์ „ํ•œ ์กฐํšŒํ˜• ๊ณ ๊ธ‰ ๋ช…๋ น์„ ํฌํ•จํ•œ 70๊ฐœ ์ด์ƒ์˜ ๊ธฐ๋ณธ ๋ช…๋ น
  • {player} ๊ฐ™์€ ํ•„์ˆ˜ ์ธ์ˆ˜, [reason] ๊ฐ™์€ ์„ ํƒ ์ธ์ˆ˜์™€ [count=1] ๊ฐ™์€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ์„ ํƒ ์ธ์ˆ˜
  • ์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ดยท์„ ํƒ์žยท๊ฒŒ์ž„ ๋ชจ๋“œยท๋‚œ์ด๋„ยท์ฐธ/๊ฑฐ์ง“ยท์ขŒํ‘œยท์‹œ๊ฐ„ ์ถ”์ฒœ๊ณผ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ์•„์ดํ…œยทํšจ๊ณผ ํ›„๋ณด
  • ์„œ๋ฒ„ Minecraft ๋ฒ„์ „์— ๋งž์ง€ ์•Š๋Š” ๋ช…๋ น์€ ๋ชฉ๋ก๊ณผ ๋กœ์ปฌ ์ž๋™์™„์„ฑ์—์„œ ์ œ์™ธ
  • ์ผ๋ฐ˜ยทํ™•์ธยท์œ„ํ—˜ 3๋‹จ๊ณ„ ์ •์ฑ…์„ ์ ์šฉํ•˜๊ณ  reload, ๊ด‘๋ฒ”์œ„ ๋ณ€๊ฒฝ๊ณผ ์กฐ๊ฑด๋ถ€ ์œ„ํ—˜ ๊ฐ’์€ ๊ฐ•ํ•œ ๊ฒฝ๊ณ ๋กœ ๊ตฌ๋ถ„
  • Paper/Purpur ๋ธŒ๋ฆฌ์ง€ ์—ฐ๊ฒฐ ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ โ†’ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„ โ†’ ๋ช…๋ น์–ด๋กœ ์‹ค์‹œ๊ฐ„ ๋ถ„๋ฅ˜

์‚ฌ์šฉ์ž ๋ช…๋ น์€ ๋ฐ์ดํ„ฐ ๋ฃจํŠธ์˜ config/quick-commands.json์— ๋ณ„๋„๋กœ ์ €์žฅ๋˜์–ด ๋Ÿฐ์ฒ˜ ์—…๋ฐ์ดํŠธ ํ›„์—๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ฆฌ์ง€๋Š” ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋งŒ๋“  ๋ฌด์ž‘์œ„ ํ† ํฐ๊ณผ ์ž„์‹œ ํฌํŠธ๋กœ 127.0.0.1์—๋งŒ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์‹ค์ œ ๋ช…๋ น ์‹คํ–‰์€ ๊ธฐ์กด ์ฝ˜์†” ์ž…๋ ฅ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์ ‘์†

๋Ÿฐ์ฒ˜๋Š” ์ด๋ฏธ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ณต์œ ๊ธฐ ์„ค์ •์„ ์šฐ์„  ์‚ฌ์šฉํ•˜๋ฉฐ ํ•จ๋ถ€๋กœ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

flowchart TD
    A[์„œ๋ฒ„ ์‹œ์ž‘] --> B{๋กœ์ปฌ TCP ํฌํŠธ๊ฐ€ ์—ด๋ ธ๋‚˜์š”?}
    B -- ์•„๋‹ˆ์š” --> C[์ฝ˜์†” ์˜ค๋ฅ˜์™€ ํฌํŠธ ์ถฉ๋Œ ํ™•์ธ]
    B -- ์˜ˆ --> D{์™ธ๋ถ€ TCP ์‘๋‹ต์ด ์žˆ๋‚˜์š”?}
    D -- ์˜ˆ --> E[TCP ์‘๋‹ต ํ‘œ์‹œ ยท ์„œ๋ฒ„ ์ผ์น˜ ๋ฏธํ™•์ธ ยท ๊ณต์œ ๊ธฐ ์„ค์ • ์œ ์ง€]
    D -- ์•„๋‹ˆ์š” --> F[UPnP ์žฅ์น˜์™€ ํฌํŠธ ์ถฉ๋Œ ํ™•์ธ]
    F --> G[ํ•„์š”ํ•œ ๋งคํ•‘๋งŒ ์ƒ์„ฑ]
    G --> H{์™ธ๋ถ€ ์ ‘์† ์žฌ๊ฒ€์‚ฌ ์„ฑ๊ณต?}
    H -- ์˜ˆ --> I[๊ณต์ธ IP์™€ ํฌํŠธ ํ‘œ์‹œ]
    H -- ์•„๋‹ˆ์š” --> J[์ˆ˜๋™ ํฌํŠธํฌ์›Œ๋”ฉ ์•ˆ๋‚ด ํ‘œ์‹œ]
Loading
  • ์ผ๋ฐ˜ ์™ธ๋ถ€ ๊ฒ€์‚ฌ๋Š” TCP ํฌํŠธ๊ฐ€ ์—ด๋ ธ๋Š”์ง€๋งŒ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Minecraft ์„œ๋ฒ„ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‘๋‹ต์ด ์žˆ์œผ๋ฉด ํ›„๋ณด ์ฃผ์†Œ์™€ ์„œ๋ฒ„ ์ผ์น˜ ๋ฏธํ™•์ธ์„ ํ•จ๊ป˜ ํ‘œ์‹œํ•˜๊ณ  ๊ณต์œ ๊ธฐ ์„ค์ •์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • MineHarbor๊ฐ€ ๋งŒ๋“  UPnP ๋งคํ•‘์„ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•ด ์‘๋‹ตํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋Œ€์‹œ๋ณด๋“œ์— ํ™•์ธ๋จ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋‚ด๋ถ€ PC๊ฐ€ ๊ฐ™์€ ์™ธ๋ถ€ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ์ถฉ๋Œ๋กœ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์ง์ ‘ SSDP/SOAP ๋ฐฉ์‹์„ ์šฐ์„  ์‚ฌ์šฉํ•˜๊ณ  Windows COM์„ ๋ฐฑ์—… ๊ฒฝ๋กœ๋กœ ์‹œ๋„ํ•˜๋ฉฐ, ๊ธฐ๋ณธ ์™ธ๋ถ€ ํฌํŠธ๊ฐ€ ์ถฉ๋Œํ•˜๋ฉด ์ตœ๋Œ€ 8๊ฐœ์˜ ๋Œ€์ฒด ํฌํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ TCP ๋งคํ•‘๊ณผ Minecraft Query ์‚ฌ์šฉ ์‹œ ํ•„์š”ํ•œ UDP ๋งคํ•‘๋งŒ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„๊ฐ€ ๋๋‚˜๋ฉด ํ˜„์žฌ ๋Ÿฐ์ฒ˜ ์„ธ์…˜์ด ๋งŒ๋“ค๊ณ  ๊ธฐ๋ก๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๋งคํ•‘๋งŒ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ข… ์‹คํŒจ ์‹œ ๋‚ด๋ถ€ IPv4, ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด, ํฌํŠธ, ๊ณต์œ ๊ธฐ ๊ด€๋ฆฌ ์ฃผ์†Œ, ๋ฐฉํ™”๋ฒฝ ๋ฐ ์ด์ค‘ NATยทCGNAT ๊ฐ€๋Šฅ์„ฑ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ ๊ฒ€์‚ฌ ์„œ๋น„์Šค ์ž์ฒด๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ์ ‘์† ์‹คํŒจ๋กœ ๋‹จ์ •ํ•˜๊ฑฐ๋‚˜ UPnP๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋ฒ”์œ„์™€ ์ œํ•œ

๊ธฐ๋Šฅ ํ˜„์žฌ ๋ฒ”์œ„
์šด์˜์ฒด์ œ์™€ ๋Ÿฐํƒ€์ž„ Windows 10/11 x64 ๋ฐ .NET Framework 4.8. SDK ์Šคํƒ€์ผ ํ”„๋กœ์ ํŠธ๋„ ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆ์šฉ net48์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ฝ˜ํ…์ธ  ๊ณต๊ธ‰์ž ์ž๋™ ๊ฒ€์ƒ‰ยท์˜์กด์„ฑ ํ•ด๊ฒฐยท์—…๋ฐ์ดํŠธ๋Š” Modrinth๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ JARยทZIP์€ ํŒŒ์ผ ์„ค์น˜์™€ ์ˆ˜๋™ ํŒŒ์ผ ๊ด€๋ฆฌ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
์ผ์ • ์‹คํ–‰ ๊ธฐ๋ณธ๊ฐ’์€ ์—ด๋ฆฐ MineHarbor ์ฐฝ์—์„œ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์šด์˜(๋ฒ ํƒ€)์„ ์ผœ๋ฉด ์‚ฌ์šฉ์ž ๊ณ„์ •์šฉ ํŠธ๋ ˆ์ด ์—์ด์ „ํŠธ๊ฐ€ ์ฐฝ์„ ๋‹ซ์€ ๋’ค์—๋„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ Windows ์„œ๋น„์Šค๋Š” ์„ค์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์šด์˜ ๊ธฐ๋กยทWindows ์•Œ๋ฆผยทDiscord ์„œ๋ฒ„ ์ˆ˜๋ช… ์ฃผ๊ธฐ, ์—์ด์ „ํŠธ์™€ ์˜ˆ์•ฝ ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๋กœ์ปฌ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ˜• ์ž‘์—… ํ‘œ์‹œ์ค„ ์•Œ๋ฆผ๊ณผ ๊ธธ๋“œยท์ฑ„๋„ยท์‚ฌ์šฉ์žยท์—ญํ• ยท์„œ๋ฒ„ ํ—ˆ์šฉ ๋ชฉ๋ก์„ ์ ์šฉํ•œ Discord ์›๊ฒฉ ์ œ์–ด๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์›น ์›๊ฒฉ ๊ด€๋ฆฌ๋Š” ์•„์ง ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹ค์‹œ๊ฐ„ ์„œ๋ฒ„ ์ •๋ณด ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€์˜ ๋ผ์ด๋ธŒ ํ”Œ๋ ˆ์ด์–ดยทTPSยทMSPTยทํ”Œ๋Ÿฌ๊ทธ์ธ ๋ช…๋ น์€ Paper/Purpur 1.13 ์ด์ƒ์—์„œ ์„ ํƒ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์„œ๋ฒ„๋Š” ๋กœ์ปฌ ๋ช…๋ น ์ž๋™์™„์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์–ป์„ ์ˆ˜ ์—†๋Š” ์ง€ํ‘œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Œ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€ ์ ‘์† ํŒ์ • ์ผ๋ฐ˜ TCP ์‘๋‹ต๋งŒ์œผ๋กœ Minecraft ์„œ๋ฒ„๊ฐ€ ๋งž๋‹ค๊ณ  ํ™•์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. MineHarbor๊ฐ€ ๋งŒ๋“  ๋งคํ•‘์˜ ์‚ฌํ›„ ๊ฒ€์‚ฌ๋งŒ ํ™•์ธ๋จ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ์„œ๋ช… ๋ฆด๋ฆฌ์Šค๋งˆ๋‹ค ์ž์ฒด์„œ๋ช…ํ•˜๋ฉฐ ๊ณต๊ฐœ ์ธ์ฆ ๊ธฐ๊ด€์˜ ์‹ ๋ขฐ ์„œ๋ช…์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์™€ ๊ฐœ์ธ์ •๋ณด

์ตœ์ดˆ ์‹คํ–‰์—์„œ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์œ„์น˜ ๊ฒฝ๋กœ
์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ %LOCALAPPDATA%\MineHarbor
Portable ๋ฐ์ดํ„ฐ EXE ์˜†์˜ Minecraft-Servers-Data
์‚ฌ์šฉ์ž ์ง€์ • ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•˜๊ณ  ์‹œ์Šคํ…œ ํด๋”๊ฐ€ ์•„๋‹Œ ์„ ํƒ ๊ฒฝ๋กœ

๊ธฐ์กด Minecraft-Servers-Data๋ฅผ ์ฐพ์œผ๋ฉด ์šฐ์„  ์ œ์•ˆํ•˜์ง€๋งŒ ์ž๋™์œผ๋กœ ์ด๋™ยท์‚ญ์ œยท๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ ์ œํ’ˆ ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“  %LOCALAPPDATA%\MinecraftServerLauncher๊ฐ€ ์žˆ์œผ๋ฉด ์ƒˆ ํด๋”๋ฅผ ๊ฐ•์ œ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ธฐ์กด ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋ฒ„๋Š” servers\<ํ”„๋กœํ•„ ์ด๋ฆ„> ์•„๋ž˜์—์„œ ์›”๋“œ์™€ ์„ค์ •์„ ๋ถ„๋ฆฌํ•ด ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐ์ฒ˜๋Š” ์‚ฌ์šฉ ํ†ต๊ณ„๋‚˜ ๋ถ„์„ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋กœ๊ทธ์™€ ์ง„๋‹จ ๋ฌถ์Œ์„ ์ž๋™ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง„๋‹จ ๋ฌถ์Œ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค๊ณ  ๊ณต์œ ํ•  ๋•Œ๋งŒ PC ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ฒ˜์™€ ๊ฐ€๋ฆผ ํ•ญ๋ชฉ์€ ๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ ์•ˆ๋‚ด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ์ „ํ•˜๊ฒŒ ์„ค๊ณ„๋œ ๋ถ€๋ถ„

  • Java, ์„œ๋ฒ„ ํŒŒ์ผ, ์ฝ˜ํ…์ธ , ๋ธŒ๋ฆฌ์ง€์™€ ๋Ÿฐ์ฒ˜ ์—…๋ฐ์ดํŠธ์˜ HTTPSยทํ—ˆ์šฉ ํ˜ธ์ŠคํŠธยท๋ฆฌ๋””๋ ‰์…˜ยทํฌ๊ธฐยทํ•ด์‹œ ๊ฒ€์ฆ
  • ๊ธฐ์กด ํฌํŠธํฌ์›Œ๋”ฉ๊ณผ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ์˜ UPnP ๋งคํ•‘์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Œ
  • ์ž๋™ OP๋Š” ์ •ํ’ˆ ๊ณ„์ • ์ธ์ฆ์ด ์ผœ์กŒ์„ ๋•Œ๋งŒ ๋™์ž‘ํ•ด ๋‹‰๋„ค์ž„ ์‚ฌ์นญ ์œ„ํ—˜ ์™„ํ™”
  • ๋ธŒ๋ฆฌ์ง€์˜ ๋ฃจํ”„๋ฐฑ ์ „์šฉ ํ†ต์‹ , ์‹คํ–‰๋ณ„ ์ž„์‹œ ํ† ํฐ๊ณผ ์™ธ๋ถ€ ํฌํŠธ ๋ฏธ์‚ฌ์šฉ
  • ์ง„๋‹จ ๋ฌถ์Œ์—์„œ ์‚ฌ์šฉ์ž ๊ฒฝ๋กœ, IP, ์„œ๋ฒ„ ์†Œ์œ ์ž, RCON ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ ์ œ๊ฑฐ
  • ๋ณต์›ยท์—…๋ฐ์ดํŠธ ์‹คํŒจ ์‹œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ ๋จผ์ € ํ™•์ธํ•  ๋‚ด์šฉ
์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ ์ข…๋ฃŒ๋จ ์ฝ˜์†” ์—ด๊ธฐ์—์„œ ์ฒซ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ง„๋‹จ ์š”์•ฝ์„ ์‚ดํŽด๋ณด์„ธ์š”.
์นœ๊ตฌ๊ฐ€ ์ ‘์†ํ•˜์ง€ ๋ชปํ•จ ๋กœ์ปฌ ํฌํŠธ, Windows ๋ฐฉํ™”๋ฒฝ, ํฌํŠธํฌ์›Œ๋”ฉ, ๊ณต์ธ IP์™€ ์ด์ค‘ NATยทCGNAT ์•ˆ๋‚ด๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
Advanced terminal features... ๋˜๋Š” sun.misc.Unsafe ๊ฒฝ๊ณ ๊ฐ€ ๋ณด์ž„ ๋ฆฌ๋””๋ ‰์…˜๋œ GUI ์ฝ˜์†”์ด๋‚˜ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ˜ธํ™˜์„ฑ ๊ฒฝ๊ณ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์‹คํŒจ์™€ ๊ตฌ๋ถ„๋˜๋Š” ํ˜ธํ™˜์„ฑ ํ•„ํ„ฐ๋กœ ํ™•์ธํ•˜์„ธ์š”.
๊ตฌ๋ฒ„์ „ Paper๊ฐ€ ๋„์›€๋ง ๋˜๋Š” Java ์—์ด์ „ํŠธ ์˜ค๋ฅ˜ ํ›„ ์ข…๋ฃŒ๋จ ์ตœ์‹  ๋Ÿฐ์ฒ˜๋กœ ๊ฐฑ์‹ ํ•œ ๋’ค ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”. ๋Ÿฐ์ฒ˜๋Š” ๊ตฌ๋ฒ„์ „์— ๋งž๋Š” ์‹คํ–‰ ์ธ์ˆ˜์™€ ์ƒ๋Œ€ JAR ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„ ์ข…๋ฅ˜๋‚˜ ๋ฒ„์ „์„ ๋ฐ”๊พผ ๋’ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ ํ”Œ๋Ÿฌ๊ทธ์ธยท๋ชจ๋“œ ํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•˜๋ฉด ๋ฐฑ์—…์—์„œ ๋ณต์›ํ•˜์„ธ์š”.
์„œ๋ฒ„ ์†Œ์œ ์ž ์ž๋™ OP๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ ์ •ํ’ˆ ๊ณ„์ • ์ธ์ฆ๊ณผ ๋‹‰๋„ค์ž„ ์ฒ ์ž๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
์‹ค์‹œ๊ฐ„ ๋ช…๋ น์ด ๋กœ์ปฌ ์ƒํƒœ๋กœ๋งŒ ํ‘œ์‹œ๋จ Paper/Purpur 1.13 ์ด์ƒ์ธ์ง€ ํ™•์ธํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋ˆ ๋’ค ๋ช…๋ นยท๋ธŒ๋ฆฌ์ง€ ๊ด€๋ฆฌ์—์„œ ์„ค์น˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
์ž๋™ ์—…๋ฐ์ดํŠธ๋‚˜ ์ฝ˜ํ…์ธ  ์„ค์น˜๊ฐ€ ์‹คํŒจํ•จ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ, ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ API ์ ‘์† ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ฌธ์ œ๊ฐ€ ๊ณ„์†๋˜๋ฉด ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ๊ฐ€๋ฆฐ ์ง„๋‹จ ๋ฌถ์Œ์„ ๋งŒ๋“  ๋’ค GitHub Issues์— ์ฆ์ƒ๊ณผ ์žฌํ˜„ ์ˆœ์„œ๋ฅผ ๋‚จ๊ฒจ ์ฃผ์„ธ์š”. ๋ณด์•ˆ ๋ฌธ์ œ๋Š” ๊ณต๊ฐœ ์ด์Šˆ ๋Œ€์‹  ๋ณด์•ˆ ์ •์ฑ…์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์•Œ๋ ค ์ฃผ์„ธ์š”.

๊ฐœ๋ฐœ๊ณผ ๊ธฐ์—ฌ

Windows 10/11 x64, PowerShell 5.1 ์ด์ƒ๊ณผ .NET Framework 4.x C# ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. .NET 10 SDK๊ฐ€ ์žˆ์œผ๋ฉด SDK ์Šคํƒ€์ผ MineHarbor.csproj์˜ net48 ํ˜ธํ™˜ ๋นŒ๋“œ๋„ ํ•จ๊ป˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.\scripts\Prepare-BuildResources.ps1
.\build.ps1
.\test.ps1
dotnet build .\MineHarbor.csproj -c Release

์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋นŒ๋“œ๋Š” Inno Setup 6.7 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ์›Œํฌํ”Œ๋กœ๋Š” Portable EXEยทZIP, ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ, Paper/Purpur ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€, SHA256SUMS.txt์™€ update.json์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์›์น™๊ณผ ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•์€ CONTRIBUTING.md๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

PR๊ณผ main ํ‘ธ์‹œ์˜ ์ผ๋ฐ˜ CI๋Š” ๋ฒ„์ „ยท๋ฌธ์„œ ์ผ์น˜, SDK ์Šคํƒ€์ผ net48 ๊ฒฝ๊ณ  ์—†๋Š” ๋นŒ๋“œ, Portable EXEยทZIP, ๋ช…๋ น ๋ธŒ๋ฆฌ์ง€์™€ ์‹คํŒจ ๊ฒฝ๋กœยทUI ํšŒ๊ท€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ ๋ฆด๋ฆฌ์Šค ์›Œํฌํ”Œ๋กœ๋Š” ์™ธ๋ถ€ Action์„ ์ „์ฒด ์ปค๋ฐ‹ SHA๋กœ ๊ณ ์ •ํ•˜๊ณ , ๋ฆด๋ฆฌ์Šค ์ž์‚ฐยทSHA-256 ๋ชฉ๋กยท์—…๋ฐ์ดํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐยท์ž์ฒด์„œ๋ช… ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ž„์‹œ ์ธ์ฆ์„œ ์ •๋ฆฌ๋ฅผ ๊ฒ€์ฆํ•˜๋ฉฐ, ์ง์ „ ๊ณต๊ฐœ ๋Ÿฐ์ฒ˜๋ฅผ ํ†ตํ•œ ์ž๋™ ์—…๋ฐ์ดํŠธ๋„ ๋‹ค์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ


English

Download

Package Best for Link
Portable EXE Run one file without installation Download from the permanent URL
Windows installer Start Menu, optional desktop shortcut, and uninstall support Open the latest release
Portable ZIP Keep the launcher, README, and license together Open the latest release

Current source version: v1.21.1 ยท internal build: 26.2.45.90. MineHarbor releases keep the same permanent Portable URL. Existing data under %LOCALAPPDATA%\MinecraftServerLauncher is detected and preserved; new user-data installations use %LOCALAPPDATA%\MineHarbor.

This README documents shipped behavior verified against the current v1.21.1 source, automated tests, and public release assetsโ€”not roadmap items. Conditional and unsupported behavior is called out explicitly below.

Warning

Release executables carry the requested self-signed integrity signature, not a publisher identity trusted by a public certificate authority. Windows SmartScreen can therefore still warn. Verify the GitHub source and the release SHA256SUMS.txt.

Minecraft servers without the setup maze

MineHarbor โ€” Minecraft Server Launcher is a Windows desktop app for creating and operating Paper, Vanilla, Purpur, Fabric, Forge, NeoForge, and custom-JAR servers. It prepares a compatible Java runtime, downloads and verifies server files, keeps profiles isolated, manages backups and content, and helps make a server reachable from outside your network.

Start quickly
Java, server JARs, and first-run settings are prepared in order.
Stay compatible
Java 8/11/16/17/21/25 is selected for the chosen server and Minecraft version.
Operate in one place
Manage multiple servers, backups, content, players, and consoles.
Connect safely
External TCP responses are reported separately from server identity; UPnP is attempted only after a confirmed closed-port result.

Quick start

  1. Download the Portable EXE and run it.
  2. Choose a data location, server type, Minecraft version, preset, and memory, then accept the Minecraft EULA.
  3. Press Start server and share the address shown by the launcher.

The main window appears first while update, profile, and current version data load in the background. Long operations report their current stage and progress, and content operations can be cancelled.

System requirements

Item Requirement
Operating system Windows 10 or Windows 11 x64
Runtime .NET Framework 4.8
Memory Depends on server size; 4 GB is the default recommendation
Internet Required for initial Java/server preparation, updates, content search, and external-access checks
Storage Depends on server files, worlds, plugins/mods, data packs, and backups

Highlights

  • Server profiles: create, clone, import, rename, archive, select, run, and safely stop isolated servers; port conflicts can be reassigned after confirmation, and each address has a one-click copy action. Deleted server folders remain recoverable in Trash for 30 days. Exact-name entry is required only when moving a server to Trash; permanent deletion inside Trash uses a three-second locked confirmation.
  • Presets and settings: survival difficulties, hardcore, normal or flat creative worlds, common server.properties controls, and version-aware Paper/Purpur switches for TNT/carpet/rail, gravity-block, and tripwire-hook duplication. Modern servers use config/paper-global.yml; legacy servers use nested settings.unsupported-settings in paper.yml. Paper-only keys are not written to Spigot, Vanilla, or modded servers; custom JARs require detected Paper keys. Changes preserve unrelated YAML and keep pre-change backups under .mineharbor/configuration-backups.
  • Compatible runtimes: automatic Java 8/11/16/17/21/25 selection and download; explicit Java selection for custom JARs.
  • Updates and backups: optional server auto-update, manual upgrades, staged profile restore, SHA-256 verification, export, scheduled or start/stop-hook backups, and count/day/size retention.
  • Scheduling: per-server backup, start, stop, restart, and command jobs on intervals, daily times, selected weekdays, or a one-time local date. Missed runs can execute once, skip, or create a notification after a bounded delay. The editor previews the next run, risk, offline behavior, and five-minute conflicts.
  • Background operations (Beta): after explicit opt-in, a per-user tray agent evaluates schedules after the GUI closes and can start, safely stop, restart, back up, and open a console for agent-owned servers. A running server started from multi-server management can now transfer to the agent without stopping when that window closes. Optional Windows sign-in startup does not install an elevated service. Same-user secured named-pipe IPC, per-child 256-bit tokens, exact PID/start-time ownership, cross-process schedule locks, lease recovery, resume checks, and safe updater shutdown prevent duplicate or unsafe ownership.
  • Notifications and operations: the main Operations view filters server lifecycle, crash/restart, and scheduled-job results by server, severity, and read state, and exports the visible list to CSV. Each server keeps up to 500 entries in .mineharbor/operations-history.json with atomic writes, a cross-process lock, and a verified SHA-256 hash chain. Opt-in Windows taskbar notifications support severity/category filters, quiet hours, startup replay suppression, and eight-second collapse of bursts.
  • Discord remote control (Beta): after a separate opt-in and user-supplied bot setup, the guild-only /mineharbor command can query approved-server status, bridge-backed online players, and recent errors, or request start, backup, confirmed safe stop, and confirmed restart. Current-user DPAPI token protection, guild/channel/user/role/profile allowlists, per-user throttling, 60-second single-use confirmations, and the existing agent ownership checks guard the boundary. No arbitrary console, shell, file execution, public listener, or control of externally owned servers is exposed.
  • Content: installed plugin/mod/data-pack inventory, managed/manual distinction, compatibility and dependency checks, individual or batch updates, enable/disable/recoverable removal, verified Modrinth search, and local-file or world-targeted data-pack installation. Blank searches return popular results with author, download count, and description. Data packs are installed under the selected <world>/datapacks folder after root pack.mcmeta, path, duplicate-entry, entry-count, and expanded-size checks.
  • Dashboard: status, uptime, Java CPU/memory/version, players, storage, warnings/errors, verified external access, next schedule, and bridge-provided TPS/MSPT without guessed values.
  • Operations: online-player autocomplete for whitelist, OP, kick and ban controls; command/player suggestions in the main and managed consoles; time-independent command suggestions in the scheduler; plus search โ†’ category โ†’ word-wrap console tools with separate warning, compatibility, and error filters.
  • Diagnostics: common startup-cause summaries and exportable bundles with paths, IP addresses, owner names, and secrets redacted.
  • Interface: Korean/English, dark/light themed title bars, console/list scrollbars, rounded input/group frames, dropdowns, checkboxes, tabs and list surfaces, responsive windows, restrained scrolling, concise tooltips, keyboard/screen-reader metadata, background loading, visible progress, and cancellation for content operations.
  • Close safety: closing a modeless tool window consumes the matching pointer release and briefly suppresses repeated clicks near its title-bar X without blocking deliberate clicks elsewhere. Closing the launcher always asks first; idle exits immediately without a server-stop path, active work waits, and a running server is stopped safely before exit.

Background operations (Beta)

Enable this explicitly under Server management โ†’ Background. MineHarbor then runs MineHarbor.exe --background-agent in the current user account and optionally registers it for Windows sign-in. Its tray menu provides per-server start, safe stop, restart, immediate backup, and console access, plus pause, stop-all, and complete-exit actions. Servers started by the agent keep running after the GUI closes.

The GUI and agent communicate through a bounded named pipe whose ACL grants the current Windows SID only. A managed child has its own secured control pipe, fresh 256-bit token, retained recent-log buffer, and exact child/current-owner/new-owner PID plus process-start-time checks. Closing multi-server management offers transfer without stopping, safe stop, or cancel; repeated close requests wait for the transfer result, and a partial failure keeps the window open while successful transfers continue under the agent. Transfer requests are idempotent, and a lost response is accepted only after the child confirms a different live owner.

Cross-process automation locks and PID/start-time leases prevent duplicate claims; resume events re-evaluate each job's bounded missed-run policy. The agent refuses to command, stop, or live-back-up a running server it does not own. A server hosted directly inside the main launcher and an unrelated external server are not inferred as transferable and retain their existing safe-close or external-ownership behavior. Launcher updates safely stop agent-owned servers first and abort instead of forcing an unsafe exit after the timeout.

Windows taskbar notifications are separately opt-in and require the agent to be running. Settings cover severity, event categories, and midnight-spanning quiet hours. Existing history is not replayed when the agent starts, and bursts are summarized rather than repeatedly replacing one another. Notification text is re-sanitized and never includes raw commands.

Discord remote control is another separate opt-in and requires a bot created and installed by the user. It uses an outbound Discord Gateway connection rather than a public inbound listener. The settings view keeps the allowed-user and optional allowed-role editors visible beside the approved profiles, provides the Discord path for copying a user ID, and reports missing or invalid values inline before focusing the affected field. The guild-only /mineharbor command exposes status, players when the bridge is connected, recent errors, start, backup, and 60-second-confirmed safe stop/restart for allowlisted profiles only. The token is current-user DPAPI protected; guild, channel, user or role, and profile checks plus rate limiting apply to every request. Arbitrary console, shell, and file execution remain unavailable.

Open Discord setup from Server management โ†’ Background โ†’ Discord remote or from the agent tray. If no registration exists, a modern four-step guide first explains app/bot creation, guild installation, ID collection, and MineHarbor connection; the settings form opens only after Start setup, and its Setup guide button can reopen the guide later. Step cards and the security note grow with wrapped Korean or English copy, while only the step region scrolls when the working area is too short. After enabling background operations, enter the user-created bot token, application/guild/channel IDs, allowed users or roles, and approved server profiles. See the Discord remote-control architecture for installation and trust boundaries.

This beta does not install an elevated Windows service and does not run before sign-in. Web remote management remains unsupported.

Quick commands and live suggestions

Commands are organized as Category โ†’ Function โ†’ Command, such as World โ†’ Difficulty โ†’ Hard or World โ†’ Weather โ†’ Clear. Search matches display names, descriptions, hierarchy paths, and command text. The picker supports Ctrl+F, arrow keys, Enter, and Esc.

Cursor-aware suggestions, history, and editable templates work locally for every server type. The built-in catalog now contains more than 70 commands, including moderation lookup and IP bans, seed/time queries, common game rules, datapack enable/disable, and safe read-only advanced operations.

Choosing a command opens a step-by-step inline builder. Required {player}, optional [reason], and defaulted optional [count=1] arguments appear as rounded tokens: incomplete values are gray, the active value is accented, and invalid input is highlighted without clearing other arguments. Confirming a value advances directly to the next argument. Up/Down selects candidates, Tab confirms, Shift+Tab returns to the previous argument, and Enter advances while required values are incomplete or sends once they are valid. Optional trailing values can be skipped. The send button remains disabled until every required argument is valid.

Player and target arguments combine connected names with Minecraft selectors; game mode, difficulty, booleans, numbers, time, and coordinates have useful recommendations; item and effect catalogs support substring search. Suggestion lists grow only as needed, up to 430 pixels in the larger available space above or below the input, without covering the input or Send button.

Commands outside the selected server's Minecraft version range are omitted from the picker and local suggestions. Normal, confirmation, and dangerous risk levels are applied consistently; reload, broad mutations, and conditionally destructive values receive a stronger warning. When the optional Paper/Purpur bridge is connected, registered plugin commands and live argument candidates also appear under Plugins โ†’ Plugin name โ†’ Command.

The quick-command card stays in a fixed right-side column while the console uses a separate left column, so toggling the console neither moves the card nor hides console output behind it.

The player-management field suggests connected player names. Main and managed consoles suggest common commands and available player arguments, while the scheduled-command editor suggests commands that do not depend on current players. Use Up/Down and Tab or Enter without leaving the keyboard.

The bridge binds only to 127.0.0.1, uses a new random token and temporary port per run, opens no external port, and leaves command execution on the existing console-input path. User templates remain separate in config/quick-commands.json across launcher updates.

External access flow

The launcher checks the local TCP listener and current external TCP reachability before touching UPnP. A generic port check cannot prove that the responding service is this Minecraft server, so an open result is shown as server identity unverified and router settings are left unchanged. After a confirmed closed-port result, it discovers UPnP through direct SSDP/SOAP first and Windows COM as a fallback, detects collisions, checks up to eight alternate external ports, creates only the required TCP mapping and optional Query UDP mapping, then tests again. Only a successful post-check of a mapping created by MineHarbor is shown as verified.

If access still fails, the manual guide shows the PC IPv4 address, default gateway, internal and external ports, router page, firewall status, and possible double NAT or CGNAT. On shutdown, only mappings created by the current launcher session and still matching its exact record are removed. An unavailable external check service is not treated as a closed port and does not trigger UPnP.

Current scope and limitations

Area Current scope
OS and runtime Windows 10/11 x64 and .NET Framework 4.8. The parallel SDK-style project remains on net48 for compatibility verification.
Content providers Automatic search, dependency resolution, and updates use Modrinth. JAR/ZIP files from other sources can be installed from file and are tracked separately.
Scheduling Open MineHarbor windows evaluate jobs by default. When the user enables Background operations (Beta), a per-user tray agent continues after the GUI closes. No elevated Windows service is installed.
Operations history, Windows notifications, and Discord Server lifecycle, agent, and scheduled-job results are stored locally. Opt-in taskbar notifications and allowlisted guild-only Discord remote control run only with the background agent. Web remote management is not implemented.
Live server data Live players, TPS/MSPT, and plugin commands require the optional bridge on Paper/Purpur 1.13+. Other server types retain local completion, and unavailable metrics are shown as unsupported rather than estimated.
External reachability A generic TCP response does not prove Minecraft server identity. Only the post-check of a mapping created by MineHarbor is marked verified.
Code signing Releases are self-signed per build and do not carry a public-CA trusted publisher signature.

Data, privacy, and safety

Choose user data (%LOCALAPPDATA%\MineHarbor), Portable data (Minecraft-Servers-Data beside the EXE), or a writable custom folder. Existing data under the legacy %LOCALAPPDATA%\MinecraftServerLauncher path is detected and reused without automatic moves, deletion, or overwrites.

The launcher collects no analytics or usage telemetry and never uploads logs or diagnostic bundles automatically. Downloads enforce HTTPS, allowed hosts and redirects, bounded sizes, and available hashes; existing router mappings are preserved; diagnostic bundles redact sensitive values; and automatic owner OP is disabled when online authentication is off. See the privacy notice and security policy for details.

Build and test

Build on Windows 10/11 x64 with PowerShell 5.1 or newer and the .NET Framework 4.x C# compiler.

.\scripts\Prepare-BuildResources.ps1
.\build.ps1
.\test.ps1
dotnet build .\MineHarbor.csproj -c Release

Installer builds require Inno Setup 6.7 or newer. See CONTRIBUTING.md for build rules, tests, and the release workflow.

General CI on pull requests and main pushes checks version/document consistency, the warning-free SDK-style net48 build, Portable EXE/ZIP, the command bridge, failure paths, and UI regressions. The separate release workflow pins external Actions to full commit SHAs and verifies release assets, the SHA-256 list, update metadata, self-signed integrity, temporary-certificate cleanup, and automatic updating through the previous public launcher.

Support and policies

About

Modern Minecraft server launcher for Windows.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages