aidenleekor/innerworld-rpg
1
1import json2import os3from datetime import datetime4 5class DataHandler:6 def __init__(self, data_dir="./"):7 self.data_dir = data_dir8 self.files = {9 "state": "state.json",10 "job": "job.json",11 "titles": "titles.json",12 "inventory": "inventory.json",13 "equipment": "equipment.json",14 "skills": "skills.json",15 "quests": "quests.json",16 "dungeons": "dungeons.json"17 }18 19 def load(self, name):20 path = os.path.join(self.data_dir, self.files[name])21 with open(path, "r", encoding="utf-8") as f:22 return json.load(f)23 24 def save(self, name, data):25 path = os.path.join(self.data_dir, self.files[name])26 with open(path, "w", encoding="utf-8") as f:27 json.dump(data, f, indent=2, ensure_ascii=False)28 29 def load_all(self):30 return {name: self.load(name) for name in self.files}31 32 def save_all(self, all_data):33 for name, data in all_data.items():34 self.save(name, data)35 36 def get_system_message(self):37 all_data = self.load_all()38 39 system_message = {40 "engine_version": all_data["state"]["engine_version"],41 "backup_timestamp": datetime.utcnow().isoformat() + "Z",42 "state": all_data["state"],43 "job": all_data["job"],44 "titles": all_data["titles"],45 "inventory": all_data["inventory"],46 "equipment": all_data["equipment"],47 "skills": all_data["skills"],48 "quests": all_data["quests"],49 "dungeons": all_data["dungeons"]50 }51 52 return f"현재 플레이어의 전체 데이터입니다:\n{json.dumps(system_message, indent=2, ensure_ascii=False)}"53 