mirror of
https://github.com/evennia/evennia.git
synced 2026-03-17 05:16:31 +01:00
Add portal uptime to @time command.
This commit is contained in:
parent
1f3d8d1b96
commit
040cc2aa9f
6 changed files with 20 additions and 1 deletions
|
|
@ -710,6 +710,7 @@ class CmdTime(COMMAND_DEFAULT_CLASS):
|
|||
"""Show server time data in a table."""
|
||||
table1 = EvTable("|wServer time", "", align="l", width=78)
|
||||
table1.add_row("Current uptime", utils.time_format(gametime.uptime(), 3))
|
||||
table1.add_row("Portal uptime", utils.time_format(gametime.portal_uptime(), 3))
|
||||
table1.add_row("Total runtime", utils.time_format(gametime.runtime(), 2))
|
||||
table1.add_row("First start", datetime.datetime.fromtimestamp(gametime.server_epoch()))
|
||||
table1.add_row("Current time", datetime.datetime.now())
|
||||
|
|
|
|||
|
|
@ -221,6 +221,7 @@ class AMPServerClientProtocol(amp.AMPMultiConnectionProtocol):
|
|||
server_restart_mode = kwargs.get("server_restart_mode", "shutdown")
|
||||
self.factory.server.run_init_hooks(server_restart_mode)
|
||||
server_sessionhandler.portal_sessions_sync(kwargs.get("sessiondata"))
|
||||
server_sessionhandler.portal_start_time = kwargs.get("portal_start_time")
|
||||
|
||||
elif operation == amp.SRELOAD: # server reload
|
||||
# shut down in reload mode
|
||||
|
|
|
|||
|
|
@ -428,7 +428,8 @@ class AMPServerProtocol(amp.AMPMultiConnectionProtocol):
|
|||
self.send_AdminPortal2Server(amp.DUMMYSESSION,
|
||||
amp.PSYNC,
|
||||
server_restart_mode=server_restart_mode,
|
||||
sessiondata=sessdata)
|
||||
sessiondata=sessdata,
|
||||
portal_start_time=self.factory.portal.start_time)
|
||||
self.factory.portal.sessions.at_server_connection()
|
||||
|
||||
if self.factory.server_connection:
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ from builtins import object
|
|||
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
|
||||
from os.path import dirname, abspath
|
||||
from twisted.application import internet, service
|
||||
|
|
@ -114,6 +115,8 @@ class Portal(object):
|
|||
self.server_restart_mode = "shutdown"
|
||||
self.server_info_dict = {}
|
||||
|
||||
self.start_time = time.time()
|
||||
|
||||
# in non-interactive portal mode, this gets overwritten by
|
||||
# cmdline sent by the evennia launcher
|
||||
self.server_twistd_cmd = self._get_backup_server_twistd_cmd()
|
||||
|
|
|
|||
|
|
@ -280,6 +280,8 @@ class ServerSessionHandler(SessionHandler):
|
|||
super(ServerSessionHandler, self).__init__(*args, **kwargs)
|
||||
self.server = None # set at server initialization
|
||||
self.server_data = {"servername": _SERVERNAME}
|
||||
# will be set on psync
|
||||
self.portal_start_time = 0.0
|
||||
|
||||
def _run_cmd_login(self, session):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -107,6 +107,17 @@ def uptime():
|
|||
return time.time() - SERVER_START_TIME
|
||||
|
||||
|
||||
def portal_uptime():
|
||||
"""
|
||||
Get the current uptime of the portal.
|
||||
|
||||
Returns:
|
||||
time (float): The uptime of the portal.
|
||||
"""
|
||||
from evennia.server.sessionhandler import SESSIONS
|
||||
return time.time() - SESSIONS.portal_start_time
|
||||
|
||||
|
||||
def game_epoch():
|
||||
"""
|
||||
Get the game epoch.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue