def run_init_hooks(self): """ Called every server start """ from evennia.objects.models import ObjectDB #from evennia.players.models import PlayerDB #update eventual changed defaults self.update_defaults() [o.at_init() for o in ObjectDB.get_all_cached_instances()] [p.at_init() for p in PlayerDB.get_all_cached_instances()] with open(SERVER_RESTART, 'r') as f: mode = f.read() if mode in ('True', 'reload'): from evennia.scripts.monitorhandler import MONITOR_HANDLER MONITOR_HANDLER.restore() from evennia.scripts.tickerhandler import TICKER_HANDLER TICKER_HANDLER.restore(mode in ('True', 'reload')) # call correct server hook based on start file value if mode in ('True', 'reload'): # True was the old reload flag, kept for compatibilty self.at_server_reload_start() elif mode == 'reset': # only run hook, don't purge sessions self.at_server_cold_start() elif mode in ('reset', 'shutdown'): self.at_server_cold_start() # clear eventual lingering session storages ObjectDB.objects.clear_all_sessids() # always call this regardless of start type self.at_server_start()
def at_post_portal_sync(self, mode): """ This is called just after the portal has finished syncing back data to the server after reconnecting. Args: mode (str): One of reload, reset or shutdown. """ from evennia.scripts.monitorhandler import MONITOR_HANDLER MONITOR_HANDLER.restore(mode == 'reload') from evennia.scripts.tickerhandler import TICKER_HANDLER TICKER_HANDLER.restore(mode == 'reload') # after sync is complete we force-validate all scripts # (this also starts any that didn't yet start) ScriptDB.objects.validate(init_mode=mode) # start the task handler from evennia.scripts.taskhandler import TASK_HANDLER TASK_HANDLER.load() TASK_HANDLER.create_delays() # delete the temporary setting ServerConfig.objects.conf("server_restart_mode", delete=True)
def at_post_portal_sync(self): """ This is called just after the portal has finished syncing back data to the server after reconnecting. """ # one of reload, reset or shutdown mode = self.getset_restart_mode() from evennia.scripts.monitorhandler import MONITOR_HANDLER MONITOR_HANDLER.restore(mode == 'reload') from evennia.scripts.tickerhandler import TICKER_HANDLER TICKER_HANDLER.restore(mode == 'reload') # after sync is complete we force-validate all scripts # (this also starts any that didn't yet start) ScriptDB.objects.validate(init_mode=mode) # start the task handler from evennia.scripts.taskhandler import TASK_HANDLER TASK_HANDLER.load() TASK_HANDLER.create_delays() # delete the temporary setting ServerConfig.objects.conf("server_restart_mode", delete=True)
def at_post_portal_sync(self, mode): """ This is called just after the portal has finished syncing back data to the server after reconnecting. Args: mode (str): One of reload, reset or shutdown. """ from evennia.scripts.monitorhandler import MONITOR_HANDLER MONITOR_HANDLER.restore(mode == "reload") from evennia.scripts.tickerhandler import TICKER_HANDLER TICKER_HANDLER.restore(mode == "reload") # after sync is complete we force-validate all scripts # (this also starts any that didn't yet start) ScriptDB.objects.validate(init_mode=mode) # start the task handler from evennia.scripts.taskhandler import TASK_HANDLER TASK_HANDLER.load() TASK_HANDLER.create_delays() # check so default channels exist from evennia.comms.models import ChannelDB from evennia.accounts.models import AccountDB from evennia.utils.create import create_channel god_account = AccountDB.objects.get(id=1) # mudinfo mudinfo_chan = settings.CHANNEL_MUDINFO if not mudinfo_chan: raise RuntimeError("settings.CHANNEL_MUDINFO must be defined.") if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): channel = create_channel(**mudinfo_chan) channel.connect(god_account) # connectinfo connectinfo_chan = settings.CHANNEL_MUDINFO if connectinfo_chan: if not ChannelDB.objects.filter(db_key=mudinfo_chan["key"]): channel = create_channel(**connectinfo_chan) # default channels for chan_info in settings.DEFAULT_CHANNELS: if not ChannelDB.objects.filter(db_key=chan_info["key"]): channel = create_channel(**chan_info) channel.connect(god_account) # delete the temporary setting ServerConfig.objects.conf("server_restart_mode", delete=True)