def apply_changes(request): """ Apply the game world's data. """ try: # reload localized strings LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings CLIENT_SETTINGS.reset() client_settings = CLIENT_SETTINGS.all_values() client_settings["game_name"] = GAME_SETTINGS.get("game_name") client_settings["show_social_box"] = not GAME_SETTINGS.get("solo_mode") text = json.dumps({"settings": client_settings}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all(" Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: message = "Can't build world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message})
def apply_changes(request): """ Apply the game world's data. """ try: # load system localized strings importer.import_system_localized_strings(settings.LANGUAGE_CODE) # reload localized strings LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings CLIENT_SETTINGS.reset() text = json.dumps({"settings": CLIENT_SETTINGS.all_values()}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all(" Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: message = "Can't build world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message})
def func(self, args, request): try: # reload system data # import_syetem_data() # reload localized strings # LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings client_settings = GAME_SETTINGS.get_client_settings() text = json.dumps({"settings": client_settings}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all("Server restarting ...") SESSIONS.portal_restart_server() except Exception as e: message = "Can not build the world: %s" % e logger.log_tracemsg(message) raise MudderyError(ERR.build_world_error, message) return success_response("success")
def finish_event(self, event): loc = self.get_event_location(event) if loc: try: loc.stop_event_logging() except AttributeError: loc.db.current_event = None loc.msg_contents("{rEvent logging is now off for this room.{n") loc.tags.remove("logging event") end_str = "%s has ended at %s." % (event.name, loc.name) else: end_str = "%s has ended." % event.name if event.public_event: SESSIONS.announce_all(end_str) else: if loc: loc.msg_contents(end_str) event.finished = True event.clear_room() event.save() if event.id in self.db.active_events: self.db.active_events.remove(event.id) if event.id in self.db.idle_events: del self.db.idle_events[event.id] self.do_awards(event) # noinspection PyBroadException self.delete_event_post(event)
def func(self): "Implements command" if not self.args: self.caller.msg("Usage: @wall <message>") return message = "%s shouts \"%s\"" % (self.caller.name, self.args) self.msg("Announcing to all connected players ...") SESSIONS.announce_all(message)
def func(self): """Implements command""" if not self.args: self.caller.msg("Usage: wall <message>") return message = '%s shouts "%s"' % (self.caller.name, self.args) self.msg("Announcing to all connected sessions ...") SESSIONS.announce_all(message)
def func(self): """Implements command""" if not self.args: self.caller.msg("Usage: @wall <message>") return message = "%s shouts \"%s\"" % (self.caller.name, self.args) self.msg("Announcing to all connected players ...") SESSIONS.announce_all(message)
def func(self): """Implements command""" if not self.args: self.caller.msg('Usage: {} <message>'.format(self.cmdstring)) return message = '### %s%s|n shouts "|w%s|n"' % (self.caller.STYLE, self.caller.name, self.args) self.msg("Announcing to all connections ...") SESSIONS.announce_all(message)
def func(self): """ Reload the system. """ reason = "" if self.args: reason = "(Reason: %s) " % self.args.rstrip(".") SESSIONS.announce_all(" Time slows as Ashlan mauls the fabric of reality...") SESSIONS.server.shutdown(mode='reload')
def func(self): """ Reload the system. """ reason = "" if self.args: reason = "(Reason: %s) " % self.args.rstrip(".") SESSIONS.announce_all(" Server restart initiated %s..." % reason) SESSIONS.portal_restart_server()
def announce_upcoming_event(event, diff): mins = int(diff / 60) secs = diff % 60 announce_msg = "{wEvent: '%s'(#%s) will start in %s minutes and %s seconds.{n" % ( event.name, event.id, mins, secs) if event.public_event: SESSIONS.announce_all(announce_msg) else: event.make_announcement(announce_msg)
def func(self): """ Reload the system. """ reason = "" if self.args: reason = "(Reason: %s) " % self.args.rstrip(".") SESSIONS.announce_all(" Server restart initiated %s..." % reason) SESSIONS.server.shutdown(mode='reload')
def at_post_puppet(self): self.location.msg_contents("%s has connected" % self.key) loginmsg = "[************--Rumour Monger--************]|/" \ "%s arrives in Mercadia.|/" \ "[*****************************************]|/" % self.key SESSIONS.announce_all(loginmsg) tickerhandler.add(interval=randint(10, 15), callback=self.at_regen, persistent=True) self.execute_cmd("look")
def func(self): """Define function""" # Only allow shutdown if caller has session if not self.caller.sessions.get(): return self.msg("Shutting down server ...") announcement = "\nServer is being SHUT DOWN!\n" if self.args: announcement += "%s\n" % self.args logger.log_info("Server shutdown by %s." % self.caller.name) SESSIONS.announce_all(announcement) SESSIONS.portal_shutdown()
def at_repeat(self): """ Called every minute to update the timers. """ if self.check_event(): # check if we've been tagged to not reset next time we run self.do_weekly_events() else: hour = timedelta(minutes=65) if self.time_remaining < hour: from evennia.server.sessionhandler import SESSIONS cron_msg = "{wReminder: Weekly Updates will be running in about an hour.{n" SESSIONS.announce_all(cron_msg)
def func(self): """Define function""" # Only allow shutdown if caller has session if not self.caller.sessions.get(): return self.msg('Shutting down server ...') announcement = "\nServer is being SHUT DOWN!\n" if self.args: announcement += "%s\n" % self.args logger.log_info('Server shutdown by %s.' % self.caller.name) SESSIONS.announce_all(announcement) SESSIONS.server.shutdown(mode='shutdown') SESSIONS.portal_shutdown()
def apply_changes(request): """ Apply the game world's data. """ try: # rebuild the world build_all() # reload SESSIONS.announce_all(" Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: ostring = "Can't build world: %s" % e logger.log_tracemsg(ostring) raise http.HttpResponseServerError(ostring)
def func(self): "Define function" try: # Only allow shutdown if caller has session self.caller.sessions[0] except Exception: return self.msg('Shutting down server ...') announcement = "\nServer is being SHUT DOWN!\n" if self.args: announcement += "%s\n" % self.args logger.log_infomsg('Server shutdown by %s.' % self.caller.name) SESSIONS.announce_all(announcement) SESSIONS.server.shutdown(mode='shutdown') SESSIONS.portal_shutdown()
def start_event(self, event, location=None): # see if this was called from callLater, and if so, remove reference to it if event.id in self.db.pending_start: del self.db.pending_start[event.id] # if we've already started, do nothing. Can happen due to queue if event.id in self.db.active_events: return # announce event start if location: loc = location else: loc = self.get_event_location(event) if loc: # set up event logging, tag room loc.start_event_logging(event) start_str = "%s has started at %s." % (event.name, loc.name) if loc != event.location: event.location = loc event.save() else: start_str = "%s has started." % event.name if event.public_event: border = "{w***********************************************************{n\n" start_str = border + start_str + "\n" + border SESSIONS.announce_all(start_str) elif event.location: try: event.location.msg_contents(start_str, options={'box': True}) except Exception: pass self.db.active_events.append(event.id) self.db.idle_events[event.id] = 0 now = time_now() if now < event.date: # if we were forced to start early, update our date event.date = now event.save() # set up log for event open_logs = self.ndb.open_logs or [] open_gm_logs = self.ndb.open_gm_logs or [] # noinspection PyBroadException with open(self.get_log_path(event.id), 'a+') as log: open_logs.append(log) with open(self.get_gmlog_path(event.id), 'a+') as gmlog: open_gm_logs.append(gmlog) self.ndb.open_logs = open_logs self.ndb.open_gm_logs = open_gm_logs
def announce_upcoming_event(event, diff): mins = int(diff / 60) secs = diff % 60 announce_msg = "{wEvent: '%s'(#%s) will start in %s minutes and %s seconds.{n" % ( event.name, event.id, mins, secs) if event.public_event: SESSIONS.announce_all(announce_msg) else: announce_msg = "{y(Private Message) " + announce_msg for ob in event.dompcs.all(): try: ob.player.msg(announce_msg) except AttributeError: continue if event.location is None: if event.plotroom is not None: event.create_room()
def apply_changes(request): """ Apply the game world's data. """ try: # rebuild the world build_all() # send client settings CLIENT_SETTINGS.reset() text = json.dumps({"settings": CLIENT_SETTINGS.all_values()}) SESSIONS.announce_all(text) # reload SESSIONS.announce_all(" Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: message = "Can't build world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message})
def apply_changes(request): """ Apply the game world's data. """ try: # reload localized strings LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings client_settings = GAME_SETTINGS.get_client_settings() text = json.dumps({"settings": client_settings}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all(" Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: message = "Can't build world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message})
def func(self, args, request): try: # reload system data # import_syetem_data() # reload localized strings # LOCALIZED_STRINGS_HANDLER.reload() # reload data WorldData.reload() # rebuild the world build_all() # restart the server SESSIONS.announce_all("Server restarting ...") SESSIONS.portal_restart_server() except Exception as e: message = "Can not build the world: %s" % e logger.log_tracemsg(message) raise MudderyError(ERR.build_world_error, message) return success_response("success")
def func(self, args, request): try: # reload system data # import_syetem_data() # reload localized strings # LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings client_settings = GAME_SETTINGS.get_client_settings() text = json.dumps({"settings": client_settings}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all("Server restarting ...") SESSIONS.portal_restart_server() except Exception, e: message = "Can not build the world: %s" % e logger.log_tracemsg(message) raise MudderyError(ERR.build_world_error, message)
def at_after_traverse(self,traverser,source_location): traverser.db.nation = str(self.db.nation) if traverser.db.nation == "Kingdom": message = "|/ |555************[|315WORLD CRIER|555]**************|n|/|/" \ " %s joins the game|/" \ " |035Starting in the Kingdom of Iusticia|/|/ " \ " |555***************************************|/" % (traverser) SESSIONS.announce_all(message) if traverser.db.nation == "Caliphate": message = "|/ |555************[|315WORLD CRIER|555]**************|n|/|/" \ " %s joins the game|/" \ " |500Starting in the Caliphate of Ashran|/|/" \ " |555***************************************|/" % (traverser) SESSIONS.announce_all(message) if traverser.db.nation == "Empire": message = " |555************[|315WORLD CRIER|555]**************|n|/|/" \ " %s joins the game|/" \ " |030Starting in the Empire of Kosun|/|/" \ " |555***************************************|/" % (traverser) SESSIONS.announce_all(message)
def func(self): """ Reload the system. """ SESSIONS.announce_all(" Server resetting/restarting ...") SESSIONS.server.shutdown(mode='reset')
logger.log_tracemsg(err_message) try: # reload system data import_syetem_data() # reload localized strings LOCALIZED_STRINGS_HANDLER.reload() # rebuild the world build_all() # send client settings client_settings = GAME_SETTINGS.get_client_settings() text = json.dumps({"settings": client_settings}) SESSIONS.announce_all(text) # restart the server SESSIONS.announce_all("Server restarting ...") SESSIONS.server.shutdown(mode='reload') except Exception, e: message = "Can't build world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message}) return render(request, 'success.html', {"message": _("Data applied. Please wait the server restart.")}) @staff_member_required def editor(request): """
def msg_global(message): """Send msg to all connected sessions.""" # TODO: do we want to use public (or global) channel instead? if not message.startswith("|"): message = "|w" + message SESSIONS.announce_all(message)
def func(self): """ Reload the system. """ SESSIONS.announce_all(" Time slows as Ashlan mauls the fabric of reality...") SESSIONS.server.shutdown(mode='reset')
def attack(caller, target): "Returns a random one-handed sword attack message." d3 = randint(1,3) if d3 == 1: message_t = caller.db.attack_message_1 + " you!" message_r = caller.db.attack_message_1 + " %s!" % target.name armor_block = 100 - target.db.armor_bonus armor_block = float(armor_block) / 100 damage_amount = caller.db.damage_amount damage_amount = damage_amount * armor_block damage_amount = int(damage_amount) target.db.health = target.db.health - damage_amount target.msg(message_t) target.location.msg_contents(message_r, exclude=target) if target.db.health <= 0: target.db.health = 0 string = "|m%s has been slain by %s.|n" % (target.name, caller.name) SESSIONS.announce_all(string) rules.death_movement(caller, target) elif d3 == 2: message_t = caller.db.attack_message_2 + " you!" message_r = caller.db.attack_message_2 + " %s!" % target.name armor_block = 100 - target.db.armor_bonus armor_block = float(armor_block) / 100 damage_amount = caller.db.damage_amount * 2 damage_amount = damage_amount * armor_block damage_amount = int(damage_amount) target.db.health = target.db.health - damage_amount target.msg(message_t) target.location.msg_contents(message_r, exclude=target) if target.db.health <= 0: target.db.health = 0 string = "|m%s has been slain by %s.|n" % (target.name, caller.name) SESSIONS.announce_all(string) rules.death_movement(caller, target) elif d3 == 3: message_t = caller.db.attack_message_3 + " you!" message_r = caller.db.attack_message_3 + " %s!" % target.name armor_block = 100 - target.db.armor_bonus armor_block = float(armor_block) / 100 damage_amount = caller.db.damage_amount * 3 damage_amount = damage_amount * armor_block damage_amount = int(damage_amount) target.db.health = target.db.health - damage_amount target.msg(message_t) target.location.msg_contents(message_r, exclude=target) if target.db.health <= 0: target.db.health = 0 string = "|m%s has been slain by %s.|n" % (target.name, caller.name) SESSIONS.announce_all(string) rules.death_movement(caller, target) if (float(target.db.health) / float(target.db.max_health)) > 0.80: prompt_hp_color = "|g" elif (float(target.db.health) / float(target.db.max_health)) > 0.36: prompt_hp_color = "|y" else: prompt_hp_color = "|r" if target.db.stamina > 6: prompt_stamina_color = "|g" elif target.db.stamina > 3: prompt_stamina_color = "|y" else: prompt_stamina_color = "|r" prompt = "%sHealth|n: %s%s|n - |gMagic|n: |nAsleep|n - %sStamina|n: %s%s." % (prompt_hp_color, prompt_hp_color, target.db.health, prompt_stamina_color, prompt_stamina_color, target.db.stamina) target.msg(prompt)
def func(self): """ Reload the system. """ SESSIONS.announce_all(" Server resetting/restarting ...") SESSIONS.portal_reset_server()