Minestom 是一個開源程式庫,使開發人員能夠創建自己的 Minecraft 伺服器軟體,而無需 Mojang 的任何程式碼。
Mojang 的普通伺服器和基於minestom 的伺服器之間的主要區別是我們的伺服器預設不包含任何功能!然而,我們有一個完整的 API,旨在讓您輕鬆實現一切可能。
這是一個開發者 API,不適合最終用戶使用。用這個取代 Bukkit/Forge/Sponge是行不通的,因為我們沒有實作它們的任何 API。
Minestom 不像 Bukkit/Forge/Sponge 那樣安裝。由於 Minestom 是一個 Java 程式庫,因此必須以與載入任何其他 Java 程式庫相同的方式載入它。這意味著您需要新增 Minestom 作為依賴項,新增程式碼並自行編譯。
Minestom 可在 Maven Central 上使用,並且可以如下安裝(Gradle/Groovy):
repositories {
mavenCentral()
maven { url ' https://jitpack.io ' }
}
dependencies {
implementation ' net.minestom:minestom-snapshots:<???> '
}
此處提供如何使用 Minestom 程式庫的範例。或者您可以查看官方 wiki 或 javadocs。
自發布以來,《我的世界》已經發生了很大的變化,如今大多數伺服器都沒有利用普通功能,甚至因此而陷入困境。我們的目標受眾是那些想要創建一個從普通功能中獲益甚少的伺服器的人。例如創意、kitpvp。目標是為需要的人提供更高的性能。換句話說,當實現您想要的每個缺少的普通功能所需的時間比刪除每個會減慢您速度的普通功能花費的時間更少時,使用 Minestom 是有意義的。
Minestom 並不完美,我們的選擇使其在某些情況下變得更好,而在其他情況下則變得更糟。
即使我們在遊戲中預設不包含任何內容,我們也會簡化您添加它們的方式,這是預覽。
這是我們的主要理念,世界非常適合與朋友一起生存,但當規模擴大時,它可能會變得難以管理。最好的例子可以在 Skyblock 或迷你遊戲中找到,無法正確分離每個部分並被迫將所有內容保存在文件中,更不用說其中包含的不必要數據所造成的開銷。實例是一個輕量級的解決方案,能夠僅將每個區塊保存在記憶體中,立即將其複製並發送給另一個玩家,並具有自訂序列化等等...
能夠直接在旅途中創建實例是必須的,我們相信它可以推動更多專案向前發展。
實例還具有效能優勢,與其他一些完全單執行緒或可能每個世界使用一個執行緒的實例不同,我們使用一組執行緒(池)來獨立於實例管理所有區塊,這意味著使用更多的 CPU 功率。
預設情況下,Minestom 不知道什麼是箱子,您必須告訴他它會打開一個庫存。每個「特殊塊」(不只是視覺塊)都需要一個專門的處理程序。應用此處理程序後,您將擁有一個可以輕鬆放置在任何地方的區塊。然而,所有區塊都在視覺上存在,只是預設情況下它們不會進行互動。
「被動」或「攻擊性」怪物這些術語並不存在,沒有人會阻止你讓一隻飛雞衝向任何離得太近的玩家,由於混淆和巨大的繼承,使用 NMS 這樣做確實是一團糟。
這是 Minecraft 發展很大的一個領域,庫存現在大量用作具有可點擊項目和回調的客戶端 <-> 伺服器接口,我們原生支援這些交互,無需對您的解決方案進行編程。
命令是客戶端和伺服器之間最簡單的通訊方式。自 1.13 Minecraft 合併了一個名為「Brigadier」的新函式庫以來,我們整合了一個 API,旨在充分利用 args 類型的潛力。
#mcdevs
- 協定和檔案格式研究。請參閱貢獻文件!所有 WIP 功能均以草稿 PR 預覽
該項目根據 Apache License Version 2.0 獲得許可。