日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

我的世界minecraft最新版1.16.5服务器及其Python开发环境搭建

發布時間:2024/3/13 python 144 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我的世界minecraft最新版1.16.5服务器及其Python开发环境搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.本文環境

Mac OS: 11.2.3 JDK: Java 1.8 Python: 3.9.4,需要pyyaml包 minecraff 客戶端: 官方 1.16.5 minecraft 服務器:spigot 1.16.5 Python API:JuicyRaspberryPie 1.16.5

主要的工具服務器、API、客戶端都是jar,所以windows/Linux環境無大區別

2.MC客戶端下載

官方客戶端下載地址:

https://minecraft.net/zh-hans/download/

最新1.16.5,官網購買165塊錢人民幣,下載安裝即可。

3.服務器準備

3.1.服務器spigot(bukkit)

先下載buildtools,參考 https://hub.spigotmc.org/jenkins/job/BuildTools/

mkdir -p ~/spigot/1.16.5 cd ~/spigot/1.16.5 wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

再生成spigot-1.16.5.jar,參考https://www.spigotmc.org/wiki/buildtools/#1-16-5

java -jar BuildTools.jar --rev 1.16.5

要編譯生成spigot-1.16.5.jar,先運行一次,生成目錄以及eula.txt,如果使用圖形化界面,移除nogui選項

java -Xms2048M -Xmx2048M -jar spigot-1.16.5.jar nogui

然后關閉,將eula.txt中eula=false改為true

sed -i "" 's/eula=false/eula=true/g' eula.txtgrep -E 'eula' eula.txt

3.2參數調整

修改server.properties,參考https://minecraft.fandom.com/zh/wiki/Server.properties
a.生存模式修改為創造模式

sed -i "" 's/gamemode=survival/gamemode=creative/g' server.properties

b.離線模式,不會每次校驗客戶端賬號

sed -i "" 's/online-mode=true/online-mode=false/g' server.properties

gamemode四種類型:survival,creative,adventure,spectator

3.3 Python接口插件

下載源代碼并編譯juicyraspberrypie-1.16.5.jar,依賴與jdk 1.8 與maven 3.8.1,提前準備

cd ~/spigot/1.16.5 git clone https://github.com/wensheng/JuicyRaspberryPie cd ./JuicyRaspberryPie/bukkit mvn clean package mkdir -p ~/spigot/1.16.5/plugins mv ./target/juicyraspberrypie-1.16.5.jar ~/spigot/1.16.5/plugins/

若編譯通不過,確認pom.xml依賴部分:

<!-- https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 --><dependency><groupId>com.google.code.findbugs</groupId><artifactId>jsr305</artifactId><version>3.0.2</version></dependency><dependency><groupId>org.spigotmc</groupId><artifactId>spigot-api</artifactId><version>${SpigotVersion}-R0.1-SNAPSHOT</version><scope>provided</scope></dependency>

一是增加jsr305依賴,二是將artifactId spigot改為spigot-api。
然后重新啟動服務器,展開juicyraspberrypie-1.16.5.jar插件

forge的編譯依賴與gradle 6.8.x,千萬別用7.0!!

java -Xms2048M -Xmx2048M -jar spigot-1.16.5.jar

啟動完成后,馬上退出服務器,即關閉spigot-1.16.5.jar進程,修改python3的exec配置

3.4 啟動python命令接口

cd ~/spigot/1.16.5 sed -i "" 's/start_cmdsvr: false/start_cmdsvr: true/g' ./plugins/JuicyRaspberryPie/config.yml

確認python路徑,默認是/usr/bin/python3,若不正確就修改pyexec的值。
查看Python3路徑

where python3

結果:

/Users/xxx/.pyenv/shims/python3 /usr/local/bin/python3 /usr/bin/python3

第一個是pyenv安裝的,第二個應該是brew安裝的,選一個修改config.yml,這個Python要能運行"cmdsvr/pycmdsvr.py",故環境中要有pyyaml包(pip install pyyaml)。

sed -i "" 's/\/usr\/bin\/python3/\/usr\/local\/bin\/python3/g' ./plugins/JuicyRaspberryPie/config.yml

確認修改后的config.yml

cat ~/spigot/1.16.5/plugins/JuicyRaspberryPie/config.yml

config.yml內容

api_port: 4711 start_cmdsvr: true cmdsvr_host: "localhost" cmdsvr_port: 4731 pyexe: "/usr/local/bin/python3" # windows pyexe example # pyexe: "C:\\Users\\wensheng\\Anaconda3\\python.exe"

然后重啟服務器,客戶端進入選擇多人游戲模式,添加本地服務器 127.0.0.1,端口默認為25565;若服務器端口改為5565,則直接 127.0.0.1:5565.

