Пример #1
0
 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()
Пример #2
0
    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', [])
Пример #3
0
 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)
Пример #5
0
 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'
Пример #6
0
 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')
Пример #7
0
    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')