Exemplo n.º 1
0
        public static void SetData <T>(this BaseDiscordCommand command, string name, T data)
        {
            if (!Directory.Exists(configDataPath))
            {
                Directory.CreateDirectory(configDataPath);
            }

            Dictionary <string, object> dataStore = new Dictionary <string, object>();
            string assemblyName = command.GetType().Assembly.GetName().Name;
            string filePath     = Path.Combine(configDataPath, $"{assemblyName}.json");

            if (dataCache.TryGetValue(assemblyName, out dataStore))
            {
                dataStore[name]         = data;
                dataCache[assemblyName] = dataStore;
            }
            else
            {
                if (File.Exists(filePath))
                {
                    dataStore               = JsonConvert.DeserializeObject <Dictionary <string, object> >(File.ReadAllText(filePath));
                    dataStore[name]         = data;
                    dataCache[assemblyName] = dataStore;
                }
                else
                {
                    File.WriteAllText(filePath, JsonConvert.SerializeObject(dataStore, Formatting.Indented));
                    dataStore[name]         = data;
                    dataCache[assemblyName] = dataStore;
                }
            }
        }
Exemplo n.º 2
0
        public static T GetData <T>(this BaseDiscordCommand command, string name)
        {
            if (!Directory.Exists(configDataPath))
            {
                Directory.CreateDirectory(configDataPath);
            }

            Dictionary <string, object> data = new Dictionary <string, object>();
            string assemblyName = command.GetType().Assembly.GetName().Name;
            string filePath     = Path.Combine(configDataPath, $"{assemblyName}.json");

            if (dataCache.TryGetValue(assemblyName, out data))
            {
                return(GetFromDictionary <T>(name, data));
            }
            else
            {
                if (File.Exists(filePath))
                {
                    data = JsonConvert.DeserializeObject <Dictionary <string, object> >(File.ReadAllText(filePath));
                    dataCache[assemblyName] = data;
                    return(GetFromDictionary <T>(name, data));
                }
                else
                {
                    data = new Dictionary <string, object>();
                    File.WriteAllText(filePath, JsonConvert.SerializeObject(data));
                    return(GetFromDictionary <T>(name, data));
                }
            }
        }