diff --git a/README.md b/README.md
index 13569d3..5b58a91 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
-mc-server-util 是一个集合多种服务器管理工具的项目,支持 windows/linux 并提供可被调用的接口。
+minecraft-server-installer 是一个自动化服务端安装工具。
-## 功能介绍
+## 前置需求
-请参考文档:https://actiniumcraft.github.io/mc-server-utils/#/README
+本脚本基于 Python3 开发。
-## 参与贡献
+目前暂不支持自动修改配置文件,安装完后需手动按需求修改.
-如果您有意参与贡献,可以通过这篇文档开始:https://actiniumcraft.github.io/mc-server-utils/#/contribute
\ No newline at end of file
+## 下载方法
+
+访问 [Release](https://github.com/ActiniumCraft/minecraft-server-installer/releases) 页面下载初始化安装脚本。
diff --git a/docs/.nojekyll b/docs/.nojekyll
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
deleted file mode 100644
index 865ea39..0000000
--- a/docs/_sidebar.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-- 快速开始
- - [项目介绍](intro.md)
- - [参与贡献](contributing.md)
- - [行为准则](code-of-conduct.md)
-
-- 服务器工具包
- - [服务端安装脚本](server-installer.md)
diff --git a/docs/code-of-conduct.md b/docs/code-of-conduct.md
deleted file mode 100644
index 7ad16a2..0000000
--- a/docs/code-of-conduct.md
+++ /dev/null
@@ -1,50 +0,0 @@
-## 我们的承诺
-
-为建设开放友好的环境,我们贡献者和维护者承诺:不论年龄、体型、身体健全与否、民族、性征、性别认同与表征、经验水平、教育程度、社会地位、国籍、相貌、种族、信仰、性取向,我们项目和社区的参与者皆免于骚扰。
-
-## 我们的准则
-
-有助于创造积极环境的行为包括但不限于:
-
-* 措辞友好且包容
-* 尊重不同的观点和经验
-* 耐心接受有益批评
-* 关注对社区最有利的事情
-* 与社区其他成员友善相处
-
-参与者不应采取的行为包括但不限于:
-
-* 发布与性有关的言论或图像、不受欢迎地献殷勤
-* 捣乱/煽动/造谣行为、侮辱/贬损的评论、人身及政治攻击
-* 公开或私下骚扰
-* 未经明确授权便发布他人的资料,如住址、电子邮箱等
-* 其他有理由认定为违反职业操守的不当行为
-
-## 我们的义务
-
-项目维护者有义务诠释何谓“妥当行为”,并妥善公正地纠正已发生的不当行为。
-
-项目维护者有权利和义务去删除、编辑、拒绝违背本行为标准的评论(comments)、提交(commits)、代码、wiki 编辑、问题(issues)等贡献;项目维护者可暂时或永久地封禁任何他们认为行为不当、威胁、冒犯、有害的参与者。
-
-## 适用范围
-
-本行为标准适用于本项目。当有人代表本项目或本社区时,本标准亦适用于此人所处的公共平台。
-
-代表本项目或本社区的情形包括但不限于:使用项目的官方电子邮件、通过官方媒体账号发布消息、作为指定代表参与在线或线下活动等。
-
-代表本项目的行为可由项目维护者进一步定义及解释。
-
-## 贯彻落实
-
-可以致信[2404919628@qq.com],向项目团队举报滥用、骚扰及不当行为。
-
-维护团队将审议并调查全部投诉,妥善地予以必要的回应。项目团队有义务保密举报者信息。具体执行方针或将另行发布。
-
-未切实遵守或执行本行为标准的项目维护人员,经项目负责人或其他成员决议,可能被暂时或永久地剥夺参与本项目的资格。
-
-## 来源
-
-本行为标准改编自[参与者公约][主页],版本 1.4
-可在此查阅:https://www.contributor-covenant.org/zh-cn/version/1/4/code-of-conduct.html
-
-[主页]: https://www.contributor-covenant.org
\ No newline at end of file
diff --git a/docs/contributing.md b/docs/contributing.md
deleted file mode 100644
index e3e6e66..0000000
--- a/docs/contributing.md
+++ /dev/null
@@ -1,16 +0,0 @@
-如果您有兴趣为这个项目做贡献,那么这将会是最好的起点。 另外,请注意,该项目是开源的,并根据 [GNU General Public License v3.0](https://github.com/ActiniumCraft/mc-server-utils/blob/main/LICENSE) 获得许可。
-
-## 项目结构
-
-该项目主要由托管在 GitHub 上的一个储存库组成。大部分工具使用 Python3 编写。
-
-了解 Python:https://www.python.org/about/
-
-## 获得代码
-
-我们推荐使用 Git 来管理 Fork,要克隆主储存库,仅需在终端运行:
-
-```bash & sh
-git clone https://github.com/ActiniumCraft/mc-server-utils.git
-```
-
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index c4a8c93..0000000
--- a/docs/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
- MC 服务端工具包
-
-
-
-
-
-
- 请稍等。。。
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/intro.md b/docs/intro.md
deleted file mode 100644
index 3f364bb..0000000
--- a/docs/intro.md
+++ /dev/null
@@ -1 +0,0 @@
-欢迎使用 mc-server-utils 的官方文档。该项目专注于制作对 Windows 以及 Linux 平台兼容的 MC 服务器管理工具。在这里,你可以找到有关工具的介绍,使用说明,接口的用法,以及其他的一些有用的信息。
\ No newline at end of file
diff --git a/docs/server-installer.md b/docs/server-installer.md
deleted file mode 100644
index 600cbf1..0000000
--- a/docs/server-installer.md
+++ /dev/null
@@ -1,23 +0,0 @@
-## 前置需求
-
-Windows 和 Linux 需要 Python3 支持
-
-目前暂不支持自动修改配置文件,安装完后需手动按需求修改
-
-## 安装方法
-
-**Windows 系统**
-
-```bash
-wget https://github.com/ActiniumCraft/mc-server-utils/raw/main/server-installer/windows_install.py
-```
-
-或在 GitHub 上直接下载源码,完成后双击运行即可
-
-**Ubuntu & Centos 系统**
-
-```sh
-wget https://github.com/ActiniumCraft/mc-server-utils/raw/main/server-installer/ubuntu_install.py
-```
-
-之后输入 `python3 ubuntu_install.py` 运行即可
diff --git a/server-installer/windows_install.py b/minecraft_server_installer.py
similarity index 77%
rename from server-installer/windows_install.py
rename to minecraft_server_installer.py
index 02c2107..6005d18 100644
--- a/server-installer/windows_install.py
+++ b/minecraft_server_installer.py
@@ -1,18 +1,13 @@
-# -*- coding: utf-8 -*-
-import os
import abc
+import os
+import platform
-try:
- import wget
- print('已检测到 wget 模块 ok')
- import requests
- print('已检测到 requests 模块 ok')
-except ImportError:
- print('检测到依赖库缺失,现在开始安装......')
- os.system('pip install wget')
- os.system('pip install requests')
- import wget
- import requests
+import requests
+import wget
+
+PLATFORM = platform.system()
+PYTHON_COMMAND = 'python' if PLATFORM == 'Windows' else 'python3'
+PIP_COMMAND = 'pip' if PLATFORM == 'Windows' else 'pip3'
class ServerInstaller(object):
@@ -24,16 +19,6 @@ class ServerInstaller(object):
def install(self):
"""Install new server.
- Returns: None.
-
- """
- pass
-
- def check(self):
- """Check server install status.
-
- Returns: The return value. Boolean, True or False.
-
"""
pass
@@ -42,6 +27,7 @@ class Vanilla(ServerInstaller):
"""Vanilla factory.
"""
+
def __init__(self):
self.version_manifest = {}
self.version_json = {}
@@ -67,8 +53,8 @@ def install(self, version='latest'):
with open('vanilla_start.bat', 'w', encoding='utf-8') as f:
f.write('java -Xms1024M -Xmx2048M -jar server.jar nogui')
- def check(self):
- return os.path.exists('vanilla_start.bat')
+ with open('vanilla_start.sh', 'w', encoding='utf-8') as f:
+ f.write('java -Xms1024M -Xmx2048M -jar server.jar nogui')
class Fabric(ServerInstaller):
@@ -89,8 +75,8 @@ def install(self, version='latest'):
with open('fabric_start.bat', 'w', encoding='utf-8') as f:
f.write('java -Xms1024M -Xmx2048M -jar fabric-server-launch.jar nogui')
- def check(self):
- return os.path.exists('fabric_start.bat')
+ with open('fabric_start.sh', 'w', encoding='utf-8') as f:
+ f.write('java -Xms1024M -Xmx2048M -jar fabric-server-launch.jar nogui')
class MCDR(ServerInstaller):
@@ -99,14 +85,11 @@ class MCDR(ServerInstaller):
"""
def install(self):
- os.system('pip install mcdreforged')
- os.system('python -m mcdreforged')
+ os.system('{} install mcdreforged'.format(PIP_COMMAND))
+ os.system('{} -m mcdreforged'.format(PYTHON_COMMAND))
with open('MCDR_start.bat', 'w', encoding='utf-8') as f:
- f.write('python -m mcdreforged')
-
- def check(self):
- return os.path.exists('MCDR_start.bat')
+ f.write('{} -m mcdreforged'.format(PYTHON_COMMAND))
def replace_file_line(file, old_line, new_line):
@@ -122,18 +105,18 @@ def replace_file_line(file, old_line, new_line):
"""
file_data = ''
- with open(file, 'r', encoding='utf-8') as f: # 读取文件并获得替换文本
+ with open(file, 'r', encoding='utf-8') as f:
for line in f:
if old_line in line:
line = line.replace(old_line, new_line)
file_data = file_data + line
- with open(file, 'w', encoding='utf-8') as f: # 写入替换文本至文件
+ with open(file, 'w', encoding='utf-8') as f:
f.write(file_data)
if __name__ == '__main__':
- os.system('python -m pip install --upgrade pip')
+ os.system('{} -m {} install --upgrade {}'.format(PYTHON_COMMAND, PIP_COMMAND, PIP_COMMAND))
print('是否选择安装 MCDR [y/N]')
select_mcdr = str(input('输入: ') or 'n').lower()
@@ -141,6 +124,7 @@ def replace_file_line(file, old_line, new_line):
if select_mcdr not in {'y', 'yes', 'n', 'no'}:
raise Exception('请选择 y 或 n')
if select_mcdr in {'y', 'yes'}:
+ print('安装正在进行中,请稍等。。。')
MCDR().install()
os.chdir('./server/')
@@ -151,8 +135,10 @@ def replace_file_line(file, old_line, new_line):
select_version = str(input('输入: ') or 'latest').lower()
if select_core in {'vanilla', 'v'}:
+ print('安装正在进行中,请稍等。。。')
Vanilla().install(version=select_version)
elif select_core in {'fabric', 'f'}:
+ print('安装正在进行中,请稍等。。。')
Fabric().install(version=select_version)
else:
raise Exception('错误的内核')
diff --git a/server-installer/ubuntu_install.py b/server-installer/ubuntu_install.py
deleted file mode 100644
index 071c604..0000000
--- a/server-installer/ubuntu_install.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# -*- coding: utf-8 -*-
-import os
-import abc
-
-try:
- import wget
- print('已检测到 wget 模块 ok')
- import requests
- print('已检测到 requests 模块 ok')
-except ImportError:
- print('检测到依赖库缺失,现在开始安装......')
- os.system('pip install wget')
- os.system('pip install requests')
- import wget
- import requests
-
-
-class ServerInstaller(object):
- """Server factory.
-
- """
- @abc.abstractmethod
- def install(self):
- """Install new server.
-
- Returns: None.
-
- """
- pass
-
- def check(self):
- """Check server install status.
-
- Returns: The return value. Boolean, True or False.
-
- """
- pass
-
-
-class Vanilla(ServerInstaller):
- """Vanilla factory.
-
- """
- def __init__(self):
- self.version_manifest = {}
- self.version_json = {}
- self.download_link = ''
-
- def install(self, version='latest'):
- # 获得 version_manifest,对其遍历查找 version 对应的 version_json,并在 version_json 获取下载链接。
- self.version_manifest = requests.get('https://launchermeta.mojang.com/mc/game/version_manifest.json').json()
- if version == 'latest':
- version = self.version_manifest['latest']['release']
- for self_item in self.version_manifest['versions']:
- if not self_item['id'] == version:
- continue
- self.version_json = requests.get(self_item['url']).json()
- if self.version_json == {}:
- raise Exception('错误的版本号')
- self.download_link = self.version_json['downloads']['server']['url']
-
- wget.download(url=self.download_link, out='server.jar')
- os.system('java -Xms1024M -Xmx2048M -jar server.jar nogui')
- replace_file_line('eula.txt', 'eula=false', 'eula=true')
-
- with open('vanilla_start.sh', 'w', encoding='utf-8') as f:
- f.write('java -Xms1024M -Xmx2048M -jar server.jar nogui')
-
- os.system('chmod a+x vanilla_start.sh')
-
- def check(self):
- return os.path.exists('vanilla_start.sh')
-
-
-class Fabric(ServerInstaller):
- """Fabric factory.
-
- """
- def install(self, version='latest'):
- wget.download(url='https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.7.3/fabric-installer-0.7.3.jar',
- out='fabric-installer-0.7.3.jar')
- if version == 'latest':
- os.system('java -jar fabric-installer-0.7.3.jar server -downloadMinecraft')
- else:
- os.system('java -jar fabric-installer-0.7.3.jar server -downloadMinecraft -mcversion {}'.format(version))
- replace_file_line('eula.txt', 'eula=false', 'eula=true')
-
- with open('fabric_start.sh', 'w', encoding='utf-8') as f:
- f.write('java -Xms1024M -Xmx2048M -jar fabric-server-launch.jar nogui')
-
- os.system('chmod a+x fabric_start.sh')
-
- def check(self):
- return os.path.exists('fabric_start.sh')
-
-
-class MCDR(ServerInstaller):
- """MCDR factory
-
- """
- def install(self):
- os.system('pip3 install mcdreforged')
- os.system('python3 -m mcdreforged')
-
- with open('MCDR_start.sh', 'w', encoding='utf-8') as f:
- f.write('python3 -m mcdreforged')
-
- os.system('chmod a+x MCDR_start.sh')
-
- def check(self):
- return os.path.exists('MCDR_start.sh')
-
-
-def replace_file_line(file, old_line, new_line):
- """Replacing file line.
-
- Args:
- file: File to replace.
- old_line: Old data string.
- new_line: New data string.
-
- Returns: None.
-
- """
- file_data = ''
-
- with open(file, 'r', encoding='utf-8') as f: # 读取文件并获得替换文本
- for line in f:
- if old_line in line:
- line = line.replace(old_line, new_line)
- file_data = file_data + line
-
- with open(file, 'w', encoding='utf-8') as f: # 写入替换文本至文件
- f.write(file_data)
-
-
-if __name__ == '__main__':
- os.system('python3 -m pip3 install --upgrade pip3')
-
- print('是否选择安装 MCDR [y/N]')
- select_mcdr = str(input('输入: ') or 'n').lower()
-
- if select_mcdr not in {'y', 'yes', 'n', 'no'}:
- raise Exception('请选择 y 或 n')
- if select_mcdr in {'y', 'yes'}:
- MCDR().install()
- os.chdir('./server/')
-
- print('选择服务器内核 [*Vanilla, Fabric]')
- select_core = str(input('输入: ') or 'vanilla').lower()
-
- print('请选择服务器版本 [*Latest/自定义版本号]')
- select_version = str(input('输入: ') or 'latest').lower()
-
- if select_core in {'vanilla', 'v'}:
- Vanilla().install(version=select_version)
- elif select_core in {'fabric', 'f'}:
- Fabric().install(version=select_version)
- else:
- raise Exception('错误的内核')