def __init__(self, ws_collector: WebSocketCollector, no_bds=False): self.ws_collector = ws_collector self.log_filter = BdsFilter() if no_bds: self.script = '' self.shell = True else: if 'linux' in sys.platform: self.script = 'cd %s \n %s' % ( get_config('bedrock_server_root'), get_config('bedrock_server_script')) self.shell = True elif 'win' in sys.platform: os.chdir( os.path.join(os.getcwd(), get_config('bedrock_server_root'))) self.script = os.path.join(os.getcwd(), get_config('bedrock_server_script')) self.shell = False self.bds = subprocess.Popen(self.script, shell=self.shell, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True, encoding='utf-8') # Keep the `save_log` running self.logger = threading.Thread(target=self.save_log) self.logger.start()
def __init__(self): self.bds_filter_enable = get_config('bds_filter_enable') == 'true' self.bds_filter_type = get_config('bds_filter_type') self.bds_filter_filters = get_config('bds_filter_filters') self.filter_sort_match = {} self.filter_sort_in = {} self.filter_ignore_match = [] self.filter_ignore_in = [] self.filter_sort_other = '' self.filters = yaml.safe_load(open( self.bds_filter_filters).read()).get(self.bds_filter_type, None) if self.filters is None: self.bds_filter_enable = False BdsLogger.put_log('filter', 'Unable to load Filters, disabled.') if self.bds_filter_enable: self.filter_sort_other = self.filters.get('sort', {}).get( 'other', 'result') self.filter_sort_match = self.filters.get('sort', {}).get('match', {}) self.filter_sort_in = self.filters.get('sort', {}).get('in', {}) self.filter_ignore_match = self.filters.get('ignore', {}).get('match', []) self.filter_ignore_in = self.filters.get('ignore', {}).get('in', [])
def run(self): self.t_in.start() if self.debug: self.app.debug = True # noinspection PyAttributeOutsideInit self.http_server = WSGIServer((get_config('web_listening_address'), int(get_config('web_listening_port'))), self.app, handler_class=WebSocketHandler) self.http_server.serve_forever()
def __init__(self, no_bds=False): self.prop_path = os.path.join( get_config('bedrock_server_root'), get_config('bedrock_server_properties') ) if no_bds: prop_str = '' else: prop_str = open(self.prop_path).read() self.prop = self.loadProp(prop_str) self.prop_old = self.exportProp(self.prop) self.prop_in_file = self.exportProp(self.prop)
def __init__(self, debug=False): self.debug = debug self.token = ''.join( random.sample(token_char, int(get_config('token_length')))) if get_config('use_the_same_token') == 'true': if os.path.isfile('.token'): self.token = open('.token').read() else: with open('.token', 'w') as f: f.write(self.token) f.close() if self.debug: self.token = 'debug'
def api_get_one_config(key: str): _c = get_config(key) if _c is None: return self.get_body(body_code=404, body_type=f'config_get_{key}', body_content=None, body_msg='No such key') else: return self.get_body(body_code=200, body_type=f'config_{key}', body_content=_c, body_msg='OK')
tokenManager = TokenManager(debug=debug) ws_collector = WebSocketCollector() prop_loader = PropertiesLoader(no_bds=debug_no_bds) bdsCore = BdsCore(no_bds=debug_no_bds, ws_collector=ws_collector) print('====================') print('>Manager Configs are:') printConfig() print('--------------------') print('>Bedrock Server Configs are:') print('\n'.join([f'{v}={prop_loader.prop[v]}' for v in prop_loader.prop])) print('====================') BdsLogger.put_log('manager', 'start') BdsLogger.put_log('manager', '%s:%s' % ( get_config('web_listening_address'), get_config('web_listening_port') )) print('>Listening at %s:%s' % ( get_config('web_listening_address'), get_config('web_listening_port') )) print('>Manager Token: %s' % tokenManager.token) app = Flask( __name__, static_url_path='/', static_folder=os.path.join(abs_dir, 'static'), template_folder=os.path.join(abs_dir, 'template')