4.Python開發環境準備

方案1:直接用源代碼,不pip安裝API包

mkdir ~/mc_python_dev cp -r ~/spigot/1.16.5/JuicyRaspberryPie/bukkit/src/main/resources/* ~/mc_python_dev/

查看目錄結果

tree ~/mc_python_dev/

結果:

├── cmdsvr │ └── pycmdsvr.py ├── config.yml ├── mcpi │ ├── connection.py │ ├── event.py │ ├── minecraft.py │ ├── util.py │ └── vec3.py ├── plugin.yml └── pplugins├── README.txt├── config.yml├── examples.py└── plugin.yml

方案2:pip方式

主要API包mcpi 1.2.0沒更新,setblock時在1.12版之前的數字型ID,1.13之后是字符型。

# 主要的API庫 mcpi 1.2.0 pip install mcpi # 繪圖庫可選 pip install minecraftstuff

修改bug,進入Python命令行環境,導入mcpi,查看/site-packages/mcpi路徑

Python 3.9.4 (default, Apr 5 2021, 01:50:46) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import mcpi >>> mcpi.__file__ '/Users/xxx/mc_python_dev/venv/lib/python3.9/site-packages/mcpi/__init__.py'

看到/Users/xxx/mc_python_dev/venv/lib/python3.9/site-packages/mcpi就是,進入目錄,修改minecraft.py源文件修改setBlock/setBlocks函數,把intFloor刪掉,其他函數沒有仔細比對,按需修改。

def setBlock(self, *args):"""Set block (x,y,z,id,[data])"""#self.conn.send(b"world.setBlock", intFloor(args))self.conn.send(b"world.setBlock", args)def setBlocks(self, *args):"""Set a cuboid of blocks (x0,y0,z0,x1,y1,z1,id,[data])"""#self.conn.send(b"world.setBlocks", intFloor(args))self.conn.send(b"world.setBlocks", args)

原因是1.13之后的blockbox_id已經改為"minecraft:stone"的形式,而不是數字,參考:

https://wiki.biligame.com/mc/Java%E7%89%88%E6%95%B0%E6%8D%AE%E5%80%BC

5.Say Hello from Python

用任何的編輯器編輯一個Demo,內容如下:

cat ~/mc_python_dev/sayHello.py

內容如下:

# coding:utf8# 引入mcpi目錄下的mcpi.minecraft import mcpi.minecraft as minecraft# 建立mc連接對象 mc = minecraft.Minecraft.create()# 發送消息 mc.postToChat("hello from python")# 獲得玩家位置 pos = mc.player.getTilePos() # 創建兩個block mc.setBlock(pos.x + 1, pos.y + 1, pos.z, "minecraft:mossy_cobblestone") #注意: "minecraft:mossy_cobblestone" 而不是48 mc.setBlock(pos.x + 1, pos.y + 2, pos.z, "minecraft:magma_block")

運行,運行之前服務器,客服端都有啟動,客戶端選多人,添加并登錄本地服務器

cd ~/mc_python_dev/ Python3 sayHello.py

回到客戶端就可以看到結果了!恭喜恭喜,搞定!!

6.cmdsvr問題

本來以為,通過修改過~/spigot/1.16.5/plugins/JuicyRaspberryPie/config.yml之后start_cmdsvr為true,應該是服務器加載插件后自動啟動的,服務器spigot-1.16.5.jar啟動日志也有啟動提示:

[07:50:32] [Server thread/INFO]: [JuicyRaspberryPie] Enabling JuicyRaspberryPie v1.16.5 [07:50:32] [Server thread/INFO]: ThreadListener Started [07:50:32] [Server thread/INFO]: Starting Python command server using /usr/local/bin/python3 [07:50:32] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it

但在客戶端里輸入

/p list

提示"command server not available"

cd ~/spigot/1.16.5/plugins/JuicyRaspberryPie python3 ./cmdsvr/pycmdsvr.py

運行結果:

registering command: cube registering command: falling_block registering command: flatten registering command: rainbow registering command: sphere Command server started at localhost:4731.

現在可以進客戶端愉快的玩了!

/p cube 2 minecraft:diamond_block

具體原因還沒找到,這么著吧:<

7.參考資料

  • 服務器資料包下載:
    https://download.csdn.net/download/dgatiger/16742734
  • 站內參考資料
    PYTHON玩轉我的世界(1)——環境搭建
    https://blog.csdn.net/gogir/article/details/100074563

總結

以上是生活随笔為你收集整理的我的世界minecraft最新版1.16.5服务器及其Python开发环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。