message: Add support for /room/.../event/.. for replies
diff: @@ -1512,14 +1512,22 @@ MatrixHandler.prototype._textForReplyEvent = Promise.coroutine(function*(event,
  if (match.length === 4) {
  let rplName;
  let rplSource;
  + const rplText = match[3];
  if (this._eventCache.has(eventId)) {
  rplName = this._eventCache.get(eventId).sender;
  rplSource = this._eventCache.get(eventId).body;
  }
  else {
  - // Fallback to what the event says if we can't find a body.
  - rplName = match[1];
  - rplSource = match[2].trim();
  + // Fallback to fetching from the homeserver.
  + try {
  + const eventContent = yield this.ircBridge.getAppServiceBridge().getIntent().getEvent(event.room_id, eventId);
  + rplName = eventContent.sender;
  + rplSource = eventContent.body.substr(0, REPLY_SOURCE_MAX_LENGTH);
  + this._eventCache.set(eventId, {sender: rplName, body: rplSource});
  + } catch (err) {
  + // If we couldn't find the event, then frankly we can't trust it and we won't treat it as a reply.
  + return rplText;
  + }
  }
  // Get the first non-blank line from the source.
  @@ -1551,7 +1559,6 @@ MatrixHandler.prototype._textForReplyEvent = Promise.coroutine(function*(event,
  );
  }
  - const rplText = match[3];
  return `<${rplName}${rplSource}> ${rplText}`;
  }
  });
  