This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

@@ -0,0 +1,33 @@
# 开服工具2.0简介
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=64818855ef3bb6958baf37fc" width="800" height="600" allow="fullscreen"/>
开服工具2.0是基于网络游戏开服工具、Geyser等框架的基础上改进而来的一种开服技术。开发者可以使用此技术通过Java版Spigot服务端来架设我的世界中国版手机端服务器。
玩家可以利用网络游戏开服工具制作专用于我的世界中国版手机端的Mod来代替原来Java服的Forge Mod实现客户端UI、特效、音效、模型等效果。
## 架构
![](./images/frame.png)
框架图如上图所示其中Java服部分和传统的Spigot服务器一致主要包括以下一些服务器
- Spigot用来承载玩家游戏
- BC代理服
- DB数据库
剩余部分主要分为以下服务器:
- Geyser协议转换服务器用来将基岩版协议转换到Java版协议
- master网络游戏开服工具的master端主要用于控制整个集群开发者无需过多关注
- proxy代理服用来分发玩家连接可以理解为基岩版的BC服
- client中国版基岩版客户端
想要制作开服工具2.0的服务器,至少需要掌握以下开发技术:
- Spigot插件开发
- ModSDK模组制作
- 任意一款数据库的使用

View File

@@ -0,0 +1,89 @@
# 小小云的申请和连接
小小云是我的世界中国版免费发放给开发者用来制作手机版服务器玩法的一台云服务器。需要开发者提前在开发者平台上进行申请。
小小云使用的是Debian操作系统需要使用任意一款SSH连接工具进行连接。本教程中将会使用XShell和XFtp这两款软件介绍小小云的申请和使用的相关流程。
## 如何申请
### 生成RSA密钥对
提前安装好XShell打开XShell之后在菜单栏中找到工具选择**用户密钥管理者**。
![](./images/01.png)
在弹出的窗口中点击右侧生成按钮。
![](./images/02.png)
保持选项默认,点击下一步,直到出现下图的界面,填写密钥的名称。名称可以任意填写,仅作区分用途。
密码可以留空,也可以自行进行设置。**需要注意的是,如果忘记密码,没有任何渠道找回。**
![](./images/03.png)
点击下一步,在公钥处,点击保存为文件,并记住文件位置。随后点击完成。
![](./images/04.png)
### 提交申请
前往开发者平台,提交手机版网络游戏入驻申请。[地址](https://mcdev.webapp.163.com/#/pe-server/application/edit/new)
勾选Spigot集成支持并自行填写基本信息。
![](./images/05.png)
在下一步上传刚刚保存的公钥文件。正式服和测试服上传同一文件。
> 正式服和测试服可以使用不同的公钥。
>
> 在开发阶段,我们可以将正式服和测试服上传同一个公钥,在正式运营前,再重新生成并上传一个正式服所用的公钥。
![](./images/06.png)
## 如何连接
在申请到开发机之后可以进入开发者平台服务器使用情况处查看服务器IP地址等信息。
![](./images/07.png)
在开始连接服务器之前,首先需要访问白名单网页来获取临时白名单。
找到服务器地址后,打开浏览器,输入网址:**http://temp-white-list.mc.netease.com:9999/?machine=机器IP**,来获取白名单。
例如机器IP是42.186.1.1,那么网址就是: http://temp-white-list.mc.netease.com:9999/?machine=42.186.1.1。
正确访问后应该出现以下提示:
![](./images/08.png)
访问过后等待1分钟即可为当前IP添加白名单。
打开XShell点击 文件->新建。其中名称可以任意填写主机填写服务器IP地址或自己解析的域名端口号32200。
![](./images/09.png)
接下来切换到用户身份认证用户名填写fuzhu将方法的Password取消勾选并勾选Public Key点击右侧设置。
![](./images/10.png)
在弹出的窗口中选择之前创建的用户密钥,如有密码输入密码,点击确定。
![](./images/11.png)
并点击”新建会话属性“的确定按钮,并在会话管理器中选择刚刚创建的会话,双击即可连接。
连接成功如下图:
![](./images/12.png)
同时小小云内置了MySQLRedis和MongoDB。
默认数据库连接信息如下:
- MySQL 主机127.0.0.1 端口3306 用户名 minecraft 密码 minecraft 数据库 minecraft
- Redis 主机127.0.0.1 端口 6379 密码 mcnetgame
- Mongo 主机127.0.0.1 端口 27017 用户名 minecraft 密码 minecraft 数据库 minecraft
要使用前端工具例如Navicat来连接并管理数据库可以[点我参考](../../../30-网络服插件教程/1-准备知识/3-数据库的概念.md)。

View File

@@ -0,0 +1,84 @@
# Java服的搭建与部署
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=64818951c31a9c0f360dc572" width="800" height="600" allow="fullscreen"/>
本章将会介绍如何部署开服工具2.0架构中的Java服部分。部署服务器和传统的Java服类似唯一的区别就是
在制作和开发开服工具2.0的玩法时,必须将服务器运行在小小云中。
因此我们需要提前准备好BC端和对应的Spigot端将其上传到小小云的SFTP中。
## 准备BC端和Spigot端
首先下载对应的BC端和Spigot端jar文件。
部分需要下载的插件,可以自行提前下载 [链接](https://mc.163.com/dev/mcmanual/mc-dev/mcguide/27-手机网络游戏/课程10使用Spigot开服/99-下载内容.html?catalog=1)
ViaVersion [链接](https://www.spigotmc.org/resources/viaversion.19254/)
### BC
BC端下载前往 [CI构建站](https://ci.md-5.net/job/BungeeCord/) 下载最新的BungeeCord.jar并存放到一个空文件夹中。
打开cmd输入启动指令`java -jar BungeeCord.jar`,等待下载资源并生成默认配置文件。
![](./images/13.png)
随后进入`plugins`文件夹下载BungeeMaster插件并拖入`plugins`文件夹
随后新建BungeeMaster文件夹新建`config.yml`为BungeeMaster的配置文件。
填入以下内容
```yaml
master_port: 29001
server_id: 12001
```
填写要求
- server_id 取值区间在[12000, 14000)内并且保持单次部署唯一即可代表部署时的服务器id
- master_port端口范围要求[29000,31000),代表控制服端口
- **master_port**是指BC服监听Master服连接所用端口请注意与下述用于原生游戏的**query_port**区分,以免造成端口冲突
- 填写完毕后请记下相关参数后面需要在studio中填写
接下来需要配置BC端的配置文件`config.yml`其位置在与BungeeCord.jar的同级目录中。配置bc服监听的端口端口范围要求[29000,31000)
并且**关闭**正版验证`online_mode`
![](./images/14.png)
剩下bc配置部分和传统Java服类似BC配置参考文档[点我](https://www.spigotmc.org/wiki/bungeecord-configuration-guide/)。
### Spigot
开服工具2.0官方推荐使用Spigot1.12.2需要使用官方构建工具进行构建具体构建教程见SpigotMC官网。[下载链接](https://hub.spigotmc.org/jenkins/job/BuildTools/)
创建一个空文件夹并准备最新版Spigot的jar文件并在cmd输入`java -jar 文件名`,启动服务器。
- 同意EULA
- 下载SpigotMaster插件放入plugins文件夹
- 下载ViaVersion插件放入plugins文件夹
- 关闭正版验证
随后关闭服务器将两个文件夹打包通过SFTP上传到小小云。
根据官方开发规范要求,将文件解压到指定目录。
> - **BungeeCord服需要部署在以下路径**`~/bc/*/BungeeCord.jar`
>
> 例如:`~/bc/bc1/BungeeCord.jar`
>
> - **Spigot服需要部署在以下路径**`~/spigot/*/spigot-1.12.2.jar`
>
> 例如:`~/spigot/lobby1/spigot-1.12.2.jar`
## 启动服务器
使用screen命令新建一个名为bc的screen`screen -S bc`cd到BungeeCord.jar的目录后输入`java8 -jar BungeeCord.jar`启动服务器。Java命令行参数可以自行配置。
![](./images/15.png)
服务器启动成功后,按下组合键`Ctrl A D`退出screen再使用同样的操作新建一个screen来运行spigot端。
要切换到以前的screen输入`screen -rx screen名`即可。

View File

@@ -0,0 +1,28 @@
# 开发者工作台的使用
在完成了小小云上Java服的搭建与上传后我们需要继续前往开发者工作台完成开服工具2.0其他服务器的部署。
登陆开发者工作台之后,切换到基岩版服务器分类。点击新建,创建一个**空白Spigot服**。
![](./images/16.png)
在服务器配置窗口中确认机器列表中的机器为自己的开发机IP地址。
切换到游戏配置标签页中确认控制服、代理服、协议服、BC服都至少有一个没有的点击增加。除了BC服之外其他配置保持默认即可。
BC服的配置信息根据在上一节中BC服的相关配置填写如果填写时完全按照教程的步骤操作那么可以参考下方填写。
![](./images/17.png)
填写完成后点击完成,并部署。
![](./images/18.png)
出现下方提示时代表部署完成,就可以点击启动测试,进入游戏进行测试了。
![](./images/19.png)
配置正确的情况下可以正常进入Java服并且BC服的控制台可以看到BungeeMaster插件的输出。
![](./images/20.png)