Ejemplo n.º 1
0
        /// <summary>
        /// Performs plugin cleanup logic
        /// Remove your hooks and perform general cleanup here
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                AsynchronousSocketSender.Send("ServerShutdown: true");
                //unhook
                //dispose child objects
                //set large objects to null
                ServerApi.Hooks.ServerJoin.Deregister(this, OnServerJoin);
                ServerApi.Hooks.ServerLeave.Deregister(this, OnServerLeave);
                ServerApi.Hooks.ServerChat.Deregister(this, OnServerChat);
                ServerApi.Hooks.GamePostInitialize.Deregister(this, OnGamePostInitialize);
                ServerApi.Hooks.ServerBroadcast.Deregister(this, OnServerBroadcast);


                try {
                    if (socketThread != null)
                    {
                        socketThread.Abort();
                    }
                } catch (Exception ex) {
                }
                AsynchronousSocketSender.Stop();
            }
            base.Dispose(disposing);
        }