public ConnectionManager()
        {
            pControl = new PlayerControl(this);
            this.Connected = false;
            this.InGame = false;
            PlayerList = new Dictionary<int, EntityPlayer>();
            player = new EntityPlayer();
            PlayerName = "";

            PacketWrite = new Queue<Packet>();
            PacketRead = new Queue<Packet>();
        }
Example #2
0
 public void HandlePacketNamedEntitySpawn(PacketNamedEntitySpawn packet)
 {
     EntityPlayer player = new EntityPlayer();
     player.name = packet.name;
     player.x = (double)packet.xPosition / 32.0;
     player.yFeet = (double)packet.yPosition / 32.0;
     player.z = (double)packet.zPosition / 32.0;
     player.yaw = (float)packet.rotation / 32.0f;
     player.pitch = (float)packet.pitch / 32.0f;
     if(!manager.PlayerList.ContainsKey(packet.entityId))
         manager.PlayerList.Add(packet.entityId, player);
 }
        public void Connect(String host, String port, String username, bool FMLserver)
        {
            this.Connected = false;
            this.InGame = false;
            this.FML = FMLserver;
            this.PlayerName = username;

            PlayerList= new Dictionary<int,EntityPlayer>();

            player = new EntityPlayer();
            player.name = username;

            PacketWrite = new Queue<Packet>();
            PacketRead = new Queue<Packet>();
            try
            {
                IPAddress ServerIP = IPAddress.Parse(host);
                int ServerPort = Convert.ToInt32(port);
                IPEndPoint Dest = new IPEndPoint(ServerIP, ServerPort);
                Client = new TcpClient();
                Client.Connect(ServerIP, ServerPort);
                if (Client.Connected == false)
                {
                    CustomLib.putsc("Server is unavailible!\n", Color.Aquamarine);
                    this.Dispose();
                    return;
                }

                NetworkStream Channel = Client.GetStream();
                input = new BinaryReader(Channel);
                output = new BinaryWriter(new BufferedStream(Channel, 5120));
                this.Connected = true;

                Thread.Sleep(100);

                threadin = new Timer(StartIn, this, 300, Timeout.Infinite);
                threadupdate = new Timer(StartUpdate, this, 300, Timeout.Infinite);

                AddToSendingQueue(new PacketHandshake(78, this.PlayerName, ServerIP.ToString(), ServerPort));
                Console.WriteLine("Sending handshake...");
                MainLoop();

                CustomLib.putsc("Connection closed..\n", Color.Aquamarine);
                this.Dispose();
            }
            catch (ThreadAbortException ex)
            {

            }
            catch (SocketException ex)
            {
                Console.WriteLine("Socket Exception: " + ex.ToString());
                CustomLib.putsc("Server is unavailible!\n",Color.Aquamarine);
                this.Dispose();
            }
            catch (IOException ex)
            {
                Console.WriteLine("IO Exception: " + ex.ToString());
                this.Dispose();
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex);
                Console.WriteLine("Exception: " + ex.ToString());
                this.Dispose();
            }
        }
        private void Dispose()
        {
            this.InGame = false;
            this.Connected = false;

            player = new EntityPlayer();
            PlayerList.Clear();
            PacketWrite.Clear();
            PacketRead.Clear();

            Thread.Sleep(100);

            threadin.Dispose();
            threadupdate.Dispose();

            if(Client.Connected)
                Client.GetStream().Dispose();
            Client.Close();

            Thread.Sleep(1400);
            this.RaiseDisconnectEvent();
        }
 public void RaisePlayerRemoveEvent(EntityPlayer[] a)
 {
     onPlayerRemove(a);
 }
 public void RaiseNewPlayerEvent(EntityPlayer a)
 {
     onNewPlayer(a);
 }