@Override
  public void fromBytes(final ByteBuf stream) {
    // Read the id
    short id = stream.readShort();
    if (id == -1) {
      // Invalid packet
      ThELog.warning("Unknown packet detected");
      return;
    }

    // Get the class for that id
    Class epClass = NetworkHandler.getPacketClassFromID(id);
    if (epClass == null) {
      return;
    }

    // Construct the class
    try {
      this.embeddedPacket = (ThEBasePacket) epClass.newInstance();

      // Pass to packet
      this.embeddedPacket.fromBytes(stream);
    } catch (Exception e) {
      // Packet did not have default constructor
      ThELog.warning("Unable to construct packet %s", epClass.getCanonicalName());
    }
  }