The main interface between the proxy server and the loaded plugins
        /// <summary>
        ///   Creates a new instance of the ProxyServer class.
        /// </summary>
        public ProxyServer()
        {
            _logger = LogManager.GetLogger("Proxy Server");

            _logger.Info("Starting MineProxy.Net " + Assembly.GetExecutingAssembly ().GetName ().Version);

            ReadConfig ();
            _pluginManager = new PluginManager(this);
            _openConnection = new SynchronizedCollection<ProxyConnection> ();
            _connectedUsers = new SynchronizedCollection<ProxyConnection> ();
        }
 public override void Load(PluginManager manager)
 {
     throw new NotSupportedException ();
 }
 public override void Load(PluginManager manager)
 {
     _manager = manager;
     _listener = new ServerChangePacketListener(this);
     _manager.RegisterPacketListener(_listener);
 }
 public override void Load(PluginManager manager)
 {
     _logger.Info("Hello, World!");
 }
 /// <summary>
 ///   This message is being called once after instantiating the plugin. It is used to initialize the plugin, 
 ///   register packet listeners, or storing references to the plugin manager, or other relevant parts of the proxy server
 /// </summary>
 /// <param name="manager"> The plugin manager which loaded the plugin </param>
 public abstract void Load(PluginManager manager);