搭建自己的Minecraft皮肤站并实现外置登录

AMDRadeonM470X 2022-12-4 103 12/4

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

什么是“外置登录”?

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

皮肤站


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

搭建自己的Minecraft皮肤站并实现外置登录

用户角色管理

搭建自己的Minecraft皮肤站并实现外置登录

用户皮肤管理

 

你还可以安装很多插件,实现:邀请码注册、外置登录等等功能:搭建自己的Minecraft皮肤站并实现外置登录

外置登录


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

搭建自己的Minecraft皮肤站并实现外置登录

最终效果


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

  • 允许用户注册账号
  • 允许用户上传和自定义自己游戏皮肤
  • 并且方便服务器管理者规范玩家行为(嘿嘿,防止用户频繁换“马甲”,或者禁止某个玩家登录)

准备工具


LEMP环境:

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

Nginx/Apache:推荐使用Nginx环境

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

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

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

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

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

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

部署网站


Opt1:宝塔面板

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

搭建自己的Minecraft皮肤站并实现外置登录

宝塔部署LEMP环境

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

  • symlink
  • readlink
  • putenv
  • realpath

搭建自己的Minecraft皮肤站并实现外置登录

删除->激活函数

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

搭建自己的Minecraft皮肤站并实现外置登录

安装fileinfo

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

搭建自己的Minecraft皮肤站并实现外置登录

添加网站

 

并上传BlessingSkin的发行版本到网站内解压:

搭建自己的Minecraft皮肤站并实现外置登录

解压后效果

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

搭建自己的Minecraft皮肤站并实现外置登录

设置伪静和root

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编译参数:

./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

 

搭建自己的Minecraft皮肤站并实现外置登录

PHP编译参数

最后,不要忘记设置Nginx:

location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}

 

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

初始化BlessingSkin


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

cp .env.example .env
/usr/local/php7/bin/php artisan key:generate

 

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

搭建自己的Minecraft皮肤站并实现外置登录

访问网站

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

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

外置登录


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

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

1. 皮肤站上操作

首先,我们需要配置我们的皮肤站,之后选择管理面板:

搭建自己的Minecraft皮肤站并实现外置登录

管理面板

之后,选择插件市场

搭建自己的Minecraft皮肤站并实现外置登录

安装插件

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

搭建自己的Minecraft皮肤站并实现外置登录

外置登录地址

2. 服务器上操作

其次,我们需要设置我们的 Java Minecraft服务器的启动命令,先下载最新版本的authlib-injector.jar

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

java -jar -Xms1024M -Xmx5120M LoliServer-1.16.5-89-server.jar

那么,加上authlib-injector验证就是:

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后,在登录里选择外置登录:

搭建自己的Minecraft皮肤站并实现外置登录

外置登录

添加的内容:

  • 验证服务器:我们的Yggdrasil API地址
  • 用户名:我们自己皮肤站上注册的用户
  • 密码:我们自己皮肤站上……

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

搭建自己的Minecraft皮肤站并实现外置登录

添加成功

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

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

- THE END -

AMDRadeonM470X

12月30日16:20

最后修改:2022年12月30日
0

共有 0 条评论