diff --git a/Minecraft-BungeeCord-Status/minecraft-bungeecord-status.php b/Minecraft-BungeeCord-Status/minecraft-bungeecord-status.php index 08dc093..e12eb16 100644 --- a/Minecraft-BungeeCord-Status/minecraft-bungeecord-status.php +++ b/Minecraft-BungeeCord-Status/minecraft-bungeecord-status.php @@ -3,7 +3,7 @@ * Plugin Name: Minecraft BungeeCord Status – Network Edition * Description: Der ultimative Live-Status für dein BungeeCord Netzwerk (Border None Fix). * Tags: minecraft, bungeecord, server status, player list - * Version: 3.6.1 + * Version: 3.6.3 * Author: M_Viper * Requires at least: 6.0 * Requires PHP: 7.4 @@ -59,6 +59,23 @@ function mcss_format_minecraft_colors($text) { 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) ---------------- */ if ( ! class_exists( 'MCSS_Auto_Update' ) ) { class MCSS_Auto_Update { @@ -547,10 +564,12 @@ function mcss_fetch_server_with_ranks($srv) { if (is_array($player_data)) { $name = $player_data['name']; $prefix = $player_data['prefix'] ?? ''; + $uuid = $player_data['uuid'] ?? null; } else { // Fallback für alte API $name = $player_data; $prefix = ''; + $uuid = null; } // 1. Prefix mit Farben konvertieren @@ -566,9 +585,13 @@ function mcss_fetch_server_with_ranks($srv) { $display_html = $name_html; } + // 4. 3D Avatar URL generieren (mit Bedrock-Support) + $avatar_url = mcss_get_3d_avatar($name, $uuid); + $players_info[] = [ 'name' => $name, - 'avatar' => "https://mc-heads.net/avatar/" . rawurlencode($name) . "/64", + 'uuid' => $uuid, + 'avatar' => $avatar_url, 'prefix' => $prefix, 'display_html' => $display_html, 'rank' => $prefix ?: 'Spieler', @@ -670,7 +693,7 @@ function mcss_shortcode($atts) { $widget_width = "650px"; $widget_padding = "15px"; $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']; if (empty($srv['hide_port']) && !empty($srv['player_port_copy'])) { @@ -756,13 +779,13 @@ function mcss_shortcode($atts) { Spieler: -