마인크래프트/커스텀 모드 런처

마인크래프트 커스텀 런처 Helios Launcher (MRS Launcher) - 5

devppaka 2024. 8. 26. 20:22
반응형

4편에서는 런처 쪽에서 수정해야하는 것들을 알아보았고,

이번에는 서버에서 제공하는 distribution.json의 내용을 채워보도록 하자.

 

 

1. 서버 아이콘

런처 프로그램의 아이콘과 다르게 설정할 수 있긴한데

귀찮으면 런처 아이콘인 icon.png 그대로 가져다 사용해도 된다.

 

서버ROOT -> servers -> 서버id-버전 폴더에 들어가서

icon.png를 넣어준다.

icon.png 추가

 

이렇게 해두면

Nebula를 사용해서 distribution.json을 재생성하면

저 아이콘 이미지 파일을 찾아서 url을 생성해준다.

 

참고로, 파일이름은 꼭 icon이 아니여도 된다.

png나 jpg 파일 형식이면 알아서 찾아준다고 한다.

 

또는 외부 이미지 url을 붙여넣어도 된다.

 

나머지 내용은 https://github.com/dscalzi/Nebula#setting-the-server-icon

Nebula 문서의 설명을 잘 읽어보자.

 

 

 

2. 디스코드와 연동

위에서 아이콘을 설정하고 나면

servermeta.json도 있는데

 

VS Code로 열어보자

servermeta.json 열기

 

그러면 shortId, largeImageText, largeImageKey 이렇게 채울 수 있는데,

 

 

그 다음은 https://discord.com/developers/applications

디스코드 Developers 사이트에서 

 

로그인부터 하고 New Application 버튼을 눌러서 앱을 생성해준다.

새 APP 만들기

 

Create!

 

그러면 생성한 앱의 페이지로 넘어가는데

 

내가 만든 APP

 

첨부한 사진의 하단을 보면 APPLICATION ID가 적혀있다

 

Copy 버튼을 눌러서 복사하고

distrometa.json에 넣어줘야한다.

 

 

distrometa.json은 서버ROOT -> meta 폴더에 있다.

마찬가지로 VS Code로 열어주고

 

distrometa.json 열기

 

clientId 부분에 붙여넣어준다.

 

 

그리고 아까 생성한 디스코드 Application 페이지에 가서

Art Assets 메뉴

 

좌측 Settings에 Rich Presence -> Art Assets로 들어간다.

 

페이지 하단에 Rich Presence Assets 라고 있는데,

앱에서 사용할 이미지들을 넣어주기만 하면 된다.

 

일단 나는 아이콘 파일과 하얀색 이미지 파일을 넣어주겠다.

(모두 png 파일이다)

 

Add Image를 누르고 추가

 

그럼 이렇게 들어간다.

 

이름을 바꾸고 싶다면 여기서 바꿔주도록하자, 나중에 갑자기 바꾸고싶다고 그러면

X버튼을 눌러 삭제하고 다시 추가해줘야한다. 

 

다 되었으면 페이지 하단에

Save Changes 누르기

 

Save Changes 버튼을 눌러 저장한다.

 

그리고 여기서 작업한 이미지는 바로 적용되지는 않고, 시간이 좀 걸릴 것이다.

 

 

 

 

distrometa.json으로 돌아가서

 

smallImageText는 

내가 설정한 사진

 

디스코드에서 활동 상태를 보면 우측 하단에 작은 이미지가 있는데

그곳에 마우스 커서를 올리면 어떤 텍스트가 보여야하는지 정의하는 부분이다.

My Launcher라고 작성하면

마우스를 올리면?

 

이렇게 나타난다.

 

smallImageKey는 

그 작은 이미지 공간에 어떤 이미지를 사용할지 결정하는 부분이다.

 

위에서 나는 런처 아이콘을 올려두고, icon이라고 이름을 적었기 때문에

icon이라고 작성했다.

 

distrometa.json

 

 

그리고 servermeta.json을 다시 연다.

(서버ROOT -> servers -> 서버id-버전 폴더에 있다)

 

servermeta.json

 

shortId의 설명

 

shortId는 어떤 서버에 들어와 있는지 보여주는 이름을 짧게 적어주면 될 것 같다.

나는 Parasite라고 적었다.

 

largeImageText는 smallImageText에 적었던 것처럼 비슷한데

설정한 이미지

 

