大家好,我是 SamHacker,最近突發奇想想寫文章教學開伺服器的無聊人
今天是一系列的文章(坑)的開始,我想寫一系列文章來教大家開伺服器。前面廢話不用太多,直接進入正題吧!我是第一次發文,有些地方可能寫的怪怪的請大家多多包容啦!
一、什麼是伺服器
什麼是伺服器?這個問題其實很簡單,不用想的太難,你現在在看我的文章,我的文章就存在巴哈的伺服器上。伺服器依照維基百科的定義,就是:
一個管理資源並為使用者提供服務的電腦軟體,通常分為檔案伺服器(能使使用者在其他電腦存取檔案),資料庫伺服器和應用程式伺服器。 簡單來說,伺服器就是一臺電腦,但不是我們熟悉的個人電腦。伺服器是擁有特殊功能的企業級電腦產品,用戶可透過行動裝置或個人電腦與其連線,索取額外的資訊與服務。 |
至於麥塊伺服器是幹嘛的?請想一個情境:你想要跟朋友一起相約比速通,看誰先打終界龍打完,於是你建立了一個世界,然後在區網發布,你的電腦現在就是一臺可以在區網中跟朋友開黑打遊戲的伺服器,也就是說,麥塊伺服器就只是用來讓一堆人可以在一個世界玩麥塊的一臺機器,他會記錄所有人的資訊、地圖等。
二、怎麼開伺服器
開伺服器的方法,目前可以分成兩種方法:本機開服與租用託管,底下來比較一下兩個方法的差異:
本機開服
就跟名字一樣,你用自己的電腦開伺服器給別人連線。
但因為一些原因(好奇的話留個言敲碗,夠多人敲我就寫),你的電腦要讓玩家們玩是需要一些...方法的,稍微複雜一些,適合有開服基礎和想不開的人使用
租用託管
看到"租"就知道,這個方法是要一(億)些錢,但俗話說的好:付錢的最大,選擇這個方法你不用自己設定內網穿透、伺服器軟體、設定連線位置、申請固定IP...的事情,你只需要出一些錢就可以了。
至於這兩個方法差在哪裡,用買電腦來說,本機開服就像你自己買各個零件自己拼在一起,而租託管就是買現成的套裝機。一個是CP值高,你可以確保你花的每一毛錢都有變成硬體或光害;另一個則是簡單,買來回家接電接滑鼠鍵盤螢幕開機就可以快樂地用了,出事再把電腦丟去給廠商修。一個是性價比高、一個是不用自己DebugDe得要死要活,底下我開個表格可能比較省事:
項目... |
|
|
除錯 |
不用,廠商會幫你解決一切 |
要,看要爬聞問GPT還是來巴哈找大佬(不是我) |
花錢 |
要,你就是多花錢買個方便,大概幾百一個月 | 如果你有電腦就不用 |
優點 |
|
|
缺點 |
|
|
適合的情境 |
|
|
三、開服的軟體
常見用來開麥塊伺服器的軟體有以下幾套:
- 原版伺服器:Vanilla
- 插件伺服器:Bulkkit、Paper、Spigot、Purpur
- 模組伺服器:Forge、Fabric
- 協議轉換程式:GeyserMC、BigBrother
(以上資料部分來自Wiki頁面)
底下來比較一下(沒有全部,只拿我比較熟悉的):
項目 |
|
|
|
|
|
|
開發者 |
Mojang Studios (官方) |
SpigotMC | PaperMC | SpigotMC | MinecraftForge & FabricMC | GeyserMC |
Fork來源 |
無 | 無 | Bulkkit | Bulkkit 的續作 |
無 | 無 |
類型 |
原版 | 插件 | 插件 | 插件 | 模組 | 封包轉譯器 (協議轉換 程式) |
開放性與可自訂性 |
低 | 中 | 中 | 中 | 中高 | 不可比較 |
特點 |
|
|
|
|
|
|
更新速度 |
最快,幾乎即時 | 快,但插件不一定相容 | 快,但插件不一定相容 | 快,但插件不一定相容 | 快,但模組不一定相容 | 通常支持全版本 |
擴充內容 |
最少 | 多 | 多 | 多 | 最多 | 不可比較 |
玩家須安裝 |
無,直接加入即可 | 無,直接加入即可 | 無,直接加入即可 | 無,直接加入即可 | 需安裝對應模組 | 無,直接加入即可 |
價格 |
免費 |
四、下載自己的第一個伺服器軟體
4-1 下載Java環境
如果你可以玩MC,一般你應該已經下載好Java環境了,可以試著按下Windows + R,輸入 cmd 並執行,然後你會看到類似以下的視窗:
Microsoft Windows [版本 10.0.19045.4046] (c) Microsoft Corporation. 著作權所有,並保留一切權利。 C:\Users\510208> |
輸入 java --version ,如果你回應以下訊息就OK了:
Microsoft Windows [版本 10.0.19045.4046] (c) Microsoft Corporation. 著作權所有,並保留一切權利。 C:\Users\510208>java --version java 21.0.2 2024-01-16 LTS Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-58) Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing) C:\Users\510208> |
4-2 下載伺服器軟體(Paper篇)
底下連結有所有Paper發行版連結:
在這邊找自己要安裝的版本,複製連結下載,我建議不要裝最新版本,很容易出事情,我這邊用1.20示範,以下是我取得的連結:
下載到檔案以後,不要直接打開,先把它移到一個資料夾,我自己習慣扔到C槽根目錄創一個 server 資料夾,以下是正常的樣子:
C:.
paper-1.20-17.jar
paper-1.20-17.jar 是我剛剛下載的伺服器檔案,前往這個網站,要做啟動設定檔案:https://flags.sh/
FileName輸入你的伺服器檔案名稱,像我是 paper-1.20-17.jar
Memory輸入你本機硬體記憶體的一半左右就夠了,工作管理員裡面效能裡有,可以自己去看看:
然後按網站上的下載按鈕(上面先切到你的作業系統,通常是Windows):
你會得到一個start.bat,把他跟你的伺服器軟體一起放資料夾下,然後變這樣:
C:.
paper-1.20-17.jar
start.bat
啟動伺服器很簡單,執行剛載的檔案即可,你也可以改檔名讓自己不會忘記,跳警告請放心讓他跑。
然後...你會發現它...閃退了???
其實很簡單,就像註冊帳號會叫你同意那一大串可能打死我也不會看的條款一樣,這個東西也是要同意那一大串可能打死我也不會看的條款,然後你會發現一件事:X北為啥出現這麼多資料夾跟檔案????
C:.
│ eula.txt
│ paper-1.20-17.jar
│ server.properties
│ start.bat
│
├─cache
│ mojang_1.20.jar
│
├─libraries
│ ├─com
│ │ ├─github
│ │ │ └─oshi
│ │ │ └─oshi-core
│ │ │ └─6.2.2
│ │ │ oshi-core-6.2.2.jar
│ │ │
│ │ ├─google
│ │ │ ├─code
│ │ │ │ ├─findbugs
│ │ │ │ │ └─jsr305
│ │ │ │ │ └─3.0.2
│ │ │ │ │ jsr305-3.0.2.jar
│ │ │ │ │
│ │ │ │ └─gson
│ │ │ │ └─gson
│ │ │ │ └─2.10
│ │ │ │ gson-2.10.jar
│ │ │ │
│ │ │ ├─errorprone
│ │ │ │ └─error_prone_annotations
│ │ │ │ └─2.11.0
│ │ │ │ error_prone_annotations-2.11.0.jar
│ │ │ │
│ │ │ ├─guava
│ │ │ │ ├─failureaccess
│ │ │ │ │ └─1.0.1
│ │ │ │ │ failureaccess-1.0.1.jar
│ │ │ │ │
│ │ │ │ ├─guava
│ │ │ │ │ └─31.1-jre
│ │ │ │ │ guava-31.1-jre.jar
│ │ │ │ │
│ │ │ │ └─listenablefuture
│ │ │ │ └─9999.0-empty-to-avoid-conflict-with-guava
│ │ │ │ listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
│ │ │ │
│ │ │ ├─j2objc
│ │ │ │ └─j2objc-annotations
│ │ │ │ └─1.3
│ │ │ │ j2objc-annotations-1.3.jar
│ │ │ │
│ │ │ └─protobuf
│ │ │ └─protobuf-java
│ │ │ └─3.21.9
│ │ │ protobuf-java-3.21.9.jar
│ │ │
│ │ ├─googlecode
│ │ │ └─json-simple
│ │ │ └─json-simple
│ │ │ └─1.1.1
│ │ │ json-simple-1.1.1.jar
│ │ │
│ │ ├─lmax
│ │ │ └─disruptor
│ │ │ └─3.4.4
│ │ │ disruptor-3.4.4.jar
│ │ │
│ │ ├─mojang
│ │ │ ├─authlib
│ │ │ │ └─4.0.43
│ │ │ │ authlib-4.0.43.jar
│ │ │ │
│ │ │ ├─brigadier
│ │ │ │ └─1.1.8
│ │ │ │ brigadier-1.1.8.jar
│ │ │ │
│ │ │ ├─datafixerupper
│ │ │ │ └─6.0.8
│ │ │ │ datafixerupper-6.0.8.jar
│ │ │ │
│ │ │ └─logging
│ │ │ └─1.1.1
│ │ │ logging-1.1.1.jar
│ │ │
│ │ ├─mysql
│ │ │ └─mysql-connector-j
│ │ │ └─8.0.33
│ │ │ mysql-connector-j-8.0.33.jar
│ │ │
│ │ └─velocitypowered
│ │ └─velocity-native
│ │ └─3.1.2-SNAPSHOT
│ │ velocity-native-3.1.2-SNAPSHOT.jar
│ │
│ ├─commons-codec
│ │ └─commons-codec
│ │ └─1.11
│ │ commons-codec-1.11.jar
│ │
│ ├─commons-io
│ │ └─commons-io
│ │ └─2.11.0
│ │ commons-io-2.11.0.jar
│ │
│ ├─commons-lang
│ │ └─commons-lang
│ │ └─2.6
│ │ commons-lang-2.6.jar
│ │
│ ├─io
│ │ ├─leangen
│ │ │ └─geantyref
│ │ │ └─geantyref
│ │ │ └─1.3.11
│ │ │ geantyref-1.3.11.jar
│ │ │
│ │ ├─netty
│ │ │ ├─netty-all
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-all-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-buffer
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-buffer-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-dns
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-dns-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-haproxy
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-haproxy-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-http
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-http-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-http2
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-http2-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-memcache
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-memcache-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-mqtt
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-mqtt-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-redis
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-redis-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-smtp
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-smtp-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-socks
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-socks-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-stomp
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-stomp-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-codec-xml
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-codec-xml-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-common
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-common-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-handler
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-handler-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-handler-proxy
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-handler-proxy-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-handler-ssl-ocsp
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-handler-ssl-ocsp-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-resolver
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-resolver-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-resolver-dns
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-resolver-dns-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-resolver-dns-classes-macos
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-resolver-dns-classes-macos-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-resolver-dns-native-macos
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-resolver-dns-native-macos-4.1.87.Final-osx-aarch_64.jar
│ │ │ │ netty-resolver-dns-native-macos-4.1.87.Final-osx-x86_64.jar
│ │ │ │
│ │ │ ├─netty-transport
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-transport-classes-epoll
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-classes-epoll-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-transport-classes-kqueue
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-classes-kqueue-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-transport-native-epoll
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-native-epoll-4.1.87.Final-linux-aarch_64.jar
│ │ │ │ netty-transport-native-epoll-4.1.87.Final-linux-x86_64.jar
│ │ │ │
│ │ │ ├─netty-transport-native-kqueue
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-native-kqueue-4.1.87.Final-osx-aarch_64.jar
│ │ │ │ netty-transport-native-kqueue-4.1.87.Final-osx-x86_64.jar
│ │ │ │
│ │ │ ├─netty-transport-native-unix-common
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-native-unix-common-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-transport-rxtx
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-rxtx-4.1.87.Final.jar
│ │ │ │
│ │ │ ├─netty-transport-sctp
│ │ │ │ └─4.1.87.Final
│ │ │ │ netty-transport-sctp-4.1.87.Final.jar
│ │ │ │
│ │ │ └─netty-transport-udt
│ │ │ └─4.1.87.Final
│ │ │ netty-transport-udt-4.1.87.Final.jar
│ │ │
│ │ └─papermc
│ │ └─paper
│ │ ├─paper-api
│ │ │ └─1.20-R0.1-SNAPSHOT
│ │ │ paper-api-1.20-R0.1-SNAPSHOT.jar
│ │ │
│ │ └─paper-mojangapi
│ │ └─1.20-R0.1-SNAPSHOT
│ │ paper-mojangapi-1.20-R0.1-SNAPSHOT.jar
│ │
│ ├─it
│ │ └─unimi
│ │ └─dsi
│ │ └─fastutil
│ │ └─8.5.9
│ │ fastutil-8.5.9.jar
│ │
│ ├─javax
│ │ └─inject
│ │ └─javax.inject
│ │ └─1
│ │ javax.inject-1.jar
│ │
│ ├─net
│ │ ├─fabricmc
│ │ │ └─mapping-io
│ │ │ └─0.3.0
│ │ │ mapping-io-0.3.0.jar
│ │ │
│ │ ├─java
│ │ │ └─dev
│ │ │ └─jna
│ │ │ ├─jna
│ │ │ │ └─5.12.1
│ │ │ │ jna-5.12.1.jar
│ │ │ │
│ │ │ └─jna-platform
│ │ │ └─5.12.1
│ │ │ jna-platform-5.12.1.jar
│ │ │
│ │ ├─kyori
│ │ │ ├─adventure-api
│ │ │ │ └─4.14.0
│ │ │ │ adventure-api-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-key
│ │ │ │ └─4.14.0
│ │ │ │ adventure-key-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-logger-slf4j
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-logger-slf4j-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-minimessage
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-minimessage-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-serializer-ansi
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-serializer-ansi-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-serializer-gson
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-serializer-gson-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-serializer-json
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-serializer-json-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-serializer-legacy
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-serializer-legacy-4.14.0.jar
│ │ │ │
│ │ │ ├─adventure-text-serializer-plain
│ │ │ │ └─4.14.0
│ │ │ │ adventure-text-serializer-plain-4.14.0.jar
│ │ │ │
│ │ │ ├─ansi
│ │ │ │ └─1.0.0
│ │ │ │ ansi-1.0.0.jar
│ │ │ │
│ │ │ ├─examination-api
│ │ │ │ └─1.3.0
│ │ │ │ examination-api-1.3.0.jar
│ │ │ │
│ │ │ └─examination-string
│ │ │ └─1.3.0
│ │ │ examination-string-1.3.0.jar
│ │ │
│ │ ├─md-5
│ │ │ └─bungeecord-chat
│ │ │ └─1.16-R0.4-deprecated+build.9
│ │ │ bungeecord-chat-1.16-R0.4-deprecated+build.9.jar
│ │ │
│ │ ├─minecrell
│ │ │ └─terminalconsoleappender
│ │ │ └─1.3.0
│ │ │ terminalconsoleappender-1.3.0.jar
│ │ │
│ │ └─sf
│ │ └─jopt-simple
│ │ └─jopt-simple
│ │ └─5.0.4
│ │ jopt-simple-5.0.4.jar
│ │
│ └─org
│ ├─apache
│ │ ├─commons
│ │ │ └─commons-lang3
│ │ │ └─3.12.0
│ │ │ commons-lang3-3.12.0.jar
│ │ │
│ │ ├─httpcomponents
│ │ │ ├─httpclient
│ │ │ │ └─4.5.13
│ │ │ │ httpclient-4.5.13.jar
│ │ │ │
│ │ │ └─httpcore
│ │ │ └─4.4.15
│ │ │ httpcore-4.4.15.jar
│ │ │
│ │ ├─logging
│ │ │ └─log4j
│ │ │ ├─log4j-api
│ │ │ │ └─2.19.0
│ │ │ │ log4j-api-2.19.0.jar
│ │ │ │
│ │ │ ├─log4j-core
│ │ │ │ └─2.19.0
│ │ │ │ log4j-core-2.19.0.jar
│ │ │ │
│ │ │ ├─log4j-iostreams
│ │ │ │ └─2.19.0
│ │ │ │ log4j-iostreams-2.19.0.jar
│ │ │ │
│ │ │ └─log4j-slf4j2-impl
│ │ │ └─2.19.0
│ │ │ log4j-slf4j2-impl-2.19.0.jar
│ │ │
│ │ └─maven
│ │ ├─maven-artifact
│ │ │ └─3.9.2
│ │ │ maven-artifact-3.9.2.jar
│ │ │
│ │ ├─maven-builder-support
│ │ │ └─3.9.2
│ │ │ maven-builder-support-3.9.2.jar
│ │ │
│ │ ├─maven-model
│ │ │ └─3.9.2
│ │ │ maven-model-3.9.2.jar
│ │ │
│ │ ├─maven-model-builder
│ │ │ └─3.9.2
│ │ │ maven-model-builder-3.9.2.jar
│ │ │
│ │ ├─maven-repository-metadata
│ │ │ └─3.9.2
│ │ │ maven-repository-metadata-3.9.2.jar
│ │ │
│ │ ├─maven-resolver-provider
│ │ │ └─3.9.2
│ │ │ maven-resolver-provider-3.9.2.jar
│ │ │
│ │ └─resolver
│ │ ├─maven-resolver-api
│ │ │ └─1.9.10
│ │ │ maven-resolver-api-1.9.10.jar
│ │ │
│ │ ├─maven-resolver-connector-basic
│ │ │ └─1.9.10
│ │ │ maven-resolver-connector-basic-1.9.10.jar
│ │ │
│ │ ├─maven-resolver-impl
│ │ │ └─1.9.10
│ │ │ maven-resolver-impl-1.9.10.jar
│ │ │
│ │ ├─maven-resolver-named-locks
│ │ │ └─1.9.10
│ │ │ maven-resolver-named-locks-1.9.10.jar
│ │ │
│ │ ├─maven-resolver-spi
│ │ │ └─1.9.10
│ │ │ maven-resolver-spi-1.9.10.jar
│ │ │
│ │ ├─maven-resolver-transport-http
│ │ │ └─1.9.10
│ │ │ maven-resolver-transport-http-1.9.10.jar
│ │ │
│ │ └─maven-resolver-util
│ │ └─1.9.10
│ │ maven-resolver-util-1.9.10.jar
│ │
│ ├─checkerframework
│ │ └─checker-qual
│ │ └─3.12.0
│ │ checker-qual-3.12.0.jar
│ │
│ ├─codehaus
│ │ └─plexus
│ │ ├─plexus-interpolation
│ │ │ └─1.26
│ │ │ plexus-interpolation-1.26.jar
│ │ │
│ │ └─plexus-utils
│ │ └─3.5.1
│ │ plexus-utils-3.5.1.jar
│ │
│ ├─eclipse
│ │ └─sisu
│ │ └─org.eclipse.sisu.inject
│ │ └─0.3.5
│ │ org.eclipse.sisu.inject-0.3.5.jar
│ │
│ ├─fusesource
│ │ └─jansi
│ │ └─jansi
│ │ └─2.4.0
│ │ jansi-2.4.0.jar
│ │
│ ├─jline
│ │ ├─jline-reader
│ │ │ └─3.20.0
│ │ │ jline-reader-3.20.0.jar
│ │ │
│ │ ├─jline-terminal
│ │ │ └─3.21.0
│ │ │ jline-terminal-3.21.0.jar
│ │ │
│ │ └─jline-terminal-jansi
│ │ └─3.21.0
│ │ jline-terminal-jansi-3.21.0.jar
│ │
│ ├─joml
│ │ └─joml
│ │ └─1.10.5
│ │ joml-1.10.5.jar
│ │
│ ├─ow2
│ │ └─asm
│ │ ├─asm
│ │ │ └─9.4
│ │ │ asm-9.4.jar
│ │ │
│ │ ├─asm-commons
│ │ │ └─9.4
│ │ │ asm-commons-9.4.jar
│ │ │
│ │ └─asm-tree
│ │ └─9.4
│ │ asm-tree-9.4.jar
│ │
│ ├─slf4j
│ │ ├─jcl-over-slf4j
│ │ │ └─1.7.36
│ │ │ jcl-over-slf4j-1.7.36.jar
│ │ │
│ │ └─slf4j-api
│ │ └─2.0.1
│ │ slf4j-api-2.0.1.jar
│ │
│ ├─spongepowered
│ │ ├─configurate-core
│ │ │ └─4.1.2
│ │ │ configurate-core-4.1.2.jar
│ │ │
│ │ └─configurate-yaml
│ │ └─4.1.2
│ │ configurate-yaml-4.1.2.jar
│ │
│ ├─xerial
│ │ └─sqlite-jdbc
│ │ └─3.42.0.0
│ │ sqlite-jdbc-3.42.0.0.jar
│ │
│ └─yaml
│ └─snakeyaml
│ └─2.0
│ snakeyaml-2.0.jar
│
├─logs
│ latest.log
│
├─plugins
└─versions
└─1.20
paper-1.20.jar
這一堆就是伺服器的檔案,我簡單整理幾個重要的給你:
- cache:快取,不要動它,之後要搬伺服器把這個刪掉也可以
- logs:記錄檔,快樂的除錯時間時會需要...最好永遠不要用到,因為要用到代表你會很痛苦
- plugins:插件,之後我會教
- eula.txt:害你閃退的元兇,待會教你怎麼弄
- paper-1.20-17.jar:伺服器主程式
- server.properties:伺服器配置文件,未來會教,也可以自己預習
- start.bat:你忘記這啥了嗎?以後啟動伺服器要找它欸
這個顏色的是資料夾,這個顏色的叫做檔案
打開 eula.txt 看到裡面有以下文字:
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA). #Tue Feb 20 17:38:18 CST 2024 eula=false |
然後...檔案變得更多了...
記錄檔變這樣:
[17:48:24 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [17:48:24 INFO]: Found new data pack file/bukkit, loading it automatically [17:48:26 INFO]: Loaded 7 recipes [17:48:26 INFO]: Starting minecraft server version 1.20 [17:48:26 INFO]: Loading properties [17:48:26 INFO]: This server is running Paper version git-Paper-17 (MC: 1.20) (Implementing API version 1.20-R0.1-SNAPSHOT) (Git: c287e92) [17:48:26 INFO]: Server Ping Player Sample Count: 12 [17:48:26 INFO]: Using 4 threads for Netty based IO [17:48:26 INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 2 worker threads, and gen parallelism of 2 threads [17:48:26 WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future. We recommend installing the spark profiler as a replacement: https://spark.lucko.me/ For more information please visit: https://github.com/PaperMC/Paper/issues/8948 [17:48:27 INFO]: Default game type: SURVIVAL [17:48:27 INFO]: Generating keypair [17:48:27 INFO]: Starting Minecraft server on *:25565 [17:48:27 INFO]: Using default channel type [17:48:27 INFO]: Paper: Using Java compression from Velocity. [17:48:27 INFO]: Paper: Using Java cipher from Velocity. [17:48:27 INFO]: Preparing level "world" [17:48:35 INFO]: Preparing start region for dimension minecraft:overworld [17:48:35 INFO]: Time elapsed: 157 ms [17:48:35 INFO]: Preparing start region for dimension minecraft:the_nether [17:48:35 INFO]: Time elapsed: 136 ms [17:48:35 INFO]: Preparing start region for dimension minecraft:the_end [17:48:35 INFO]: Time elapsed: 71 ms [17:48:35 INFO]: Running delayed init tasks [17:48:35 INFO]: Done (9.177s)! For help, type "help" [17:48:35 INFO]: Timings Reset |
很完美,現在打開MC,因為我們還沒裝全版本插件,所以你只能用你當初下載的版本,在終端上會寫,像我在截圖上數下來第三行出現這段字:
[17:48:26 INFO]: Starting minecraft server version 1.20 |
五、裝全版本支持插件
首先,連到以下網站下載檔案:
這個是向上支援的插件,找這顆按鈕按下去,然後把下載下來檔案扔進 plugins 資料夾,這就是安裝插件的方式,很簡單齁?
再來我們安裝這套:
安裝方法一樣,兩個裝好之後在終端視窗輸入stop按Enter,等視窗消失
然後重開...
你會看到終端多這些:
[17:55:21 INFO]: [ViaVersion] Loading server plugin ViaVersion v4.9.2 [17:55:21 INFO]: [ViaVersion] ViaVersion 4.9.2 is now loaded. Registering protocol transformers and injecting... [17:55:22 INFO]: [ViaVersion] Loading block connection mappings ... [17:55:22 INFO]: [ViaVersion] Using FastUtil Long2ObjectOpenHashMap for block connections [17:55:22 INFO]: [ViaBackwards] Loading translations... [17:55:22 INFO]: [ViaBackwards] Registering protocols... [17:55:22 INFO]: [ViaBackwards] Loading server plugin ViaBackwards v4.9.1 |
今天先講到這裡,剩下的我下一篇在講