티스토리 뷰
마인크래프트를 여러사람과 즐기려면 접속할 수 있는 서버가 필요하다. 접속할 수 있는 서버를 만드는 방법은 2가지인데, 본인이 싱글플레이를 하면서 open to lan 메뉴를 이용하여 본인 컴퓨터가 서버가 되는 방법과, 아니면 아예 별도의 컴퓨터에 서버를 구축하여 접속하게끔 할 수 있다. 아래 포스팅이 open to lan 을 이용한 멀티플레이 방법이다.
마인크래프트 패브릭 서버 설치
이 포스팅에서는 별도의 마인크래프트 서버 jar 을 이용해서 멀티플레이를 위한 별도의 서버를 구축해보려 한다. 그리고 로컬에서 설치하는게 아니라, docker 를 이용해서 서버를 구축해볼까 한다. 이 경우 장점은 java 설치를 컴퓨터에다 직접하지 않아도 된다는 장점이 있다. 자바 버전18 docker 이미지를 다운 받아 실행만 하면 된다. 우선 docker 프로그램을 설치를 먼저해야 하는데 아래 포스팅을 참고한다.
https://fabricmc.net/use/installer/ 사이트로 가서 installer 를 다운받아서 실행하면 아래와 같이 나올텐데, server 를 클릭하고, install 을 클릭한다.
그러면 아래 팝업이 뜰텐데, [Download server jar] 도 클릭한다. 그리고 나서 중간에 있는 명령어를 복사해놓는다.
java -Xmx2G -jar fabric-server-launch.jar nogui
그러면 아래처럼 2개의 jar 파일과 libraries 폴더가 하나 생겨있을 것이다.
이게 다른 파일들과 섞이면 안되니, fabric-server 라는 폴더를 하나 만들고 그 안에다가 옮겨준다.
현재 받은 패브릭 서버 파일을 실행하려면 자바 17버전이상이 필요하다. 아니라면 아래처럼 에러메시지를 볼 수 있다.
Uncaught exception in thread "main"
java.lang.RuntimeException: An exception occurred when launching the server!
at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:71)
at net.fabricmc.installer.ServerLauncher.main(ServerLauncher.java:69)
Caused by: java.lang.RuntimeException: Error invoking MC server bundler: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor.process(BundlerProcessor.java:102)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.locateGame(MinecraftGameProvider.java:190)
at net.fabricmc.loader.impl.launch.knot.Knot.createGameProvider(Knot.java:177)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:130)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23)
at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69)
... 1 more
Caused by: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:878)
at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor$1.loadClass(BundlerProcessor.java:65)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor.process(BundlerProcessor.java:85)
... 7 more
이렇다 보니, docker 이미지중에 openjdk 18 버전을 받으려 한다. 아래 사이트로 간다.
나는 데비안 os 가 편해서 아래 버전으로 받으려 한다. 터미널에서 아래 명령어를 실행한다. 이미지파일을 받는과정이라 조금 시간이 걸린다.
docker pull openjdk:18-jdk-bullseye
이미지 목록을 확인해본다.
> docker images !5873
REPOSITORY TAG IMAGE ID CREATED SIZE
openjdk 18-jdk-bullseye 9845b3c2cece 24 hours ago 663MB
서버에 필요한 2개 포트를 열고, 아까 만든 폴더를 바인딩 해서 docker 컨테이너를 실행한다.
docker run -it --rm --name my-openjdk-18 \
-p 25565:25565 \
-p 25575:25575 \
-v ~/Downloads/fabric-server:/root/my-data \
-w /root/my-data openjdk:18-jdk-bullseye bash
실행하고 나면, 또 다른 커맨드 입력창이 뜰텐데, 거기서 java --version 을 확인하면 자바 18버전이 설치된걸 확인할 수 있다.
root@6c575b53cc4d:~/my-data# java --version
openjdk 18.0.2.1 2022-08-18
OpenJDK Runtime Environment (build 18.0.2.1+1-1)
OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)
드디어 아래 명령어를 실행하면 어느정도 파일설치를 하다가, eula.txt 관련 메시지를 볼 수 있다.
> java -Xmx2G -jar fabric-server-launch.jar nogui
Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture
[15:13:16] [main/INFO]: Loading Minecraft 1.19.2 with Fabric Loader 0.14.9
[15:13:16] [main/INFO]: Fabric is preparing JARs on first launch, this may take a few seconds...
[15:13:16] [main/INFO]: Loading 3 mods:
- fabricloader 0.14.9
- java 18
- minecraft 1.19.2
[15:13:16] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/root/my-data/libraries/net/fabricmc/sponge-mixin/0.11.4+mixin.0.8.5/sponge-mixin-0.11.4+mixin.0.8.5.jar Service=Knot/Fabric Env=SERVER
[15:13:19] [main/INFO]: Building unoptimized datafixer
[15:13:20] [main/ERROR]: Failed to load properties from file: server.properties
[15:13:20] [main/WARN]: Failed to load eula.txt
[15:13:20] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
다운받은 파일중 eula.txt 파일을 찾아 열어본다. 그 파일에 있는 false 를 true 로 바꿔준다.
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Wed Sep 14 15:13:20 UTC 2022
eula=true
다시 아래 명령어를 실행한다. "Done" 이라는 텍스트가 나오면 서버가 기동이 완료된 것이다.
java -Xmx2G -jar fabric-server-launch.jar nogui
이제 접속할 일만 남았다.
멀티플레이로 들어가면 minecraft server 가 보인다. 안보이는 분들은 add server 하고 "localhost" 를 입력해보길 바란다.
상단에 보면 3rd-party Server 라고 떠있다. 접속 성공이다. 별도의 서버를 꾸려서 친구들과 마인크래프트 멀티를 진행할 수 있을 듯 하다.
- Total
- Today
- Yesterday
- vagrant
- 아이맥
- R
- github
- 마인크래프트
- MySQL
- SVN
- MongoDB
- Oracle
- ggplot
- ipTIME
- Google Chart Tools
- 이클립스
- eclipse
- 막대그래프
- MyBatis
- java
- ktm모바일
- ggplot2
- docker
- 셀프개통
- ubuntu
- heroku
- 맥북
- 자급제폰
- javascript
- Spring
- 알뜰요금제
- 도넛차트
- python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |