一个基于mcpi的mc玩家追踪程序
mcpi
最近想把python和mc结合起来
python + minecraft = ???
通过询问AI我得到了一个叫”mcpi”的库
安装方法
Windows
1 | pip3 install mcpi |
Linux / MacOS
1 | sudo pip3 install mcpi |
开服工具
我是使用mc服务器的所以需要服务器
这里选用MSL作为开服工具
- MSL官方网站
- MSL GitHub
{: .prompt-tip }
开服
选择最新版本的游戏,使用插件服。
开服后打开
Server\plugins
放入插件 raspberryjuice-1.9.jar
raspberryjuice项目目前已停止维护!
{: .prompt-danger }
开服成功了awa
我的项目 MC-Player-Tracker
本项目使用AIGC
{: .prompt-danger }
示例
在游戏中记录坐标,然后以图表的形式展现:

将光标置于记录点上,还有详细信息

依赖
一共有2个文件,是 plot_footprint.py 和 record.py
确保Python版本为3.x.x
确保已经安装了MCPI 和 plotly 库
确保两个文件在同一目录下
确保在record.py中正确输入了服务器IP地址和端口号
部署
1.下载文件MC-Player-Tracker
2.进入record.py修改IP和端口号如服务器在本地不用修改使用170.0.0.1,端口号在服务器开服时插件会有提醒默认为4711
3.修改其他数值,找到def main 修改time.sleep(1)来改变记录间隔时长
使用教程
1.打开游戏连接至服务器,运行record.py
2.进入游戏,在聊天栏输入record start开始记录
3.记录完毕输入record stop停止记录
4.现在,足迹已经记录到了player_footprints.txt,运行plot_footprint.py等待生成完毕,自动打开浏览器预览图表
MCPI使用方法
以下是我让AI整理的调用方法
1.连接到 Minecraft:
1 | from mcpi.minecraft import Minecraft |
2.获取玩家位置:
1 | playerPos = mc.player.getTilePos() |
3.在特定位置放置方块:
1 | mc.setBlock(playerPos.x, playerPos.y + 1, playerPos.z, 4)# 4 是石头的方块ID |
4.在玩家位置放置方块:
1 | mc.setBlock(playerPos.x, playerPos.y, playerPos.z, 57) # 57 是钻石块的方块ID |
5.发送聊天消息:
1 | mc.postToChat("Hello, Minecraft World!") |
6.获取世界高度:
1 | height = mc.getHeight(0, 0) |
7.获取玩家实体ID:
1 | entityId = mc.getPlayerEntityId("martinohanlon") |
8.保存检查点:
1 | mc.saveCheckpoint() |
9.恢复检查点:
1 | mc.restoreCheckpoint() |
10.设置世界设置:
1 | mc.setting("world_immutable", True) # 开启世界不可更改 |
11.获取玩家位置(浮点数):
1 | playerPos = mc.player.getPos() |
12.设置方块:
1 | mc.setBlock(0, 0, 0, block.DIRT.id) |
13.设置长方体区域的方块:
1 | mc.setBlocks(-1, -1, -1, 1, 1, 1, block.STONE.id) |
14.获取方块类型:
1 | blockType = mc.getBlock(0, 0, 0) |
15.获取方块数据:
1 | blockData = mc.getBlockWithData(0, 0, 0) |
–THE END–