HeavenMS v083 搭建

这几天发现一个开源的冒险岛服务端仓库 https://github.com/ronancpl/HeavenMS,看着质量非常高。同时搜了一下,也有汉化的项目 https://gitee.com/sleepnap/heaven-ms-nap,还没有验证。

仓库目录下有 docker 部署脚本,一个 docker 运行 mysql,一个 docker 运行服务端。但我使用的是 windows 系统下的 docker,--network=host 模式看着好像没生效。自己又不想把原本的 windows 环境弄乱,试了一下把两者装在同一个 docker 内,并把相关端口映射到本机。

  1. docker run --hostname=df04824f94dd --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --volume=/e/linux/HeavenMS:/mnt --network=bridge -p 3306:3306 -p 7575:7575 -p 7576:7576 -p 7577:7577 -p 8484:8484 --restart=no --runtime=runc -t -d ubuntu:16.04

1. mysql

首先安装 mysql,docker 里写的使用 5.6 版本,但是没有相关 apt 源里有。可以在此处下载 deb 包安装:https://downloads.mysql.com/archives/community/

  1. root@df04824f94dd:/# ls mysql* -l
  2. -rw-r--r-- 1 root root    57672 Jan  5  2021 mysql-client_5.6.51-1debian9_amd64.deb
  3. -rw-r--r-- 1 root root    60766 Jan  5  2021 mysql-common_5.6.51-1debian9_amd64.deb
  4. -rw-r--r-- 1 root root 16958054 Jan  5  2021 mysql-community-server_5.6.51-1debian9_amd64.deb

可能其他版本也可以,待验证。

安装好后,启动 mysql 服务:

  1. sudo service mysql restart

登录 root 账号:

  1. mysql -u root -p

导入数据库:

  1. source /root/HeavenMS/sql/db_database.sql;
  2. source /root/HeavenMS/sql/db_drops.sql;
  3. source /root/HeavenMS/sql/db_shopupdate.sql;

在宿主机上可以下载 MySQL Workbench,连入验证 mysql 服务情况。当前是 root 用户连入,还是免密码的,会提示连入权限问题。使用如下命令可以解决:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' IDENTIFIED BY '';
  2. FLUSH PRIVILEGES;

后续需要使用自定义用户和密码。

2. Java

Java 编译环境的安装就方便多了,可以直接 apt 安装:

  1. sudo apt install openjdk-8-jdk

3. 编译/运行

编译执行目录下的 posix-compile.sh。自己环境遇到编码问题,修改编译命令指定编码:

  1. javac -d $dist -cp $cores -encoding UTF-8 $(find $src -name "*.java")

运行之前修改一下目录下的 config.yaml 中的选项:

  1. diff --git a/config.yaml b/config.yaml
  2. index 548322f..1fe0db2 100644
  3. --- a/config.yaml
  4. +++ b/config.yaml
  5. @ -180,8 +180,8 @ server:
  6.      COUPON_INTERVAL: 3600000            #60 minutes, 3600000.
  7.      UPDATE_INTERVAL: 777                #Dictates the frequency on which the "centralized server time" is updated.
  8.  
  9. -    ENABLE_PIC: true               #Pick true/false to enable or disable Pic. Delete character requires PIC available.
  10. -    ENABLE_PIN: true               #Pick true/false to enable or disable Pin.
  11. +    ENABLE_PIC: false               #Pick true/false to enable or disable Pic. Delete character requires PIC available.
  12. +    ENABLE_PIN: false               #Pick true/false to enable or disable Pin.
  13.  
  14.      BYPASS_PIC_EXPIRATION: 20           #Enables PIC bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable.
  15.      BYPASS_PIN_EXPIRATION: 15           #Enables PIN bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable.
  16. @ -198,7 +198,7 @ server:
  17.      LOGIN_ATTEMPT_DURATION: 120         #Period in seconds the login attempt remains registered on the system.
  18.  
  19.      #Ip Configuration
  20. -    HOST: 127.0.0.1
  21. +    HOST: 192.168.1.12
  22.      LOCALSERVER: true
  23.      GMSERVER: false

ENABLE_PIC 和 ENABLE_PIN 是登陆时的验证手段,太繁琐了,修改设置为 false。HOST 设置为宿主机 ip,要不角色登录不了。

HOST 需要设置为宿主机 ip,要不角色登录不了。

4. 客户端

HeavenMS 对应的原版客户端没有找到链接,可以使用 HeavenMS-NapMS 仓库下的客户端:

https://pan.baidu.com/s/1GAgyysoRqKsfv-ODvnGkfA 提取码:ysn1

客户端会报毒,不放心放在 VMware 里执行,网络设置为桥接。

Windows 上可以用以下方式验证端口情况:

Get-NetTCPConnection -LocalPort 8484

Test-NetConnection -ComputerName localhost -Port 8484

启动:

  1. Start-Process "C:\Users\Tim\Desktop\083cn\1280x720_cn_localhost.exe" -ArgumentList "192.168.1.12", "8484"