MCPcopy Create free account
hub / github.com/MCSLTeam/MCSL2 / initializeMCSL2

Function initializeMCSL2

MCSL2Lib/utils.py:70–176  ·  view source on GitHub ↗

初始化程序

()

Source from the content-addressed store, hash-verified

68
69
70def initializeMCSL2():
71 """
72 初始化程序
73 """
74
75 folders = [
76 "Servers",
77 "Plugins",
78 "MCSL2",
79 "MCSL2/Downloads",
80 "MCSL2/Logs",
81 ]
82 for folder in folders:
83 if not osp.exists(folder):
84 makedirs(folder, exist_ok=True)
85 del folders
86
87 if not osp.exists(r"./MCSL2/MCSL2_ServerList.json"):
88 globalServerList = {"MCSLServerList": []}
89 writeFile(r"./MCSL2/MCSL2_ServerList.json", '{\n "MCSLServerList": [\n\n ]\n}')
90 else:
91 globalServerList = loads(readFile(r"MCSL2/MCSL2_ServerList.json"))
92
93 needs_save = False
94
95 # scan Server folder to add missing server configs or update changed ones
96 serverFolder = r"./Servers"
97 existing_keys: Set[Tuple[Optional[str], Optional[str]]] = set()
98 for root, _, files in os.walk(serverFolder):
99 for file in files:
100 if file == "MCSL2ServerConfig.json":
101 with open(os.path.join(root, file), "r", encoding="utf-8") as f:
102 try:
103 singleConfig = loads(f.read())
104 except Exception:
105 MCSL2Logger.error(
106 f"读取服务器配置文件失败: {os.path.join(root, file)},请检查文件格式是否正确。" # noqa: E501
107 )
108 continue
109
110 key = (singleConfig.get("name"), singleConfig.get("core_file_name"))
111 existing_keys.add(key)
112 index = find_server_config_index(globalServerList["MCSLServerList"], singleConfig)
113 if index is None:
114 globalServerList["MCSLServerList"].append(singleConfig)
115 needs_save = True
116 MCSL2Logger.warning(
117 "扫描到不在全局配置中的服务器,已自动添加: {"
118 + (
119 f'"name": "{singleConfig["name"]}", '
120 f'"core_file_name": "{singleConfig["core_file_name"]}"'
121 )
122 + "}"
123 )
124 else:
125 existing = globalServerList["MCSLServerList"][index]
126 if not deep_compare_server_config(existing, singleConfig):
127 globalServerList["MCSLServerList"][index] = singleConfig

Callers 1

MCSL2.pyFile · 0.90

Calls 10

writeFileFunction · 0.85
readFileFunction · 0.85
find_server_config_indexFunction · 0.85
readMethod · 0.80
warningMethod · 0.80
infoMethod · 0.80
errorMethod · 0.45
getMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected