public MapleAlliance(MapleClient c, int id) {
	guilds = new ArrayList<MapleGuild>();
	this.id = id;

	try {
	    Connection con = DatabaseConnection.getConnection();
	    PreparedStatement ps = con.prepareStatement("SELECT * FROM alliances WHERE id = ? ");
	    ps.setInt(1, id);
	    ResultSet rs = ps.executeQuery();

	    if (!rs.first()) { // no result... most likely to be someone from a disbanded alliance that got rolled back
		rs.close();
		ps.close();
		return;
	    }
	    notice = rs.getString("notice");
	    name = rs.getString("name");

	    for (int i = 1; i <= 5; i++) {
		guildId[i] = rs.getInt("guild" + i);
		rankTitles[i - 1] = rs.getString("rank" + i);
	    }
	    rs.close();
	    ps.close();
	} catch (SQLException ex) {
	    System.err.println("loading Guild info failed " + ex);
	}

	for (int i = 1; i <= 5; i++) {
	    if (guildId[i] != 0) {
		if (c != null && guildId[i] == c.getPlayer().getGuildId()) {
		    try {
			guilds.add(c.getChannelServer().getWorldInterface().getGuild(guildId[i], c.getPlayer().getMGC()));
		    } catch (RemoteException e) {
			c.getChannelServer().reconnectWorld();
		    }
		} else {
		    guilds.add(new MapleGuild(guildId[i]));
		}
	    } else {
		guilds.add(null);
	    }
	}
    }