CoolFace
Apppublic

aidenleekor/innerworld-rpg

sourceHugging Faceupdated 1y agoView on Hugging Face
1likes
data_handler.py53 linesDownload Raw Back to root
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