Пример #1
0
        public override void Unload()
        {
            Client.Game.SetWindowTitle(string.Empty);

            ItemHold.Clear();

            try
            {
                Plugin.OnDisconnected();
            }
            catch
            {
            }

            TargetManager.Reset();

            // special case for wmap. this allow us to save settings
            UIManager.GetGump <WorldMapGump>()?.SaveSettings();

            ProfileManager.CurrentProfile?.Save(ProfileManager.ProfilePath);

            Macros.Save();
            InfoBars.Save();
            ProfileManager.UnLoadProfile();

            StaticFilters.CleanCaveTextures();
            StaticFilters.CleanTreeTextures();

            NetClient.Socket.Disconnected -= SocketOnDisconnected;
            NetClient.Socket.Disconnect();
            _lightRenderTarget?.Dispose();
            _world_render_target?.Dispose();

            CommandManager.UnRegisterAll();
            Weather.Reset();
            UIManager.Clear();
            World.Clear();
            ChatManager.Clear();
            DelayedObjectClickManager.Clear();

            _useItemQueue?.Clear();
            _useItemQueue = null;
            Hotkeys       = null;
            Macros        = null;
            MessageManager.MessageReceived -= ChatOnMessageReceived;


            Settings.GlobalSettings.WindowSize = new Point(Client.Game.Window.ClientBounds.Width, Client.Game.Window.ClientBounds.Height);

            Settings.GlobalSettings.IsWindowMaximized = Client.Game.IsWindowMaximized();
            Client.Game.SetWindowBorderless(false);

            base.Unload();
        }
Пример #2
0
        private void ClearUI()
        {
            timerCommHolder.Stop();

            Dispatcher.BeginInvoke(new Action(() => {
                ChatMgr.SetConversationInput(false);
                AvatarImg.Source = null;
                Avatar.ClearCache();

                if (panelConnect.Visibility != Visibility.Visible)
                {
                    this.FadeIn(panelConnect.Name, new TimeSpan(0, 0, 0, 0, 500));
                }
                panelConnect.Visibility = Visibility.Visible;
                panelRoster.Visibility  = Visibility.Hidden;
                miLogout.IsEnabled      = false;
                btConnect.IsEnabled     = true;
            }), DispatcherPriority.Normal);

            ChatMgr.Clear();
            RosterMgr.Clear();
            Signals.Clear();
        }