Example #1
0
  @Override
  public void startup() {
    frontEnd.addMailListener(
        new PlayerMailListener() {
          @Override
          public void notifyMail(Player who, Message m) {
            if (who.getAttr(Attribute.FORWARD_EMAIL).booleanValue()
                && (m.getType() == PlayerMessageType.MESSAGE)) {
              try {
                AuthService authService = frontEnd.findService(AuthService.class);
                String email = authService.getEmail(who.getPrimaryIdentity());
                if (email == null) {
                  logger.fine("Forwarding to email failed. " + who + " has no email adress.");
                  return;
                }
                logger.fine("Forwarding message for " + who + " to email " + email);

                Player sender = m.getSender(frontEnd.getGalaxy());
                String subject = m.getSubject(EMAIL_CONVERTER);
                String text = m.getText(EMAIL_CONVERTER);
                Email em = new Email(email);
                em.setSubject("[Conquer-Space.net] " + subject);
                em.setBody(
                    sender.getName() + " schreibt an " + who.getName() + ":\n\n" + text + "\n");
                frontEnd.findService(SmtpService.class).sendEmail(em);
              } catch (Exception e) {
                logger.log(Level.SEVERE, "Exception caught", e);
              }
            }
          }
        });
  }