@Override
  public void writeImpl(AionConnection con, ByteBuffer buf) {
    writeS(buf, legion.getLegionName());
    writeC(buf, legion.getLegionLevel());
    writeD(buf, legion.getLegionRank());
    writeC(buf, legion.getDeputyPermission1());
    writeC(buf, legion.getDeputyPermission2());
    writeC(buf, legion.getCenturionPermission1());
    writeC(buf, legion.getCenturionPermission2());
    writeC(buf, legion.getLegionaryPermission1());
    writeC(buf, legion.getLegionaryPermission2());
    writeC(buf, legion.getVolunteerPermission1());
    writeC(buf, legion.getVolunteerPermission2());
    writeD(buf, legion.getContributionPoints());
    writeD(buf, 0x00); // unk
    writeD(buf, 0x00); // unk
    writeD(buf, 0x00); // unk

    /** Get Announcements List From DB By Legion * */
    Map<Timestamp, String> announcementList = legion.getAnnouncementList().descendingMap();

    /** Show max 7 announcements * */
    int i = 0;
    for (Map.Entry<Timestamp, String> entry : announcementList.entrySet()) {
      writeS(buf, entry.getValue());
      writeD(buf, (int) (entry.getKey().getTime() / 1000));
      i++;
      if (i >= 7) break;
    }

    if (announcementList.size() > 0) writeH(buf, 0); // unk 2.5

    if (legion.getLegionEmblem().getCustomEmblemData() == null) writeH(buf, 105);
    else writeH(buf, 108);
  }