From a83db5dd6ff8b86eb7e62625ca76cdef62975d23 Mon Sep 17 00:00:00 2001 From: ruan Date: Thu, 10 Sep 2015 19:39:09 +0200 Subject: [PATCH] Add configurable avatar source URL --- bans.php | 4 ++-- includes/page.php | 13 +++++++++---- includes/settings.php | 8 ++++++++ info.php | 16 ++++++++-------- kicks.php | 4 ++-- mutes.php | 4 ++-- warnings.php | 4 ++-- 7 files changed, 33 insertions(+), 20 deletions(-) diff --git a/bans.php b/bans.php index 7f064ae..5b1a5c4 100644 --- a/bans.php +++ b/bans.php @@ -23,8 +23,8 @@ $headers = array("Name", "Banned By", "Reason", "Banned On", "Banned Until"); if ($player_name === null) continue; $page->print_table_rows($row, array( - 'Name' => $page->get_avatar($player_name), - 'Banned By' => $page->get_avatar($page->get_banner_name($row)), + 'Name' => $page->get_avatar($player_name, $row['uuid']), + 'Banned By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Reason' => $page->clean($row['reason']), 'Banned On' => $page->millis_to_date($row['time']), 'Banned Until' => $page->expiry($row), diff --git a/includes/page.php b/includes/page.php index 13f26e4..e382c7a 100644 --- a/includes/page.php +++ b/includes/page.php @@ -86,12 +86,17 @@ class Page { } /** - * Returns an tag representing the Minecraft avatar for a specific name. - * @param string + * Returns an tag representing the Minecraft avatar for a specific name or UUID. + * @param $name + * @param $uuid * @return string */ - function get_avatar($name) { - $src = "https://cravatar.eu/avatar/$name/25"; + function get_avatar($name, $uuid) { + if ($uuid[14] === '3') { + // Avatars cannot be associated with offline mode UUIDs (version 3) + $uuid = $name; + } + $src = str_replace('$NAME', $name, str_replace('$UUID', $uuid, $this->settings->avatar_source)); if (in_array($name, $this->settings->console_aliases)) { $src = $this->settings->console_image; $name = $this->settings->console_name; diff --git a/includes/settings.php b/includes/settings.php index 7634919..7e206cf 100644 --- a/includes/settings.php +++ b/includes/settings.php @@ -46,6 +46,14 @@ final class Settings { $this->console_name = "Console"; $this->console_image = "includes/img/console.png"; + // Avatar images for all players will be fetched from this URL. + // Examples: + /* 'https://cravatar.eu/avatar/$UUID/25' + * 'https://crafatar.com/avatars/$UUID?size=25' + * 'https://minotar.net/avatar/$NAME/25' + */ + $this->avatar_source = 'https://cravatar.eu/avatar/$UUID/25'; + // The date format can be changed here. // https://secure.php.net/manual/en/function.date.php // Example of default: July 2, 2015, 9:19 PM diff --git a/info.php b/info.php index 3ea0a39..52eb10b 100644 --- a/info.php +++ b/info.php @@ -45,8 +45,8 @@ class BanInfo extends Info { function basic_info($row, $player_name) { $page = $this->page; return array( - 'Banned Player' => $page->get_avatar($player_name), - 'Banned By' => $page->get_avatar($page->get_banner_name($row)), + 'Banned Player' => $page->get_avatar($player_name, $row['uuid']), + 'Banned By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Ban Reason' => $page->clean($row['reason']), 'Ban Placed' => $page->millis_to_date($row['time']), 'Expires' => $page->expiry($row), @@ -58,8 +58,8 @@ class MuteInfo extends Info { function basic_info($row, $player_name) { $page = $this->page; return array( - 'Muted Player' => $page->get_avatar($player_name), - 'Muted By' => $page->get_avatar($page->get_banner_name($row)), + 'Muted Player' => $page->get_avatar($player_name, $row['uuid']), + 'Muted By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Mute Reason' => $page->clean($row['reason']), 'Mute Placed' => $page->millis_to_date($row['time']), 'Expires' => $page->expiry($row), @@ -75,8 +75,8 @@ class WarnInfo extends Info { function basic_info($row, $player_name) { $page = $this->page; return array( - 'Warned Player' => $page->get_avatar($player_name), - 'Warned By' => $page->get_avatar($page->get_banner_name($row)), + 'Warned Player' => $page->get_avatar($player_name, $row['uuid']), + 'Warned By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Warning Reason' => $page->clean($row['reason']), 'Warning Placed' => $page->millis_to_date($row['time']), 'Expires' => $page->expiry($row), @@ -88,8 +88,8 @@ class KickInfo extends Info { function basic_info($row, $player_name) { $page = $this->page; return array( - 'Kicked Player' => $page->get_avatar($player_name), - 'Kicked By' => $page->get_avatar($page->get_banner_name($row)), + 'Kicked Player' => $page->get_avatar($player_name, $row['uuid']), + 'Kicked By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Kick Reason' => $page->clean($row['reason']), 'Kick Date' => $page->millis_to_date($row['time']), ); diff --git a/kicks.php b/kicks.php index 15d1354..643631b 100644 --- a/kicks.php +++ b/kicks.php @@ -22,8 +22,8 @@ $headers = array("Name", "Kicked By", "Reason", "Date"); if ($player_name === null) continue; $page->print_table_rows($row, array( - 'Name' => $page->get_avatar($player_name), - 'Kicked By' => $page->get_avatar($page->get_banner_name($row)), + 'Name' => $page->get_avatar($player_name, $row['uuid']), + 'Kicked By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Reason' => $page->clean($row['reason']), 'Date' => $page->millis_to_date($row['time']), )); diff --git a/mutes.php b/mutes.php index 9a9de0a..33ce3aa 100644 --- a/mutes.php +++ b/mutes.php @@ -22,8 +22,8 @@ $headers = array("Name", "Muted By", "Reason", "Muted On", "Muted Until"); if ($player_name === null) continue; $page->print_table_rows($row, array( - 'Name' => $page->get_avatar($player_name), - 'Muted By' => $page->get_avatar($page->get_banner_name($row)), + 'Name' => $page->get_avatar($player_name, $row['uuid']), + 'Muted By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Reason' => $page->clean($row['reason']), 'Muted On' => $page->millis_to_date($row['time']), 'Muted Until' => $page->expiry($row), diff --git a/warnings.php b/warnings.php index d576f2b..fa0a34e 100644 --- a/warnings.php +++ b/warnings.php @@ -22,8 +22,8 @@ $headers = array("Name", "Warned By", "Reason", "Warned Until", "Received Warnin if ($player_name === null) continue; $page->print_table_rows($row, array( - 'Name' => $page->get_avatar($player_name), - 'Warned By' => $page->get_avatar($page->get_banner_name($row)), + 'Name' => $page->get_avatar($player_name, $row['uuid']), + 'Warned By' => $page->get_avatar($page->get_banner_name($row), $row['uuid']), 'Reason' => $page->clean($row['reason']), 'Warned Until' => $page->expiry($row), 'Received Warning?' => $row['warned'] ? "Yes" : "No",