diff --git a/system/pages/highscores.php b/system/pages/highscores.php
index 91ba2e2b..6deb842c 100644
--- a/system/pages/highscores.php
+++ b/system/pages/highscores.php
@@ -18,8 +18,11 @@ defined('MYAAC') or die('Direct access not allowed!');
$title = 'Highscores';
$settingHighscoresCountryBox = setting('core.highscores_country_box');
-if(config('account_country') && $settingHighscoresCountryBox)
+if(config('account_country') && $settingHighscoresCountryBox) {
require SYSTEM . 'countries.conf.php';
+}
+
+$highscoresTTL = setting('core.highscores_cache_ttl');
$list = urldecode($_GET['list'] ?? 'experience');
$page = $_GET['page'] ?? 1;
@@ -140,7 +143,7 @@ $needReCache = true;
$cacheKey = 'highscores_' . $skill . '_' . $vocation . '_' . $page . '_' . $configHighscoresPerPage;
$cache = Cache::getInstance();
-if ($cache->enabled()) {
+if ($cache->enabled() && $highscoresTTL > 0) {
$tmp = '';
if ($cache->fetch($cacheKey, $tmp)) {
$highscores = unserialize($tmp);
@@ -214,8 +217,8 @@ if (empty($highscores)) {
})->toArray();
}
-if ($cache->enabled() && $needReCache) {
- $cache->set($cacheKey, serialize($highscores), setting('core.highscores_cache_ttl') * 60);
+if ($highscoresTTL > 0 && $cache->enabled() && $needReCache) {
+ $cache->set($cacheKey, serialize($highscores), $highscoresTTL * 60);
}
$show_link_to_next_page = false;
@@ -278,6 +281,10 @@ if(setting('core.highscores_frags')) {
if(setting('core.highscores_balance'))
$types['balance'] = 'Balance';
+if ($highscoresTTL > 0 && $cache->enabled()) {
+ echo '*Note: Highscores are updated every' . ($highscoresTTL > 1 ? ' ' . $highscoresTTL : '') . ' minute' . ($highscoresTTL > 1 ? 's' : '') . '.
';
+}
+
/** @var Twig\Environment $twig */
$twig->display('highscores.html.twig', [
'highscores' => $highscores,
diff --git a/system/settings.php b/system/settings.php
index 729527c0..d0a705a0 100644
--- a/system/settings.php
+++ b/system/settings.php
@@ -1035,8 +1035,8 @@ Sent by MyAAC,
'highscores_cache_ttl' => [
'name' => 'Highscores Cache TTL (in minutes)',
'type' => 'number',
- 'min' => 1,
- 'desc' => 'How often to update highscores from database in minutes (default 15 minutes). Too low may cause lags on website.',
+ 'min' => 0,
+ 'desc' => 'How often to update highscores from database in minutes. Too low may slow down your website.
0 to disable.',
'default' => 15,
],
'highscores_vocation_box' => [