如何搭建自己的Minecraft皮肤站并实现外置登录?
Mintimate
2021年09月26日 18:25

自己搭建的服务器,关闭正版验证,没了用户验证,不显示皮肤,小伙伴还频繁换“马甲”,甚至有陌生人闯入?开启正版验证,小伙伴又没买国际版账号?试试外置登录吧!

什么是“外置登录”?

-> 外置登录,就是相比Minecraft提供的内置登录,是由我们或者第三方提供的登录。同时,外置登录一般还会有自己的皮肤站,也能正常使用皮肤嗷。

接下来,就教大家怎么搭建自己的Minecraft皮肤站,并实现外置登录。注意:

  • 本次教程,适用于Minecraft Java版本服务器。对类型没有要求(也就是支持Forge)

  • 受限于篇幅,B站图文只演示核心步骤。完整步骤(如:网站环境搭建、依赖编译)请看博客嗷。

本教程同步访问在Mintimate's Blog:

  • https://www.mintimate.cn/2021/09/26/MinecraftBlessing


皮肤站

本文使用blessing-skin-server作为皮肤站,这个其实是LittleSkin的开源社区版本。实现效果:

用户角色管理

用户皮肤管理

你还可以安装很多插件,实现:邀请码注册、外置登录等等功能:

丰富的插件

外置登录

基于前文的皮肤站,我们使用Yggdrasil API实现外部登录

外置登录选项

外置登录角色

最终效果

最后实现的效果是:搭建一个网站,用户可以注册账号,并登录系统进行皮肤的上传、下载以及激活皮肤为角色皮肤。 皮肤站和外置登录配合,就可以达到和正版登录一样的效果:

  • 允许用户注册账号

  • 允许用户上传和自定义自己游戏皮肤

并且方便服务器管理者规范玩家行为(嘿嘿,防止用户频繁换“马甲”,或者禁止某个玩家登录)

准备工具

准备工具很简单:

  • LEMP环境:

    • Linux服务器:Debian、CentOS都可以。极其不推荐使用Windows Server。

    • Nginx/Apache:推荐使用Nginx环境

    • MySQL/MariaDB:可以使用Linux服务器自己搭建,也可以直接买现成的。

    • PHP:PHP版本推荐7以上,本文使用PHP7.4

  • Minecraft服务器端:如果没有搭建MC服务器,参考:零基础搭建MC服务器

为了照顾小白用户,本文提供两个思路搭建:

  • 宝塔搭建【推荐小白】:可视化部署LEMP环境,并可视化部署皮肤站和外置登录

  • 编译安装【推荐老手】:编译安装LEMP环境,并命令后操作部署皮肤站和外置登录

部署网站

Opt1:宝塔面板

如果你是宝塔部署的LEMP环境:

宝塔部署LEMP环境

那么需要注意,到宝塔的软件商店内激活函数:

  • symlink

  • readlink

  • putenv

  • realpath

删除->激活函数

并安装fileinfo的扩展(如果你的服务器内存小于2G安装不上,可以去添加Swap):

安装fileinfo

之后,到网站选项卡内,添加网站:

添加网站

并上传BlessingSkin(https://github.com/bs-community/blessing-skin-server/releases)的发行版本到网站内解压:

解压后效果

之后,设置伪静和主页即可:

设置伪静和root

代码块
Nginx
自动换行
复制代码
location / {
      try_files $uri $uri/ /index.php?$query_string;
}
复制成功

剩下的,可以看看初始化部分嗷。

Opt2:编译部署

这里的编译部署,其实主要是编译Nginx和PHP以及MariaDB/MySQL。其实,我之前的视频基本有演示,比如:树莓派上Linux编译安装PHP、Nginx并搭建_h5ai​。

但是,需要注意⚠️:

  • BlessingSkin需要PHP的gd依赖,而gd里需要freetype的支持,需要我们提前编译freetype并添加到pkg变量内。

参考的的PHP编译参数:

代码块
Nginx
自动换行
复制代码
./configure \
--prefix=/usr/local/php7 \
--with-curl \
--with-mysqli \
--with-openssl \
--with-pdo-mysql \
--with-jpeg \
--enable-gd \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-bcmath \
--enable-xml \
--with-zip \
--enable-mbstring \
--enable-sockets  \
--with-zlib   \
--enable-fileinfo \
--enable-exif \
--with-freetype
复制成功

PHP编译参数

最后,不要忘记设置Nginx:

代码块
Nginx
自动换行
复制代码
location / {
    index  index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$query_string;
}
复制成功

当然,还有root地址。这里就不演示了嗷(博客图文可以了解一下)。

初始化BlessingSkin

如果LEMP部署正常,BlessingSkin的包也正常,就可以初始化了。Terminal进入BlessingSkin的网站目录,执行(宝塔似乎不用执行初始化,挺奇怪的……):

代码块
Nginx
自动换行
复制代码
cp .env.example .env
/usr/local/php7/bin/php artisan key:generate
复制成功

之后,进入网站,即可访问:

访问网站

这个时候,需要填个MySQL或者MariaDB了,宝塔用户可以到数据库选项卡内创建,编译用户……既然都会编译了,数据库创建应该不用我说吧……

初始化成功,我们登入网站,就可以准备外置登录了。

外置登录

使用外置登录,服务器的online-mode记得设置为true哦~

接下来,我们使用Yggdrasil API来外置登录。

1. 皮肤站上操作

首先,我们需要配置我们的皮肤站(其实,说是皮肤站,倒像是个百宝箱),之后选择管理面板:

管理面板

之后,选择插件市场:

安装插件

安装好插件后,我们进入,勾选插件,之后,会出现小齿轮⚙️,我们 点击就可以进入这个插件的管理面板,记住API Root中的地址,这个就是我们外置登录的验证地址:

外置登录地址

2. 服务器上操作

其次,我们需要设置我们的 Java Minecraft服务器的启动命令,先下载最新版本的,下载地址:

  • authlib-injector:https://authlib-injector.yushi.moe/

authlib-injector下载

之后,我们回到我们Minecraft的启动界面,如果你之前的Minecraft服务器启动命令是:

代码块
clike
自动换行
复制代码
java -jar -Xms1024M -Xmx5120M LoliServer-1.16.5-89-server.jar
复制成功

那么,加上验证就是:

代码块
clike
自动换行
复制代码
java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector-1.1.39.jar=http://URL LoliServer-1.16.5-89-server.jar
复制成功

其中:

  • authlib-injector-1.1.39.jar:这个需要替换为你刚刚下载的authlib-injector版本。

  • http://URL:为上文`Yggdrasil API`地址。

服务器也是可以正常启动的。

3. 客户端上操作

最后,我们到客户单上设置,以HCML为例,我们打开HMCL后,在登录里选择外置登录:

外置登录

添加的内容:

  • 验证服务器:我们的Yggdrasil API地址

  • 用户名:我们自己皮肤站上注册的用户

  • 密码:我们自己皮肤站上……

这样,就可以看见自己的角色了(皮肤站上,事先要创建一个角色嗷):

添加成功

这样,我们就可以类似正版登录一样,进入我们刚刚的服务器了嗷~~

END

外置登录和皮肤站就是这么简单,有什么问题,欢迎评论区留言嗷。

Tips:如果代码不方便复制,或者想获得更详细的步骤,可以访问博客嗷:

  • https://www.mintimate.cn/2021/09/26/MinecraftBlessing