======服务器======
服务器主要有两种不同的“架构”,分别为官方版和bukkit(spigot)。每种架构都有win和linux版
架构主要影响模组、插件和工具套组的安装方式。
bukkit俗称水桶服,spigot是其的一个分支。因此spigot可以使用bukkit的模组
官方架构的安装方式见[[https://minecraft.fandom.com/zh/wiki/%E6%95%99%E7%A8%8B/%E6%9E%B6%E8%AE%BE%E6%9C%8D%E5%8A%A1%E5%99%A8|中文fandom wiki]]
下文基于**spigot架构**
[[https://dev.bukkit.org/bukkit-plugins|bukkit模组中心]]里有各种插件的说明和下载,注意观察是否和spigot兼容
=====Windows=====
====Spigot的build步骤====
spigot官网有详细的说明。首先下载编译好的buildtools把它放进一个单独的文件夹,在文件夹中新建''build.bat'',内容如下,其中--rev后跟游戏版本。
java -jar BuildTools.jar --rev 1.18.2
先不急运行该脚本,若1.8.x≤游戏版本≤1.16.x,则直接运行,若游戏版本≥1.18.x,则先安装[[https://docs.microsoft.com/zh-cn/java/openjdk/download|64位的java17]]再运行。一旦安装了java17,HMCL还是可以正常运行,但是再装1.8~1.16之间的服务器就会出错
运行脚本后,它会先安装portable版本的git,然后从spigot旗下的git存储库下载源码进行编译。该步骤网速不稳定,会在某些下载步骤超时导致失败,国内用户不要使用梯子,多试几次就好了
====Spigot的start步骤====
安装完成后,文件夹中会出现spigot-1.18.2.jar,在文件夹中新建''start.bat'',内容如下
java -Xms1024M -Xmx2048M -jar spigot-1.18.2.jar
''-Xms''指定的是服务器启动时使用的内存量,''-Xmx''指定的是服务器最大可以使用的内存量。 实测证明上述值几乎正好达到最低配。若启动游戏时出现类似''java.lang.outof memory error''这样的内存问题,则需加大''-Xmx''
运行完会看到目录中有个 plugins 文件夹,然后关掉服务器(命令行中输入 stop)
====Mod: 批量操作工具worldedit====
下载[[https://dev.bukkit.org/projects/worldedit/files|worldedit]]
直接放到plugins文件夹里。需要让服务器先读取一下,以生成配置文件,所以,**再次运行服务器**。运行后每个工具都会在 plugins 里生成一个文件夹
====worldedit必要配置====
**config.yml**
command-block-support: true
====进游戏测试====
双击''start.bat''启动服务器,然后启动游戏,进去后选择多人游戏。若列表中无服务器,则点添加服务器,填入''localhost''
**worldedit**
装备木斧对两个不同位置的方块分别点击左键,输入''//set minecraft:SANDSTONE''测试该立方体范围内方块是否变为沙石
====编译后备份====
为了可以快速建立多个不同的服务器世界,可在编译完成并设置各种配置之后,在服务器目录下新建''backup.bat'',写入如下命令,用于打包备份整个文件夹
7z a -t7z -ms=on -r- -sccUTF-8 "../spigot-server.7z" * "-x!BuildData" "-x!buildTools.log.txt" "-x!buildTools.jar" "-x!portableGit*" "-x!usercache.json" "-x!apache-maven-*" "-x!Bukkit" "-x!CraftBukkit" "-x!logs" "-x!world*" "-x!Spigot\.git" "-x!build.bat" "-xr!__pycache__"
备份的''spigot-server.7z''将生成在服务器目录的父目录下。之后可以删除服务器目录,然后原地解压该压缩包以去除多余的文件
=====Linux=====
官方架构中itzg大神的[[https://github.com/itzg/docker-minecraft-server|docker版]]最好用
[[https://hub.docker.com/r/cmunroe/spigot|cmunroe的三合一docker版]]支持除了官方之外的三种架构,可以指定镜像的mc版本,支持在docker-compose.yml中指定server.properties中的选项,详见其[[https://gitlab.com/cmunroe/docker-bukkit|gitlab项目]]。本项目采用其spigot镜像
在本项目中,需要使用docker-compose的network功能为spigot容器和python容器建立目录通信
======未完待续======
worldedit用法另开一篇文章说明
linux的详细教程和代码以后补充