/// <summary>
        /// Load an instance by guild ID from the state files
        /// </summary>
        /// <param name="ID">guild ID</param>
        /// <param name="result">resulting state</param>
        /// <returns>Was the operation successful?</returns>
        public static bool Load(ulong ID, out AndroidState result)
        {
            result = default;
            var fullpath = GetPath(ID);

            if (!File.Exists(fullpath))
            {
                return(false);
            }

            var json = File.ReadAllText(fullpath);

            result = JsonConvert.DeserializeObject <AndroidState>(json, serializerSettings);

            return(true);
        }
        /// <summary>
        /// Save an instance to the state files
        /// </summary>
        /// <param name="instance"></param>
        public static void Save(AndroidInstance instance)
        {
            if (!Directory.Exists(BasePath))
            {
                Directory.CreateDirectory(BasePath);
            }

            var path = GetPath(instance.GuildID);

            AndroidState state = new AndroidState
            {
                Listeners  = instance.Listeners,
                MutedUsers = instance.Moderation.MutesByUser,
                Active     = instance.Active
            };

            var json = JsonConvert.SerializeObject(state, serializerSettings);

            File.WriteAllText(path, json);
        }