Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件

Minecraft个人服务器搭建自己的皮肤站并实现外置登录更换自定义皮肤组件

大家好,我是艾西有不少小伙伴非常喜欢我的世界Minecraft游戏,今天小编跟大家分享下Minecraft个人服务器怎么设置皮肤站。

Minecraft皮肤站是什么?其实官网就有皮肤站,在正版用户选择正版的登录后,MC客户端就会到官方皮肤站内下载用户的皮肤。而外置登录,就是用户在没有正版账号的情况下,使用自己的账号验证,达到用户验证的目的。

(所有操作教程必须在服务器内操作实现!!!)

适用于:Java版本Minecraft:包括Spigot、官方版本Minecraft、Forge等。

皮肤:本次教程使用 blessing-skin-server作为皮肤站,也是LittleSkin的开源社区版本。

(本文中http、https、www、com等前缀后缀均以 “x”代替遵守平台规则)

实现效果:

用户角色皮肤管理


(选择皮肤激活)

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

外置登录:基于皮肤站使用Yggdrasil API实现外部登录

外置登录选项角色

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

允许用户注册账号

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

并且方便服务器管理者规范玩家行为(防止用户频繁换“马甲”)

准备工具

服务器一台拥有固定IP及稳定的网络环境,操作系统Debian、CentOS都可以。不推荐使用Windows Serve

Nginx/Apache:推荐使用Nginx环境

PHP:PHP版本推荐7以上(最新皮肤站需要PHP8)

Minecraft服务器端:如果没有搭建MC服务器可在小编主业搜我的世界查询搭建教程

服务器选择:根据自己个人的使用途径去选择适合自己的服务器,个人玩家云机器 4H8G。对游戏整体的画质以及操作流畅度有要求对外开放的建议I9系列物理服务器(独享资源)

服务器系统选择:Debian/Ubuntu

(因windows暂用资源会大些对服务器整体的性能不能发挥到极致)

重置服务器

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

如果不会操作宝塔的百度一下,宝塔搭建Ngiinx、PHP和MariaDB/MySQL很简单一键安装部署可视化搭建:

BlessingSkin需要启用一些PHP函数,但是宝塔面板默认是禁用的,需要在宝塔面板内删除选项:


需要启用的函数:symlink、readlink、putenv、Realpath 

安装扩展:fileinfo

搭建BlessingSkin

现在正式开始搭建,在宝塔的网站选项,新建一个网站:


域名:有域名解析到服务器填入你自己的域名即可;没有的话就填IP。

PHP版本:选择PHP7.4、8.x(6.0以上版本Blessing需要使用PHP8.x)

之后,进入网站根目录,下载并解压最新版本的BlessingSkin 上传到网站根目录

到网站设置内:追加:/public

添加伪静态:

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

上传到网站根目录之后,就可以访问网站了:



创建数据库:

刚刚有安装MySQL,这里添加一个MySQL数据库,数据库名称已经密码随自己设置,大家在设置的时候记得自己备注记下来

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

Nginx源码编译安装复杂一些,首先下载Nginx1.20.1的源码下载,下载到Nginx的/usr/local/src内,并解压进入:依次输入以下命令

cd /usr/local/src
wget 'xxxx://nginx.org/download/nginx-1.20.1.tar.gz'
tar -xf nginx-1.20.1.tar.gz
cd nginx-1.20.1 

编译环境:按需求需要SSL、gzip、正则库等依赖

