HeavenMS v083 搭建
这几天发现一个开源的冒险岛服务端仓库 https://github.com/ronancpl/HeavenMS,看着质量非常高。同时搜了一下,也有汉化的项目 https://gitee.com/sleepnap/heaven-ms-nap,还没有验证。
仓库目录下有 docker 部署脚本,一个 docker 运行 mysql,一个 docker 运行服务端。但我使用的是 windows 系统下的 docker,--network=host 模式看着好像没生效。自己又不想把原本的 windows 环境弄乱,试了一下把两者装在同一个 docker 内,并把相关端口映射到本机。
- 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/。
- root@df04824f94dd:/# ls mysql* -l
- -rw-r--r-- 1 root root 57672 Jan 5 2021 mysql-client_5.6.51-1debian9_amd64.deb
- -rw-r--r-- 1 root root 60766 Jan 5 2021 mysql-common_5.6.51-1debian9_amd64.deb
- -rw-r--r-- 1 root root 16958054 Jan 5 2021 mysql-community-server_5.6.51-1debian9_amd64.deb
可能其他版本也可以,待验证。
安装好后,启动 mysql 服务:
- sudo service mysql restart
登录 root 账号:
- mysql -u root -p
导入数据库:
- source /root/HeavenMS/sql/db_database.sql;
- source /root/HeavenMS/sql/db_drops.sql;
- source /root/HeavenMS/sql/db_shopupdate.sql;
在宿主机上可以下载 MySQL Workbench,连入验证 mysql 服务情况。当前是 root 用户连入,还是免密码的,会提示连入权限问题。使用如下命令可以解决:
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' IDENTIFIED BY '';
- FLUSH PRIVILEGES;
后续需要使用自定义用户和密码。
2. Java
Java 编译环境的安装就方便多了,可以直接 apt 安装:
- sudo apt install openjdk-8-jdk
3. 编译/运行
编译执行目录下的 posix-compile.sh。自己环境遇到编码问题,修改编译命令指定编码:
- javac -d $dist -cp $cores -encoding UTF-8 $(find $src -name "*.java")
运行之前修改一下目录下的 config.yaml 中的选项:
- diff --git a/config.yaml b/config.yaml
- index 548322f..1fe0db2 100644
- --- a/config.yaml
- +++ b/config.yaml
- @ -180,8 +180,8 @ server:
- COUPON_INTERVAL: 3600000 #60 minutes, 3600000.
- UPDATE_INTERVAL: 777 #Dictates the frequency on which the "centralized server time" is updated.
- - ENABLE_PIC: true #Pick true/false to enable or disable Pic. Delete character requires PIC available.
- - ENABLE_PIN: true #Pick true/false to enable or disable Pin.
- + ENABLE_PIC: false #Pick true/false to enable or disable Pic. Delete character requires PIC available.
- + ENABLE_PIN: false #Pick true/false to enable or disable Pin.
- 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.
- 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.
- @ -198,7 +198,7 @ server:
- LOGIN_ATTEMPT_DURATION: 120 #Period in seconds the login attempt remains registered on the system.
- #Ip Configuration
- - HOST: 127.0.0.1
- + HOST: 192.168.1.12
- LOCALSERVER: true
- 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
启动:
- Start-Process "C:\Users\Tim\Desktop\083cn\1280x720_cn_localhost.exe" -ArgumentList "192.168.1.12", "8484"