디컴파일된 마인크래프트 버전 비교

⚠️ You cannot publish any of Minecraft's source code!



이 자습서에서는 shulkr을 사용하여 Minecraft: Java Edition의 Wild Update에 도입된 모든 코드 변경 사항을 확인합니다.


슐커 설치



Shulkr를 사용하면 여러 버전의 Minecraft: Java Edition을 디컴파일, 관리 및 비교할 수 있습니다. pip로 설치할 수 있습니다.

pip install -U shulkr


이를 사용하려면 Git 및 Python 3가 설치되어 있어야 합니다. (yarn 매핑을 사용하려면 JDK 17 이상이 필요합니다.)

Minecraft 1.18.2 디컴파일



시작하려면 Caves & Cliffs 업데이트의 마지막 패치를 디컴파일해 보겠습니다.

mkdir minecraft
cd minecraft
shulkr --mappings mojang 1.18.2


이렇게 하면 현재 디렉터리에 3개의 커밋이 포함된 git repo가 ​​생성됩니다.

$ git log --oneline
49f1ec5 (HEAD -> main, tag: 1.18.2) version 1.18.2
87b4c68 add .gitignore
51f09e4 add .shulkr


가장 최근 커밋은 우리가 신경 쓰는 유일한 커밋입니다. 클라이언트 및 서버 소스와 함께 src 디렉토리를 추가합니다.

Shulkr의 현재 기본값은 원사 매핑을 사용하여 Minecraft를 디컴파일하는 것입니다. Mojang에서 게시한 공식 파일을 사용하려면 --mappings mojang 를 포함합니다. 리포지토리당 한 번만 제공하면 됩니다.

마인크래프트 1.19 디컴파일



이제 Wild Update를 디컴파일할 수 있는 두 가지 옵션이 있습니다. shulkr에게 각 1.19의 스냅샷을 개별적으로 디컴파일하고 커밋하도록 지시하거나 단일 커밋으로 1.19를 생성하도록 지시할 수 있습니다.

각 스냅샷을 개별적으로 생성:

shulkr ...1.19


여기서는 snapshot range 구문을 사용하여 1.19까지 모든 스냅샷을 포함합니다.

커밋 기록을 보면 이제 다음을 볼 수 있습니다.

$ git log --oneline
75c1db5 (HEAD -> main, tag: 1.19) version 1.19
db6f94c (tag: 1.19-rc2) version 1.19-rc2
920103c (tag: 1.19-rc1) version 1.19-rc1
9b22ccc (tag: 1.19-pre5) version 1.19-pre5
92ccdc0 (tag: 1.19-pre4) version 1.19-pre4
86eeac5 (tag: 1.19-pre3) version 1.19-pre3
4e6b60f (tag: 1.19-pre2) version 1.19-pre2
e2f126e (tag: 1.19-pre1) version 1.19-pre1
7b2ed57 (tag: 22w19a) version 22w19a
d77b8bc (tag: 22w18a) version 22w18a
8c26849 (tag: 22w17a) version 22w17a
473997f (tag: 22w16b) version 22w16b
c2abe5b (tag: 22w16a) version 22w16a
1f1d0e3 (tag: 22w15a) version 22w15a
c9d0fbd (tag: 22w14a) version 22w14a
2461716 (tag: 22w13oneblockatatime) version 22w13oneblockatatime
ada384b (tag: 22w13a) version 22w13a
f149097 (tag: 22w12a) version 22w12a
e2f0705 (tag: 22w11a) version 22w11a
49f1ec5 (tag: 1.18.2) version 1.18.2
87b4c68 add .gitignore
51f09e4 add .shulkr


단일 커밋으로 1.19 생성:

shulkr 1.19


이 명령은 하나의 버전만 디컴파일하기 때문에 이전 명령보다 훨씬 빠르게 실행됩니다. 여기에서 커밋 기록을 보면 다음을 볼 수 있습니다.

$ git log --oneline
e23cdba (HEAD -> main, tag: 1.19) version 1.19
49f1ec5 (tag: 1.18.2) version 1.18.2
87b4c68 add .gitignore
51f09e4 add .shulkr


버전 비교



이제 1.19에서 변경된 모든 코드를 볼 수 있습니다.

git diff 1.18.2 1.19


수정된 파일을 나열하기 위해 다음을 실행할 수 있습니다.

git diff --stat 1.18.2 1.19


이 튜토리얼을 확인해 주셔서 감사합니다 😄 문제가 있으면 open an issue .

좋은 웹페이지 즐겨찾기