
마인크래프트 지난 이야기들
위의 링크글 처럼 예전에 후기 비스무리하게 글을 올렸었습니다만 가이드 글을 원하시는 분들도 종종 계시더라고요
이게 아무래도 가이드 글을 쓰기에는 너무 방대하기도 하고 각각에 상황에 따라 발생할 수 있는 문제가 다 달라서
대충대충 생략을 했었는데 그 이유는 다른 글의 댓글로 달았던 내용을 가져와서 보면
이 플러그인 서버라는 것이 누가 통팩으로 설정 다 해둔 거 그대로 쓰는 게 아닌 이상
각 서버 종류와 설정과 플러그인 종류 그리고 플러그인과 서버 버전 등등에 따라
이런 저런 오류가 많이 생깁니다 플러그인 들이 계속 개발과 업데이트가 이어지는 상태라
본인이 필요한 것들 하나하나 적용 하는 방법 밖에 없습니다a, b, c 플러그인 넣으면 작동 하는데 d 플러그인 추가하면 b 플러그인 오류가 뜨고
a 플러그인 잘 되던 거 업데이트 떠서 교체하면 서버가 죽고 이런 경우가 많아요그리고 각 플러그인 마다 위키나 문서 페이지가 따로 있고 그 분량이 방대한 경우가 많아서
그거 보고 각각의 플러그인 세팅 다 하나씩 해줘야 합니다
설명서 없으면 각 디스코드에 개발자들 있는데 그 개발자들 한테 질문하려면 플러그인 유료 구매 해야만 하구요여하튼 복잡해요
저도 어제인가 그제인가 마크 게시글 보고 생각나서 서버 다시 켜봤는데
도커 이미지 업데이트 하고 서버 이상해져서 다시 복구하고 플러그인 업데이트 하고 보니 또 에러 뜨고
서버 죽어서 안 켜지고 리소스팩 적용 안되고 막 난리나서 복구하는데 8시간인가 걸렸네요
괜히 한 번 켜봤다가 8시간 날렸습니다…필요한 플러그인 하나 추가하고 직접 설정 해보고 그 플러그인 위키나 문서 확인하고 설정 다 됐으면
다시 하나 또 추가하고 문제 없으면 다른 거 추가하고 문제 생기면 로그 보고 수정하고 해서
직접 수정하고 설정 가능 해야 유지 가능 합니다
플러그인 코드 다 뜯어서 확인 하는 정도 까지는 아니더라도
최소한 로그 파일 보고 설정 수정할 수 있는 정도는 되야 편합니다제가 이 게시글도 그냥 후기 처럼 쓴 이유가 가이드 글로 쓰면 너무 방대해지고 변수가 너무 많아요
각 플러그인 마다 간단한 플러그인은 이 글 정도의 분량으로 1~2개, 복잡한 건 3~4개 정도는 써야 할 정도인데
그런 플러그인이 60여 개 정도 됩니다…플러그인 마다 위키가 따로 있는 경우가 많으니 말 다 했죠
대충 이런 이유 입니다
제가 만들었던 프록시 서버와 적용한 모든 플러그인에 관한 가이드 글은 사실상 너무 복잡해서 좀 힘들 거 같고
단일 서버에 플러그인 몇 개 정도는 가이드 글로 적을 수 있겠더라고요
지금 코로나인지 독감인지 뭔가 걸려서 쉬고 있다가 좀 나아져서 여유가 생기니 한 번 적어 봅니다
우선 제가 만든 서버 같은 경우는

