Ejemplo n.º 1
0
 /// <summary>
 /// Sends a packet to the server.
 /// </summary>
 /// <param name='p'>
 /// The packet to send.
 /// </param>
 /// <exception cref='ArgumentException'>
 /// Is thrown when the packet passed in cannot be written to a client.
 /// </exception>
 public void SendPacket(Packet p)
 {
     if (!p.CanWrite)
     {
         throw new ArgumentException("Packet (ID: " + p.PacketID + ") cannot be written!");
     }
     try
     {
         Write(p.PacketID);
         p.Write(this);
     }
     catch (Exception e)
     {
         Logger.Log(Logger.Level.Error, "Failed to send packet to " + IP + ":");
         Logger.Log(Logger.Level.Error, e.ToString());
         try
         {
             PacketDisconnect d = new PacketDisconnect();
             d.Reason = "Internal server error!";
             Write(d.PacketID);
             d.Write(this);
         }
         catch (Exception)
         {
         }
         Close();
     }
 }
Ejemplo n.º 2
0
 public bool RecvPacket(Packet p)
 {
     try
     {
         if (p is PacketAuthRequest)
         {
             return(RecvPacket(p as PacketAuthRequest));
         }
         else if (p is PacketPlayerJoin)
         {
             return(RecvPacket(p as PacketPlayerJoin));
         }
         else if (p is PacketPlayerLeave)
         {
             return(RecvPacket(p as PacketPlayerLeave));
         }
         else if (p is PacketLogMessage)
         {
             return(RecvPacket(p as PacketLogMessage));
         }
         else if (p is PacketStatusPing)
         {
             return(RecvPacket(p as PacketStatusPing));
         }
         else if (p is PacketDisconnect)
         {
             return(RecvPacket(p as PacketDisconnect));
         }
         else
         {
             Disconnect("Packet not implemented yet!");
             return(false);
         }
     }
     catch (Exception e)
     {
         if (Identity == null)
         {
             Logger.Log(Logger.Level.Error, "Failed to receive packet from " + IP + ":");
         }
         else
         {
             Logger.Log(Logger.Level.Error, "Failed to receive packet from " + Identity.ServerName + ":");
         }
         Logger.Log(Logger.Level.Error, e.ToString());
         try
         {
             PacketDisconnect d = new PacketDisconnect();
             d.Reason = "Internal server error!";
             Write(d.PacketID);
             d.Write(this);
         }
         catch (Exception)
         {
         }
         Close();
         return(false);
     }
 }