하얀색 사각형이 내가 설정한 이미지이고

저기에 마우스 커서를 올리면 어떤 텍스트를 띄울지 결정하는 부분이다.

 

나는 1.20.1 Parasite Server 라고 적었다.

 

 

largeImageKey는 저 하얀색 사각형에 어떤 이미지를 표시할지

이름을 적어주면 된다.

 

나는 white 라고 적었다.

 

servermeta.json 수정

 

 

 

3. RSS

서버가 어떤 이벤트를 열었거나 추가 사항, 공지가 있다면 런처의 News 탭에서 확인 할 수 있다.

NEWS 버튼

 

그런데 확인할 수 없다.

바로 RSS를 구성하지 않았기 때문에...

 

 

직접 RSS 2.0을 구성해줄 수 있는 사람은

서버ROOT -> meta -> distrometa.json 을 열고

rss에다가 직접 url을 추가해주면 될 것 같다.

 

그런데 아직 없는 사람은 아래 방법을 따라해보자

(사실 안해도 된다)

 

 

 

 

 

 

파이썬을 사용하여

rfeed라는 라이브러리로 RSS 2.0 피드를 만들어보겠다. 

https://github.com/svpino/rfeed

 

GitHub - svpino/rfeed: Extensible RSS 2.0 Feed Generator written in Python

Extensible RSS 2.0 Feed Generator written in Python - GitHub - svpino/rfeed: Extensible RSS 2.0 Feed Generator written in Python

github.com

 

위 Github 페이지에 들어가면

Code라는 버튼이 있다.

 

Download ZIP을 눌러서 cmd를 킬 필요가 없이 바로 내려받을 수 있다.

그리고 압축을 해제한다.

Download ZIP을 눌러서 소스코드 받기

 

사실 터미널(cmd)는 켜야한다...

 

아무튼 cd 명령어를 통해 rfeed를 내려받고 압축해제한 폴더로 이동해서

다음 명령어를 입력한다.

 

python setup.py install

그러면 파이썬에 rfeed를 설치해서 사용할 수 있게 된다.

 

 

test.py 라는 파일을 만들고 메모장이나 VS Code로 연다.

 

import datetime
from rfeed import *

KST = datetime.timezone(datetime.timedelta(hours=9))

item1 = Item(
    title="첫번째 글",
    description="첫번째 글에 대한 설명입니다",
    author="첫번째 작성자",
    pubDate=datetime.datetime(2024, 8, 10, 8, 58),
)

item2 = Item(
    title="두번째 글",
    description="두번째 글에 대한 설명입니다",
    author="두번째 작성자",
    pubDate=datetime.datetime(2024, 8, 10, 8, 59),
)

items = [item1, item2]
items.reverse()

feed = Feed(
    title="예제 RSS 2.0",
    description="rfeed로 생성한 RSS 2.0의 예제입니다.",
    language="ko-KR",
    lastBuildDate=datetime.datetime.now(tz=KST),
    items=items,
)

print(feed.rss())

 

이런식으로 적어주면 된다.

 

파일에 저장하려면 터미널(cmd)를 열고

 

python test.py > 원하는경로\news.xml

이렇게 적어준다.

 

그러면 출력된 내용이 news.xml로 들어간다.

위에서 생성한 news.xml을 서버ROOT 폴더로 옮겨주었다.

news.xml 생성 완료

 

그런데 런처의 기본 코드로는 이 파일을 제대로 읽을 수 없다.

 

 

그래서 MRSLauncher 폴더를 VS Code로 열고

다음 코드를 찾아서 수정한다.

 

 

MRSLauncher -> app -> assets -> js -> scripts -> landing.js

landing.js 수정

 

find(' ') 안에 내용을 author로 바꿔준다.

결과

 

 

그리고 

ROOT폴더 -> meta 폴더의 distrometa.json 을 VS Code로 열고

 

url 설정

 

meta의 rss를 다음과 같이 설정했다.

 

나중에 라이브 서버를 운영하게되면 localhost 부분을 서버 IP로 바꾸고

8080 포트는 열어주도록 하자.

 

 

 

4. distribution.json 업데이트

터미널(cmd)로 Nebula 폴더로 이동하고

npm run start -- generate distro

 

를 입력하자.

 

그리고 서버ROOT를 서버로 열어두면

 

나오긴 하는데...

 

 

이런식으로 나타난다.

반응형