基于nodejs的MCPE http api后端

目录

之前做了一个 MCPE 的镜像项目,实现 MCPE 服务端的快速部署,但是每次对服务端进行操作都要 SSH 连上服务器后才能操作,于是做了个基于 nodejs 的 Web API 后台,可以实现通过 http 请求向 MCPE 服务端发命令。

bedrock-api

这个项目的思路就是一个 nodejs 后台进程,fork 出一个 MCPE 后端的进程,然后 nodejs 进程接管 MCPE 的 io 流,同时 nodejs 开启一个 http 服务器,接收到请求后转发给 MCPE 后端。已经用 docker 打包好了。

直接运行

1
2
3
4
5
6
7
8
9
// 1. clone项目
git clone https://github.com/LomotHo/bedrock-api.git && cd bedrock-api

// 2. 在bedrock-api内创建bedrock文件夹,解压服务端程序到bedrock文件夹,或者直接把旧的数据复制过来
mkdir bedrock && unzip bedrock-server-1.xx.xx.xx.zip

// 3.运行(要先安装nodejs)
npm i
node app.js

Docker 部署

1
2
3
docker run -d --restart=always --name=mcpe-api --net=host \
  -v /opt/mcpe-data:/server/bedrock \
  lomot/minecraft-bedrock:base-api

注意: 服务端数据文件夹/opt/mcpe-data 需要包括完整的服务器文件才能运行, 第一次配置建议从官方网站下载并解压Minecraft服务端下载

API 及其用法

GET /api/v1/sendcmd

  • 用法: GET www.xx.xx:3000/api/v1/sendcmd?cmd=xxxx ,
  • 示例:
  • list: GET www.xx.xx:3000/api/v1/sendcmd?cmd=list , (暂时不能返回数据)
  • op: GET www.xx.xx:3000/api/v1/sendcmd?cmd=op%20"lomot%20coyote" cmd 后面的参数需要编码,原命令为 op "lomot coyote"

bedrock-console

这个项目实现了一个网页控制台,部署完成后可以直接在网页链接到 MCPE 控制台,思路与前一个项目类似,借鉴了这个项目:https://github.com/robinp7720/Minecraft-Nodejs-live-web-console

直接运行

1
2
3
4
5
6
7
8
9
// 1. clone项目
git clone https://github.com/LomotHo/bedrock-console.git && cd bedrock-console

// 2. 创建bedrock文件夹,解压服务端程序到bedrock
mkdir bedrock && unzip bedrock-server-1.xx.xx.xx.zip

// 3.运行(要先安装nodejs)
npm i
node app.js

Docker 部署

待续

配置和使用

配置文件是config/index.js,当前可用项目:

  • localPort: 控制台网页端口
  • password: 控制台密码

默认登录页面为:http://www.xxx.com:3000/index.html