开始安装一下依赖:(根据自己的服务器系统去选择以下命令输入)
sudo apt-get install build-essential(# 安装GCC)
sudo apt-get install libpcre3 libpcre3-dev(# 安装正则库)
sudo apt-get install zlib1g-dev(# 安装gzip lib)
sudo apt-get install openssl libssl-dev (# 支持OpenSSL)

示例的操作教程是安装的:sudo apt-get install openssl libssl-dev

预编译:首先,我们想要把Nginx以www:www用户运行,所以我这里创建一个www用户,附属于www用户组:(依次输入以下命令)

sudo useradd www (创建一个www用户)
sudo groupadd www(创建一个www用户组)
sudo usermod -a -G www www( www用户归属于www用户组)

之后,开始预编译:复制下方代码回车

/configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module

预编译完成,如果你并没有通过,记得重新配置依赖。

开始编译和安装:输入以下命令

make -j32 (根据服务器核心数填写J后面数值,例服务器是32核,所以-j32)
make install (编译完成,进行安装)

注册服务:如果你是按照我的操作步骤进行编译操作的

那么需要创建一个日志目录:输入以下命令

sudo mkdir /var/cache/nginx (# 创建日志目录)

为方便启动,注册服务为:输入以下命令

vim /usr/lib/systemd/system/nginx.service

添加内容:输入以下命令

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload

最后启动即可:依次输入以下命令

systemctl daemon-reload

systemctl start nginx.service

lsof -i:80

PHP安装编译:

PHP会比较麻烦,主要是依赖问题,根据Blessing Skin安装指南,我们需要PHP支持:

OpenSSL、PDO、Mbstring、Tokenizer、GD、XML、Ctype、JSON、fileinfo、zip

主要是GD模块,需要很多额外参数,尤其是freetype参数,所以这里编译需要注意。

下载PHP源码:下载PHP7.4的源码到/usr/local/src下:依次输入以下命令

cd /usr/local/src 

wget 'xxxxx://xxx.php.net/distributions/php-7.4.22.tar.gz'
tar -xf php-7.4.22.tar.gz

编译依赖 Debian/Ubuntu操作系统

需要支援Nginx和MariaDB/MySQL,同时支持gd等模块 依次输入以下命令:

sudo apt-get install pkg-config (# 安装pkg-config)
sudo apt-get install openssl libssl-dev (# OpenSSL的支持)
sudo apt-get install libsqlite3-dev  (# SQL支持)
sudo apt-get install zlib1g-dev (# zlib)
sudo apt-get install libcurl4-openssl-dev (# OpenSSL支持)
sudo apt-get install libpng-dev libjpeg-dev libonig-dev (# GD辅助依赖)

之后,编译安装:libxml2、freetype。
并把freetype编译安装地址下的lib/pkgconfig添加到pkg内,如:

#  Freetype
export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/

CentOS系统:
首先是编译安装oniguruma,并配置到pkg内,如:

# Freetype
export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig/

之后用软件包管理器安装:输入以下命令

sudo yum install libxml2 libxml2-devel (# XML 库)
sudo yum install pcre pcre-devel (# 正则库)
sudo yum install sqlite3-devel (# SQL 库)
sudo yum install libcurl-devel libpng-devel libjpeg-devel (#lib)
sudo yum install freetype-devel (# GD 依赖)

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

如果你并没有通过,记得重新配置依赖尤其是freetype和libxml2

全部没问题后开始编译和安装:输入以下命令

make -j32 (根据服务器核心数填写J后面数值,例服务器是32核,所以-j32)
make install (编译完成,进行安装)

注册服务

根据教程步骤操作的小伙伴需要PHP-FPM配置文件:输入命令

sudo mv/usr/local/php7/etc/php-fpm.conf.default/usr/local/php7/etc/php-fpm.conf

sudo mv/usr/local/php7/etc/php-fpm.d/xxx.conf.default/usr/local/php7/etc/php-fpm.d/www.conf  

注册服务为:

sudo vim /usr/lib/systemd/system/php-fpm.service

添加内容:

[Unit]
Description=php-fpm
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/php7/sbin/php-fpm
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

最后启动即可:输入一下代码

systemctl daemon-reload

systemctl start php-fpm. service

lsof -i: 9000

搭建下载BlessingSkin

首先,创建一个目录,作为网站目录:

mkdir /www/BlessingSkin -pv
cd /www/BlessingSkin

之后,下载BlessingSkin的发行版本,选择安装6.0.0-beta.3:

Wget'xxxxx://github.xxx/bs-community/blessing-skin-server/releases/download/6.0.0-beta.3/blessing-skin-server-6.0.0-beta.3.zip'

解压即可:

unzip blessing-skin-server-6.0.0-beta.3.zip


安装官网要求需要重命名和初始化:输入以下代码

cp .env.example .env
/usr/local/php7/bin/php artisan key:generate (初始化)

配置Nginx

vim /usr/local/nginx/nginx.conf

查看:输入以下代码

user  www;
worker_processes  1;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;

    server {
        listen       80;
        server_name  localhost;
        root /www/BlessingSkin/public;


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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


        # php-fpm配置
        location ~ [^/]\.php(/|$){
            # try_files $uri =404;
            fastcgi_pass  127.0.0.1:9000;
            include fastcgi.conf;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        }
    }
}

3. 提权&重载配置

刚刚都是用root用户直接修改文件,现在把网站目录权限移交给www:

chown www:www /www -R

重载配置:systemctl reload nginx

浏览器访问网站,即可看到效果:

到这里我们就已经搭建好BlessingSkin,接下来就是初始化了,点击下一步,进入初始化参数界面:


输入完数据库,让你设置管理员 按步骤操作

进行访问即可使用皮肤站了

总结:编译安装大神适用的方式其实以上步骤操作就是自己安装编译Nginx和PHP在这个过程中全部部署好在服务器后下载BlessingSkin搭建一下即可。个人建议是用宝塔会方便快捷很多,喜欢大神操作的对于Nginx和php可自行深入研究

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

接下来,使用Yggdrasil API来外置登录皮肤站上操作

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

管理面板
进入管理面板后,选择插件市场有很多插件大家自行安装


安装好插件后进入插件管理,勾选插件:

会出现小齿轮点击就可以进入这个插件的管理面板:


记住API Root中的Yggdrasil API地址,这个就是外置登录的验证地址:

外置登录地址服务器上操作

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

下载地址:authlib-injector:xxxxx://authlib-injector.yushi.moe/

authlib-injector下载

之后回到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=xxxx://URL LoliServer-1.16.5-89-server.jar 

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

客户端上操作

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

最后应有的步骤流程:

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

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

3、密码:xxxxxxxxxx

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

到这里我们今天的分享就结束啦希望对有需要的小伙伴有帮助

我是驰网艾西 拥有一台服务器可以做很多有趣的事情!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/150108.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Overloud TH-U Complete for Mac:演绎您的音乐世界

Overloud TH-U Complete for Mac是一款功能强大的吉他谱曲软件,可以让您在Mac电脑上轻松进行吉他模拟、录音和混音等操作,创作属于自己的音乐作品。 Overloud TH-U Complete for Mac提供了丰富的吉他模拟和音效库,涵盖了多种吉他放大器、箱体…

腾讯云服务器简介_CVM优势_常见问题解答

腾讯云服务器CVM提供安全可靠的弹性计算服务,腾讯云明星级云服务器,弹性计算实时扩展或缩减计算资源,支持包年包月、按量计费和竞价实例计费模式,CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格,提供9个9的数…

1600*C. Good Subarrays(找规律前缀和)

Problem - 1398C - Codeforces 解析: 可以写出 sum[ j ] - sum[ i ] j - i 1,对其移项得 sum[ j ] - j sum[ i ] - (i - 1),问题转换为有多少个前缀和相等,则用map遍历统计一遍即可。 注意,当…

数据结构——AVL树(详解 + C++模拟实现)

文章目录 前言AVL树的概念AVL树节点的定义AVL树类框架AVL树的插入AVL树的旋转新节点插入较高子树的左侧 —— 左左: 右单旋新节点插入较高右子树的右侧——右右: 左单旋新节点插入较高左子树的右侧 —— 左右: 先左单旋然后再有单旋新节点插入较高右子树的左侧&…

【JavaEE重点知识归纳】第5节:方法

目录 一:方法的概念和使用 1.什么是方法 2.方法的定义 3.方法的调用过程 4.实参和形参的关系(重点) 二:方法重载 1.方法重载概念 2.方法签名 三:递归 1.递归的概念 2.递归执行的过程分析 一:方法的概念和使…

qt 5.15.2 安卓 macos

macos环境安卓配置 我的系统是monterey12.5.1 打开qt的配置界面 这里版本是java1.8,注意修改这个json文件,显示包内容 {"common": {"sdk_tools_url": {"linux": "https://dl.google.com/android/repository/comm…

1500*B. Zero Array(贪心数学找规律)

Problem - 1201B - Codeforces 解析&#xff1a; 因为每次减少2&#xff0c;如果总和为奇数肯定无法实现。 特例&#xff0c;如果某个数大于其他所有数的总和&#xff0c;同样无法实现。 其他均可实现。 #include<bits/stdc.h> using namespace std; #define int long l…

给 Linux0.11 添加网络通信功能 (Day1: 确认 qemu-system-i386 提供了虚拟网卡)

感觉单纯读闪客的文章&#xff0c;以及读 Linux0.11 源码&#xff0c;而不亲自动手做点什么&#xff0c;很难学会&#xff0c;还是得写代码 定个大目标&#xff1a;给 Linux0.11 添加网络通信功能 今日的小目标&#xff1a;先确认 qemu-system-i386 提供了网卡功能 here we …

C++入门-day03

引言&#xff1a;本节我们讲一下C中的引用 一、引用 先看一下下面这段代码&#xff1a; 在这段代码中。我们命名了两个变量&#xff0c;a和_a&#xff0c;其中_a就是a的引用 所谓引用就是a的“别名”&#xff0c;我们看一下这段代码的运行结果&#xff1a; 发现其地址一样&…

导出视频里的字幕

导出视频里的字幕 如何利用剪映快速提取并导出视频里的字幕 https://jingyan.baidu.com/article/c35dbcb0881b6fc817fcbcd2.html 如何快速提取视频中的字幕&#xff1f;给大家介绍一种简单高效又免费的提取方法。需要利用到“剪映”&#xff0c;以下是具体的操作步骤和指引&a…

计算机专业毕业设计项目推荐11-博客项目(Go+Vue+Mysql)

博客项目&#xff08;GoVueMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式&am…

二叉树--对称二叉树

小白同学对于二叉树还是不太了解的&#xff0c;作者推荐&#xff1a;二叉树的初步认识_加瓦不加班的博客-CSDN博客 对称二叉树-力扣 101 题 作者给的图&#xff1a; 代码&#xff1a; public boolean isSymmetric(TreeNode root) {//刚刚开始&#xff0c;传入的是顶堆的左、右…

时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测

时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测 目录 时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 ICEEMDAN-IMPA-GRU功率/风速预测 基于改进的自适应经验模态分解改进海洋捕食者算法门控循环单元时间序列预…

【python海洋专题十二】年平均的南海海表面温度图

【python海洋专题十二】年平均的南海海表面温度图 上期内容 南海水深图 本期内容 年平均的南海平面温度图 数据来源 NCEP/DOE Reanalysis II: NOAA Physical Sciences Laboratory NCEP/DOE Reanalysis II skt.skt.sfc.mon.ltm.nc Part01. 本文重点内容 前几期地形图&a…

【MATLAB源码-第43期】基于matlab的turbo码误码率仿真比较不同迭代次数,采用logmap/sova算法。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 Turbo码是一种前向纠错码 (Forward Error Correction, FEC)&#xff0c;在 1993 年由法国的两位研究员 Claude Berrou 和 Alain Glavieux 提出。这种编码技术以其接近 Shannon 极限的高性能而受到广泛关注。以下是关于 Turbo…

关联规则挖掘(下):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

【Kafka专题】Kafka收发消息核心参数详解

目录 前置知识课程内容一、从基础的客户端说起&#xff08;Java代码集成使用&#xff09;1.1 消息发送者源码示例1.2 消息消费者源码示例1.3 客户端使用小总结 *二、从客户端属性来梳理客户端工作机制*2.1 消费者分组消费机制2.2 生产者拦截器机制2.3 消息序列化机制2.4 消息分…

学习笔记|串口通信的基础知识|同步/异步|常见的串口软件的参数|STC32G单片机视频开发教程(冲哥)|第二十集:串口通信基础

目录 1.串口通信的基础知识串口通信(Serial Communication)同步/异步&#xff1f;全双工&#xff1f;常见的串口软件的参数 2.STC32的串口通信实现原理引脚选择模式选择 3.串口通信代码实现编写串口1通信程序测试 总结 1.串口通信的基础知识 百度百科&#xff1a;串口通信的概…

北大硕士7年嵌入式学习经验分享

阶段 1 大一到大三这个阶段我与大多数学生相同&#xff1a; 学习本专业知识&#xff08;EE专业&#xff09;&#xff0c;学习嵌入式软件开发需要的计算机课程&#xff08;汇编原理&#xff0c;计算机组成原理&#xff0c;操作系统&#xff0c;C语言等&#xff09;&#xff0c…