Пример #1
0
        private Task OnGuildAvailable(SocketGuild arg)
        {
            if (AndroidInstances.TryGetValue(arg.Id, out var existing))
            {
                existing.Shutdown();
                AndroidInstances.Remove(arg.Id);
            }

            var instance = new AndroidInstance(arg.Id);

            if (AndroidStateSerialiser.Load(instance.GuildID, out var state))
            {
                foreach (var item in state.Listeners)
                {
                    item.Android = instance;
                    item.Initialise();
                }

                instance.Active = state.Active;
                instance.Listeners.AddRange(state.Listeners);
                instance.Moderation.MutesByUser = state.MutedUsers;
            }

            AndroidInstances.Add(arg.Id, instance);
            return(Task.CompletedTask);
        }
Пример #2
0
        /// <summary>
        /// Save all instances and stop everything
        /// </summary>
        public void Stop()
        {
            AndroidStateSerialiser.SaveAll(this);

            Client.LoggedOut += () =>
            {
                IsRunning = false;
                return(Task.CompletedTask);
            };

            Task.Run(Client.LogoutAsync).Wait();
            Task.Run(Client.StopAsync).Wait();
        }