From f6e753502333656d76476e21a900f0e8dc774215 Mon Sep 17 00:00:00 2001 From: kremsy Date: Sun, 19 Jul 2015 16:48:34 +0200 Subject: [PATCH] added //uptime --- changelog.txt | 8 ++++++++ core/Server/Server.php | 27 ++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 065a90a2..565498ee 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,11 @@ +###v0.16x### +#Additions +- added admin chatcommand //uptime which displays the time since when the server is running +- updated playerhitstructure with new properties + +#Bug Fixes +- fixed some z positions to be in front of overlays (especially in Trackmania) + ###v0.16### #Additions diff --git a/core/Server/Server.php b/core/Server/Server.php index 8655df68..377cdb24 100644 --- a/core/Server/Server.php +++ b/core/Server/Server.php @@ -4,6 +4,7 @@ namespace ManiaControl\Server; use ManiaControl\Callbacks\CallbackListener; use ManiaControl\Callbacks\Callbacks; +use ManiaControl\Commands\CommandListener; use ManiaControl\Logger; use ManiaControl\ManiaControl; use ManiaControl\Players\Player; @@ -17,7 +18,7 @@ use Maniaplanet\DedicatedServer\Xmlrpc\Exception; * @copyright 2014-2015 ManiaControl Team * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ -class Server implements CallbackListener { +class Server implements CallbackListener, CommandListener { /* * Constants */ @@ -85,6 +86,30 @@ class Server implements CallbackListener { // Callbacks $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ONINIT, $this, 'onInit'); + + $this->maniaControl->getCommandManager()->registerCommandListener("uptime", $this, "chatUpTime", true, "Show how long the server is running."); + } + + /** + * Displays how long the Server is running already in the Chat + * + * @param array $chatCallback + * @param \ManiaControl\Players\Player $player + */ + public function chatUpTime(array $chatCallback, Player $player) { + $networkStats = $this->maniaControl->getClient()->getNetworkStats(); + + $minutestotal = $networkStats->uptime / 60; + $hourstotal = $minutestotal / 60; + $days = intval($hourstotal / 24); + $hours = intval($hourstotal - 24 * $days); + $minutes = intval($minutestotal - 24 * 60 * $days - $hours * 60); + + $days > 1 ? $dayString = 'days' : $dayString = 'day'; + $hours > 1 ? $hourString = 'hours' : $hourString = 'hour'; + $minutes > 1 ? $minuteString = 'minutes' : $minuteString = 'minute'; + + $this->maniaControl->getChat()->sendChat('Server is running since $<$fff' . $days . '$> ' . $dayString . ', $<$fff' . $hours . '$> ' . $hourString . ' and $<$fff' . $minutes . '$> ' . $minuteString, $player); } /**