def configure_log(enable_packet_debug=False, enable_world_debug=False, enable_generator_debug=False, disable_chunk_debug=False) -> None: log_file_name = 'server.log' backup_count = 10 max_bytes = 1 # MB import os def remove_file(path: str): try: os.remove(path) except FileNotFoundError: pass remove_file(log_file_name) for i in range(backup_count): remove_file('{}.{}'.format(log_file_name, i + 1)) from logging.handlers import RotatingFileHandler stream = logging.StreamHandler() stream.setLevel(logging.INFO) file = RotatingFileHandler(log_file_name, mode='w', maxBytes=int(max_bytes * 1024 * 1024), backupCount=backup_count, encoding='utf-8') file.setLevel(logging.DEBUG) logging.basicConfig(level=logging.INFO, handlers=(stream, file)) levels = {} if enable_packet_debug: levels['pyminehub.raknet.protocol'] = logging.DEBUG levels['pyminehub.raknet.session'] = logging.DEBUG levels['pyminehub.mcpe.network.handler'] = logging.DEBUG levels['pyminehub.mcpe.network.queue'] = logging.DEBUG levels['pyminehub.raknet.sending'] = logging.DEBUG if enable_world_debug: levels['pyminehub.mcpe.world.server'] = logging.DEBUG if enable_generator_debug: levels['pyminehub.mcpe.plugin.default.generator'] = logging.DEBUG if len(levels) > 0: from pyminehub.config import set_config set_config(max_log_length=None) for name, level in levels.items(): logging.getLogger(name).setLevel(level) if disable_chunk_debug: def log_filter(record) -> bool: packet_str = str(record.args[0]) return not packet_str.startswith( 'EventFullChunkLoaded') and not packet_str.startswith( 'ActionRequestChunk') logging.getLogger('pyminehub.mcpe.world.server').addFilter(log_filter)
def setUp(self): set_config(spawn_mob=False, player_spawn_position=(0, 0, 0)) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) registry = CommandRegistry() registry.register_command_processor(CommandProcessor()) store = MockDataStore() proxy = run_world(store, PluginLoader('', registry)) self._handler = MCPEServerHandler(proxy, registry)
def setUp(self) -> None: if self._testMethodName not in type(self).__dict__: self.skipTest('This test is defined in super class.') set_config(spawn_mob=False, clock_time=-4800, game_mode='CREATIVE') loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) self._world = run(MockDataStore(), get_plugin_loader()) self._players = []
def setUp(self) -> None: set_config(server_guid=1326711636852997873) super().setUp()
def setUp(self) -> None: set_config(spawn_mob=False, clock_time=-4800) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) self._world = run(MockDataStore(), get_plugin_loader()) self._players = []