이런 식으로 번지코드 프록시 서버와 월드 서버 2개 그리고 redis 컨테이너 까지 해서 만들었습니다
굳이 코드를 보자면
원래는 월드 서버가 3개 였는데 하나는 뺐습니다… 그리고 예전 글들 보셨으면 아시겠지만
아이콘이나 이런 거 필요 없으시면 그냥 빼도 되는 부분도 많죠
굳이 이 코드를 왜 적었느냐?
여기서 서버 코드를 잘라서 만들 거 거든요
솔직히 프록시 서버를 만드는 건 저대로 설정하고 만들기만 해도 아마 작동은 될 겁니다
복잡한 부분은 이제 각 서버의 설정과 플러그인들을 네트워크로 묶어 주는 작업이 복잡 한 거겠죠
단일 서버로 만들면 참 쉽습니다
우선 저는 1.20.1 ‘페이퍼’ 서버를 만들 겁니다
페이퍼 서버가 뭐냐?
이 글 한 번 읽어 보시면 좋을 거 같습니다
맨 위에 있는 링크 글들 한 번 씩 읽어 보시면 이해하시기 쉬울 겁니다
1.20.1 버전을 쓰는 이유는 기존 플러그인들의 호환성 때문입니다
제가 서버를 만들 때는 1.20.1이 거의 최신이면서 호환성 좋은 버전 이었는데
요즘에는 더 버전 업이 되면서 상위 버전도 호환성이 좋아졌을 수 있습니다
자 서버 부분을 뚝 떼왔습니다
그런데 보시면 뭔가 많이 적혀 있습니다
TYPE은 paper로 적혀 있죠 – 플러그인 서버를 만들기 위해 선택 했습니다
버전도 적혀있고 프록시 버전과 다르게 온라인모드를 true를 해줘야 공식 서버 캐릭터를 가져올 수 있습니다
위의 코드를 쭉 보면 로비 서버 부분을 가져온 거라 npc나 동물이나 몬스터등의 스폰이 false로 설정 돼있습니다
중간에 autopause 같은 것들은 접속자 없으면 서버가 절전모드?같이 대기 모드로 바뀝니다
당연히 대기 모드 시에는 자원을 아주 적게 먹습니다
그리고 누군가가 접속을 요청하면 서버가 켜지게 되는 거죠
자원 관리 부분에서 좋기는 하지만 가끔 튕김이 있을 수 있습니다 물론 단일 서버다 보니 크게 문제는 없을 거 같네요
프록시 서버 같은 경우 이 서버 저 서버 왔다갔다 해야해서 가끔 튕겼다가 재접하게 되는 경우가 있더라고요
MEMORY: 1G 메모리 부분은 월드의 크기나 플러그인 종류에 따라서 늘려주시면 됩니다
유저가 많으면 월드가 점점 커지겠죠 – 건물이 늘어나거나 로딩 된 부분이 늘어나거나…
그러면 필요한 메모리도 점점 커집니다
메모리를 처음부터 많이 할당 하시거나 월드 크기 제한을 걸어 두시면 되겠습니다
MAX_WORLD_SIZE: 200 기본은 무한 맵이지만 월드 크기를 제한 하는 거죠
이건 야생 서버로 사용하던 코드 입니다
좀 더 간단하죠 뭐 환경변수는 다양하니 필요에 따라 쓰시면 됩니다
네트워크의 경우 가끔 재빌드를 하면 네트워크가 바뀌는 경우가 있습니다
플러그인 설정에 네트워크 설정을 하는 경우가 있는데
컨테이너 네트워크 설정이 변경 되면 플러그인 설정을 다 바꿔줘야 하는 경우가 있습니다
물론 단일 서버라 네트워크 설정해야 하는 플러그인이 많지는 않겠지만
그래도 귀찮을 상황을 방지하기 위해 고정 하기로 합니다
본인의 상황에 맞게 네트워크 설정을 해주시면 됩니다
아 다 귀찮다 싶으시면 그냥 네트워크 부분 다 지우시고 기본 설정 하셔도 됩니다나중에 문제 생겼을 때 추가해도 되는 부분이니까요
단일 서버니까 야생 서버로 만들어 보겠습니다
우선 서버부터 빠르게 올려 보겠습니다
파일 스테이션 열고 docker 폴더에 원하는 이름으로 폴더를 만들어 줍니다
저는 minecraft_paper 라고 만들 겠습니다

그리고 그 안에 data 폴더를 만들어 줍니다
서버 아이콘을 적용 하시려면 icon 관련 주석 처리 된 부분을 지우고 적용하시면 됩니다
download 폴더도 만들고 그 안에 icon 폴더 만들고 그 안에 icon.png 파일도 넣어주시면 되겠죠?

컨테이너 매니저에서 프로젝트 생성 하시고 위 처럼 설정 후 코드 넣고 다음다음 완료 입니다


정상적으로 생성이 됐습니다
자 이제 페이퍼 서버가 만들어졌습니다

접속도 잘 됐습니다만
서버를 만들었으니 접속 할 클라이언트 세팅을 해야겠죠
예전 글에도 대충 적혀있긴 합니다만 다음 글에서 다뤄 보겠습니다
사실 과정은 간단한데 설명을 쬐끔 자세하게 적다보니 글이 길어지네요