Minecraft-BungeeCord-Status/minecraft-bungeecord-status.php aktualisiert
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: Minecraft BungeeCord Status – Network Edition
|
* Plugin Name: Minecraft BungeeCord Status – Network Edition
|
||||||
* Description: Der ultimative Live-Status für dein BungeeCord Netzwerk (Border None Fix).
|
* Description: Der ultimative Live-Status für dein BungeeCord Netzwerk (Border None Fix).
|
||||||
* Tags: minecraft, bungeecord, server status, player list
|
* Tags: minecraft, bungeecord, server status, player list
|
||||||
* Version: 3.6.1
|
* Version: 3.6.3
|
||||||
* Author: M_Viper
|
* Author: M_Viper
|
||||||
* Requires at least: 6.0
|
* Requires at least: 6.0
|
||||||
* Requires PHP: 7.4
|
* Requires PHP: 7.4
|
||||||
@@ -59,6 +59,23 @@ function mcss_format_minecraft_colors($text) {
|
|||||||
return $formatted;
|
return $formatted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------------- HELPER: 3D AVATAR URL ---------------- */
|
||||||
|
function mcss_get_3d_avatar($name, $uuid = null) {
|
||||||
|
// Bedrock-Spieler erkennen (Name enthält Punkt oder UUID beginnt mit xuid)
|
||||||
|
$is_bedrock = strpos($name, '.') !== false || ($uuid && strpos($uuid, 'xuid') === 0);
|
||||||
|
|
||||||
|
if ($is_bedrock) {
|
||||||
|
// Bedrock: mc-heads.net mit 3D Head (nutze UUID falls vorhanden)
|
||||||
|
if ($uuid && !empty($uuid)) {
|
||||||
|
return 'https://mc-heads.net/head/' . rawurlencode($uuid) . '/100';
|
||||||
|
}
|
||||||
|
return 'https://mc-heads.net/head/' . rawurlencode($name) . '/100';
|
||||||
|
} else {
|
||||||
|
// Java: mc-heads.net mit 3D Head
|
||||||
|
return 'https://mc-heads.net/head/' . rawurlencode($name) . '/100';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------- AUTO UPDATE (MCSS) ---------------- */
|
/* ---------------- AUTO UPDATE (MCSS) ---------------- */
|
||||||
if ( ! class_exists( 'MCSS_Auto_Update' ) ) {
|
if ( ! class_exists( 'MCSS_Auto_Update' ) ) {
|
||||||
class MCSS_Auto_Update {
|
class MCSS_Auto_Update {
|
||||||
@@ -547,10 +564,12 @@ function mcss_fetch_server_with_ranks($srv) {
|
|||||||
if (is_array($player_data)) {
|
if (is_array($player_data)) {
|
||||||
$name = $player_data['name'];
|
$name = $player_data['name'];
|
||||||
$prefix = $player_data['prefix'] ?? '';
|
$prefix = $player_data['prefix'] ?? '';
|
||||||
|
$uuid = $player_data['uuid'] ?? null;
|
||||||
} else {
|
} else {
|
||||||
// Fallback für alte API
|
// Fallback für alte API
|
||||||
$name = $player_data;
|
$name = $player_data;
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
|
$uuid = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Prefix mit Farben konvertieren
|
// 1. Prefix mit Farben konvertieren
|
||||||
@@ -566,9 +585,13 @@ function mcss_fetch_server_with_ranks($srv) {
|
|||||||
$display_html = $name_html;
|
$display_html = $name_html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 4. 3D Avatar URL generieren (mit Bedrock-Support)
|
||||||
|
$avatar_url = mcss_get_3d_avatar($name, $uuid);
|
||||||
|
|
||||||
$players_info[] = [
|
$players_info[] = [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'avatar' => "https://mc-heads.net/avatar/" . rawurlencode($name) . "/64",
|
'uuid' => $uuid,
|
||||||
|
'avatar' => $avatar_url,
|
||||||
'prefix' => $prefix,
|
'prefix' => $prefix,
|
||||||
'display_html' => $display_html,
|
'display_html' => $display_html,
|
||||||
'rank' => $prefix ?: 'Spieler',
|
'rank' => $prefix ?: 'Spieler',
|
||||||
@@ -670,7 +693,7 @@ function mcss_shortcode($atts) {
|
|||||||
$widget_width = "650px";
|
$widget_width = "650px";
|
||||||
$widget_padding = "15px";
|
$widget_padding = "15px";
|
||||||
$logo_size = "70px";
|
$logo_size = "70px";
|
||||||
$player_head_size = "32px";
|
$player_head_size = "40px"; // Größer für 3D-Köpfe
|
||||||
|
|
||||||
$copy_addr = !empty($srv['copy_address']) ? $srv['copy_address'] : $srv['host'];
|
$copy_addr = !empty($srv['copy_address']) ? $srv['copy_address'] : $srv['host'];
|
||||||
if (empty($srv['hide_port']) && !empty($srv['player_port_copy'])) {
|
if (empty($srv['hide_port']) && !empty($srv['player_port_copy'])) {
|
||||||
@@ -756,13 +779,13 @@ function mcss_shortcode($atts) {
|
|||||||
|
|
||||||
<!-- PLAYER GRID -->
|
<!-- PLAYER GRID -->
|
||||||
<span style="color:#666;margin-bottom:15px;">Spieler:</span>
|
<span style="color:#666;margin-bottom:15px;">Spieler:</span>
|
||||||
<div id="mcss-player-grid-<?php echo esc_attr($uid); ?>" style="display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;color:#666;justify-content:center;">
|
<div id="mcss-player-grid-<?php echo esc_attr($uid); ?>" style="display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:#666;justify-content:center;">
|
||||||
|
|
||||||
<?php if (!empty($data['players']) && is_array($data['players'])): ?>
|
<?php if (!empty($data['players']) && is_array($data['players'])): ?>
|
||||||
<?php foreach ($data['players'] as $p): ?>
|
<?php foreach ($data['players'] as $p): ?>
|
||||||
<div style="text-align:center;">
|
<div style="text-align:center;">
|
||||||
<img src="<?php echo esc_url($p['avatar']); ?>" style="width:<?php echo $player_head_size; ?>;height:<?php echo $player_head_size; ?>;border-radius:4px;">
|
<img src="<?php echo esc_url($p['avatar']); ?>" style="width:<?php echo $player_head_size; ?>;height:<?php echo $player_head_size; ?>;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,0.15);" loading="lazy">
|
||||||
<div style="font-size:0.75em;"><?php echo $p['display_html']; ?></div>
|
<div style="font-size:0.75em;margin-top:4px;"><?php echo $p['display_html']; ?></div>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
@@ -847,8 +870,8 @@ function mcss_shortcode($atts) {
|
|||||||
d.players.forEach(function(p){
|
d.players.forEach(function(p){
|
||||||
var content = p.display_html ? p.display_html : p.name;
|
var content = p.display_html ? p.display_html : p.name;
|
||||||
html += '<div style="text-align:center;">' +
|
html += '<div style="text-align:center;">' +
|
||||||
'<img src="' + (p.avatar ? p.avatar : '') + '" style="width:<?php echo $player_head_size; ?>;height:<?php echo $player_head_size; ?>;border-radius:4px;">' +
|
'<img src="' + (p.avatar ? p.avatar : '') + '" style="width:<?php echo $player_head_size; ?>;height:<?php echo $player_head_size; ?>;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,0.15);" loading="lazy">' +
|
||||||
'<div style="font-size:0.75em;">' + content + '</div>' +
|
'<div style="font-size:0.75em;margin-top:4px;">' + content + '</div>' +
|
||||||
'</div>';
|
'</div>';
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user