家好,我是艾西有不少小伙伴非常喜歡我的世界Minecraft游戲,今天小編跟大家分享下Minecraft個人服務器怎么設置皮膚站。
Minecraft皮膚站是什么?其實官網(wǎng)就有皮膚站,在正版用戶選擇正版的登錄后,MC客戶端就會到官方皮膚站內下載用戶的皮膚。而外置登錄,就是用戶在沒有正版賬號的情況下,使用自己的賬號驗證,達到用戶驗證的目的。
(所有操作教程必須在服務器內操作實現(xiàn)!!!)
適用于:Java版本Minecraft:包括Spigot、官方版本Minecraft、Forge等。
皮膚:本次教程使用 blessing-skin-server作為皮膚站,也是LittleSkin的開源社區(qū)版本。
(本文中http、https、www、com等前綴后綴均以 “x”代替遵守平臺規(guī)則)
實現(xiàn)效果:
用戶角色皮膚管理
(選擇皮膚激活)
你還可以安裝很多插件,實現(xiàn)邀請碼注冊、外置登錄等等功能
外置登錄:基于皮膚站使用Yggdrasil API實現(xiàn)外部登錄
外置登錄選項角色
最終效果:實現(xiàn)的效果是搭建一個網(wǎng)站,用戶可以注冊賬號,并登錄系統(tǒng)進行皮膚的上傳、下載以及激活皮膚為角色皮膚。皮膚站和外置登錄配合達到和正版登錄一樣的效果:
允許用戶注冊賬號
允許用戶上傳和自定義自己游戲皮膚
并且方便服務器管理者規(guī)范玩家行為(防止用戶頻繁換“馬甲”)
準備工具
服務器一臺擁有固定IP及穩(wěn)定的網(wǎng)絡環(huán)境,操作系統(tǒng)Debian、CentOS都可以。不推薦使用Windows Serve
Nginx/Apache:推薦使用Nginx環(huán)境
PHP:PHP版本推薦7以上(最新皮膚站需要PHP8)
Minecraft服務器端:如果沒有搭建MC服務器可在小編主頁搜我的世界查詢搭建教程
服務器選擇:根據(jù)自己個人的使用途徑去選擇適合自己的服務器,個人玩家云機器 4H8G。對游戲整體的畫質以及操作流暢度有要求對外開放的建議I9系列物理服務器(獨享資源)
服務器系統(tǒng)選擇:Debian/Ubuntu
(因windows暫用資源會大些對服務器整體的性能不能發(fā)揮到極致)
重置服務器
方法一:寶塔搭建【推薦小白】:可視化部署LEMP環(huán)境,并可視化部署皮膚站和外置登錄操作。
如果不會操作寶塔的百度一下,寶塔搭建Ngiinx、PHP和MariaDB/MySQL很簡單一鍵安裝部署可視化搭建:
BlessingSkin需要啟用一些PHP函數(shù),但是寶塔面板默認是禁用的,需要在寶塔面板內刪除選項:
需要啟用的函數(shù):symlink、readlink、putenv、Realpath
安裝擴展:fileinfo
搭建BlessingSkin
現(xiàn)在正式開始搭建,在寶塔的網(wǎng)站選項,新建一個網(wǎng)站:
域名:有域名解析到服務器填入你自己的域名即可;沒有的話就填IP。
PHP版本:選擇PHP7.4、8.x(6.0以上版本Blessing需要使用PHP8.x)
之后,進入網(wǎng)站根目錄,下載并解壓最新版本的BlessingSkin 上傳到網(wǎng)站根目錄
到網(wǎng)站設置內:追加:/public
添加偽靜態(tài):
location / {
try_files $uri $uri/ /index.php?$query_string;
}
上傳到網(wǎng)站根目錄之后,就可以訪問網(wǎng)站了:
創(chuàng)建數(shù)據(jù)庫:
剛剛有安裝MySQL,這里添加一個MySQL數(shù)據(jù)庫,數(shù)據(jù)庫名稱已經(jīng)密碼隨自己設置,大家在設置的時候記得自己備注記下來
方法二編譯安裝【推薦大神】:編譯安裝LEMP環(huán)境,并命令后操作部署皮膚站和外置登錄
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
編譯環(huán)境:按需求需要SSL、gzip、正則庫等依賴
開始安裝一下依賴:(根據(jù)自己的服務器系統(tǒng)去選擇以下命令輸入)
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用戶運行,所以我這里創(chuàng)建一個www用戶,附屬于www用戶組:(依次輸入以下命令)
sudo useradd www (創(chuàng)建一個www用戶)
sudo groupadd www(創(chuàng)建一個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ù)服務器核心數(shù)填寫J后面數(shù)值,例服務器是32核,所以-j32)
make install (編譯完成,進行安裝)
注冊服務:如果你是按照我的操作步驟進行編譯操作的
那么需要創(chuàng)建一個日志目錄:輸入以下命令
sudo mkdir /var/cache/nginx (# 創(chuàng)建日志目錄)
為方便啟動,注冊服務為:輸入以下命令
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會比較麻煩,主要是依賴問題,根據(jù)Blessing Skin安裝指南,我們需要PHP支持:
OpenSSL、PDO、Mbstring、Tokenizer、GD、XML、Ctype、JSON、fileinfo、zip
主要是GD模塊,需要很多額外參數(shù),尤其是freetype參數(shù),所以這里編譯需要注意。
下載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操作系統(tǒng)
需要支援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系統(tǒng):
首先是編譯安裝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ù)服務器核心數(shù)填寫J后面數(shù)值,例服務器是32核,所以-j32)
make install (編譯完成,進行安裝)
注冊服務
根據(jù)教程步驟操作的小伙伴需要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
首先,創(chuàng)建一個目錄,作為網(wǎng)站目錄:
mkdir /www/BlessingSkin -pv
cd /www/BlessingSkin
之后,下載BlessingSkin的發(fā)行版本,選擇安裝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
安裝官網(wǎng)要求需要重命名和初始化:輸入以下代碼
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用戶直接修改文件,現(xiàn)在把網(wǎng)站目錄權限移交給www:
chown www:www /www -R
重載配置:systemctl reload nginx
瀏覽器訪問網(wǎng)站,即可看到效果:
到這里我們就已經(jīng)搭建好BlessingSkin,接下來就是初始化了,點擊下一步,進入初始化參數(shù)界面:
輸入完數(shù)據(jù)庫,讓你設置管理員 按步驟操作
進行訪問即可使用皮膚站了
總結:編譯安裝大神適用的方式其實以上步驟操作就是自己安裝編譯Nginx和PHP在這個過程中全部部署好在服務器后下載BlessingSkin搭建一下即可。個人建議是用寶塔會方便快捷很多,喜歡大神操作的對于Nginx和php可自行深入研究
外置登錄:使用外置登錄,服務器的online-mode記得設置為true
接下來,使用Yggdrasil API來外置登錄皮膚站上操作
首先需要配置搭建好的皮膚站(其實,說是皮膚站,倒像是個百寶箱),之后選擇管理面板:
管理面板
進入管理面板后,選擇插件市場有很多插件大家自行安裝
安裝好插件后進入插件管理,勾選插件:
會出現(xiàn)小齒輪點擊就可以進入這個插件的管理面板:
記住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
這樣,就可以看見自己的角色了(皮膚站上,事先要創(chuàng)建一個角色 ):
到這里我們今天的分享就結束啦希望對有需要的小伙伴有幫助
我是馳網(wǎng)艾西 擁有一臺服務器可以做很多有趣的事情!
前端最全的5種換膚方案總結:打造個性化的用戶體驗之旅
### **引言:為什么換膚功能至關重要**
隨著Web應用逐漸重視用戶體驗設計,前端頁面的個性化定制愈發(fā)重要。換膚功能作為一種增強用戶參與感和滿意度的有效途徑,讓訪問者可以根據(jù)個人喜好調整界面風格。本文將深入探討五種前沿且廣泛應用的前端換膚方案,每一種方案都有詳細的原理介紹及實戰(zhàn)代碼演示,助您輕松應對各種場景下的前端換膚需求。
### **方案一:CSS自定義屬性(CSS Variables)**
#### **1.1 CSS Variables基礎**
CSS Variables允許開發(fā)者定義全局或局部的樣式變量,從而實現(xiàn)動態(tài)更換皮膚顏色。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<style>
:root {
--main-color: #1abc9c;
--secondary-color: #ecf0f1;
}
body {
background-color: var(--main-color);
color: var(--secondary-color);
}
</style>
</head>
<body>
...
</body>
</html>
```
#### **1.2 利用JavaScript動態(tài)更新CSS Variables**
通過JavaScript更改根元素上的CSS變量值,進而實現(xiàn)一鍵換膚:
```javascript
document.documentElement.style.setProperty('--main-color', '#3498db');
document.documentElement.style.setProperty('--secondary-color', '#bdc3c7');
```
### **方案二:CSS主題文件切換**
#### **2.1 主題樣式表切換**
創(chuàng)建多個CSS主題文件,通過JavaScript切換 `<link>` 標簽指向的不同CSS文件實現(xiàn)換膚:
```html
<button onclick="changeTheme('dark')">切換到深色主題</button>
<script>
function changeTheme(themeName) {
let linkElement=document.querySelector('#theme-css');
linkElement.href=`themes/${themeName}.css`;
}
</script>
<!-- 默認引入淺色主題 -->
<link id="theme-css" rel="stylesheet" href="themes/light.css">
```
### **方案三:Less / Sass 預處理器**
#### **3.1 Less / Sass 變量和Mixins**
使用預處理器定義主題色彩變量,并在樣式中引用:
```less
// Less 文件
@main-color: #ff5e14;
body {
background-color: @main-color;
}
// 更改主題時只需更改變量值
@main-color: #2ecc71;
```
#### **3.2 編譯多主題CSS**
通過構建工具(如Gulp、Webpack)在構建階段生成不同主題的CSS文件。
### **方案四:JavaScript 動態(tài)樣式注入**
#### **4.1 動態(tài)DOM樣式修改**
遍歷DOM樹,針對具有特定數(shù)據(jù)屬性(例如 `data-theme`)的元素直接修改其樣式:
```html
<div data-theme="background">...</div>
<script>
const newColor='#2980b9';
document.querySelectorAll('[data-theme]').forEach((el)=> {
el.style.backgroundColor=newColor;
});
</script>
```
#### **4.2 類名切換法**
利用CSS類名切換,配合JavaScript添加/移除類名實現(xiàn)換膚:
```html
<body class="theme-default">...</body>
<style>
.theme-light { background-color: #f9f9f9; }
.theme-dark { background-color: #333; }
</style>
<script>
function switchTheme() {
const body=document.body;
if (body.classList.contains('theme-light')) {
body.classList.remove('theme-light');
body.classList.add('theme-dark');
} else {
// 切換回默認或其他主題
}
}
</script>
```
### **方案五:基于JSON配置的動態(tài)換膚**
#### **5.1 JSON主題配置**
存儲主題信息于JSON文件中:
```json
{
"theme": {
"backgroundColor": "#F0F0F0",
"textColor": "#333",
"linkColor": "#007BFF"
}
}
```
#### **5.2 從JSON加載并應用主題**
通過Ajax請求獲取JSON配置,然后根據(jù)數(shù)據(jù)動態(tài)生成CSS規(guī)則:
```javascript
fetch('themes/current_theme.json')
.then(response=> response.json())
.then(data=> {
const style=document.createElement('style');
const rules=Object.entries(data.theme).map(([prop, value])=> {
return `${prop}: ${value};`;
}).join('');
style.textContent=`
body { ${rules} }
/* 其他元素樣式 */
`;
document.head.appendChild(style);
});
```
### **結語:選擇適合的換膚方案**
以上五種前端換膚方案各有優(yōu)劣,具體選用哪一種取決于項目的具體需求、現(xiàn)有技術棧以及對性能優(yōu)化的考量。無論采用何種方式,始終要關注用戶體驗,確保換膚過程流暢自然。持續(xù)學習和嘗試新技術,我們就能打造出更加貼合用戶喜好的前端產品,從而提高用戶黏性和滿意度。
BP Freqsep Control for Mac是運行在Photoshop上的美容磨皮修飾插件,NBP Freqsep Control插件可以具備皮膚修飾、低頻層的邊緣保持分離、高頻層的無縫應用等實用的功能,輕松修飾您的圖像。
NBP Freqsep Control插件介紹
適用于Adobe Photoshop CC和更新版本的NBP Freqsep Control。
如果您熟悉在修飾工作流程中使用頻率分離的過程,那么您可能會意識到 - 并且感到沮喪 - 缺乏完全控制以及使用它時獲得的平均結果。雖然該方法仍然是皮膚修飾的主食,但在Photoshop中設置它的核心方法已經(jīng)或多或少地保持一段時間了,并且被接受。
頻率分離的基本前提是在Photoshop中創(chuàng)建分別操作基色和紋理的能力,從而使您可以控制完美的膚色而不會消除皮膚紋理。在紙面上,這聽起來很不錯。https://mac.orsoon.com/Mac/163593.html對于許多修圖師來說,這種方法的發(fā)現(xiàn)最初是令人興奮的,然后由于經(jīng)典頻率分離設置過程的限制而最終令人沮喪。
然后在處理過濾器和設置中涉及的其他功能時添加工作流程減速,并且頻率分離成為必要的惡魔,或許,但讓你對結果感到有些不滿。
如果你能有什么多一點的控制,都在同一個面板,并取得更好的效果?也許您對修飾有更高的要求,并且總是希望加強它。接受并實施其他人所做的事情只會讓你到目前為止。這就是Freqsep Control的用武之地。
NBP Freqsep Control for mac功能特點
高端修飾的終極控制
- 設置半徑(模糊/平滑)和細節(jié)閾值(邊緣保留),在Photoshop內作為擴展面板,在直觀,高效的用戶界面中根據(jù)您的首選外觀,圖像分辨率和工作流程進行定制
- 專有的32位邊緣保留和模糊算法質量高,處理速度更快
- 與Photoshop中的典型頻率分離方法相比,紋理保留更多,這可以讓您在- 完善過渡時獲得更多自由
- 最大限度地減少頻率分離設置中常見的暈圈問題
- 允許您在分割視圖中預覽基本(低頻)和細節(jié)(高頻)結果,或在申請前單獨預覽,以確保獲得所需的結果
- 選擇讓面板重復或吸收工作層
- 比傳統(tǒng)的頻率分離過程設置更快
- 最多可保存4個預設,以實現(xiàn)高效的多工作流程
https://mac.orsoon.com/Mac/163593.html
最完美的紋理保存,具有最平滑的結果,全部具有絕對控制。
- 插件解決方案
利用專有算法(模糊和邊緣檢測)擴展到其他插件面板之外,這些算法比Photoshop內置的算法更快,質量更高。
- 活動預覽
根據(jù)實時設置查看低頻和高頻層的結果。
根據(jù)您的偏好或文件的理想?yún)?shù)即時調整設置。
- 低頻層的邊緣保持分離
Blazing快速實現(xiàn)專有邊緣保留(細節(jié)閾值)與高頻去除/平滑(半徑)結合
比Photoshop的表面模糊和傳統(tǒng)上用于頻率分離的高斯模糊更快,更平滑,更高質量。
同時主動調整兩個參數(shù),以定制您需要和想要的精確頻率分離類型。
為低頻層撥打更多平滑(模糊),同時詳細預覽以避免在高對比度過渡附近過度暈圈。
- 高頻層的無縫應用
比傳統(tǒng)的頻率分離保留了更多的紋理。
提供自由,可以在紋理下更加強烈地添加顏色,以平滑過渡而不會犧牲它。
- 適用于您現(xiàn)有的頻率分離工作流程
無論您是喜歡直接修改低層還是高層(高溫下修復,低調混合器刷等)或在低層和高層之間添加顏色而不直接修改它們,您的頻率分離工作流程將保持不變不變。
- HTML5原生Photoshop UI面板
為有效的工作流程而構建的直觀,高效,易于理解的用戶界面。
- 多線程和矢量化代碼
實現(xiàn)算法是為了利用現(xiàn)代CPU實現(xiàn)實時體驗。
- 內部32位計算
適用于8位,16位和32位圖像。
減少偽影,減少量化。
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。