Skip to content

Commit 06a7a8f

Browse files
committed
BUGFIX:
- MizEdit: initialization of presets could fail on already started servers
1 parent 4191051 commit 06a7a8f

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

extensions/mizedit/extension.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import random
55
import re
66

7-
from core import Extension, utils, Server, YAMLError, DEFAULT_TAG, MizFile, ServerImpl
7+
from core import Extension, utils, Server, YAMLError, DEFAULT_TAG, MizFile, ServerImpl, Status
88
from datetime import datetime
99
from extensions.realweather import RealWeather
1010
from pathlib import Path
@@ -24,21 +24,32 @@
2424

2525
class MizEdit(Extension):
2626

27-
async def prepare(self) -> bool:
27+
def __init__(self, server: Server, config: dict):
28+
super().__init__(server, config)
29+
if server.status != Status.SHUTDOWN:
30+
self.presets = self._init_presets()
31+
else:
32+
self.presets = {}
33+
34+
def _init_presets(self):
2835
presets_file = self.config.get('presets', os.path.join(self.node.config_dir, 'presets.yaml'))
29-
self.presets = {}
36+
presets = {}
3037
if not isinstance(presets_file, list):
3138
presets_file = [presets_file]
3239
for file in presets_file:
3340
try:
34-
self.presets |= yaml.load(Path(file).read_text(encoding='utf-8'))
35-
if not isinstance(self.presets, dict):
41+
presets |= yaml.load(Path(file).read_text(encoding='utf-8'))
42+
if not isinstance(presets, dict):
3643
raise ValueError("File must contain a dictionary, not a list!")
3744
except FileNotFoundError:
3845
self.log.error(f"MizEdit: File {file} not found!")
3946
continue
4047
except (MarkedYAMLError, ValueError) as ex:
4148
raise YAMLError(file, ex)
49+
return presets
50+
51+
async def prepare(self) -> bool:
52+
self.presets = self._init_presets()
4253
return await super().prepare()
4354

4455
async def get_presets(self, config: dict) -> list[dict]:

0 commit comments

Comments
 (0)