from lampost.di.app import on_app_start from lampost.di.resource import Injected, module_inject from lampost.db.exceptions import DataError from lampost.editor.editor import Editor from lampost.server.link import link_route from lampost.util.encrypt import make_hash log = Injected('log') ev = Injected('dispatcher') db = Injected('datastore') perm = Injected('perm') um = Injected('user_manager') edit_update = Injected('edit_update_service') module_inject(__name__) @on_app_start def _start(): ev.register('imm_update', _imm_update) class EditorImmortal(): def __init__(self, player): self.edit_dto = { 'dbo_key_type': 'immortal', 'dbo_id': player.dbo_id, 'imm_level': player.imm_level } def can_write(self, *_): return False
from lampost.di.config import ConfigVal from lampost.di.resource import Injected, module_inject from lampost.db.registry import get_dbo_class from lampost.db.exceptions import DataError from lampost.editor.editor import Editor, ChildrenEditor from lampmud.env.movement import Direction log = Injected('log') db = Injected('datastore') perm = Injected('perm') ev = Injected('dispatcher') edit_update = Injected('edit_update_service') module_inject(__name__) root_area_id = ConfigVal('root_area_id') default_start_room = ConfigVal('default_start_room') class AreaEditor(Editor): def __init__(self): super().__init__('area') def _pre_create(self, obj_def, *_): if db.object_exists('player', obj_def['dbo_id']): raise DataError("Area name should not match any player name.") def _pre_delete(self, del_obj, session): if del_obj.dbo_id == root_area_id: raise DataError("Cannot delete root area.")
def exec_module(self, module): super().exec_module(module) module_inject(module.__name__)