public final boolean increaseCapacity(boolean trueMax) {
        if (capacity >= (trueMax ? 200 : 100) || ((capacity + 5) > (trueMax ? 200 : 100))) {
            return false;
        }
        if (trueMax && gp < 25000) {
            return false;
        }
        if (trueMax && gp - 25000 < GameConstants.getGuildExpNeededForLevel(getLevel() - 1)) {
            return false;
        }
        capacity += 5;
        broadcast(GuildPacket.guildCapacityChange(this.id, this.capacity));

        try {
            Connection con = DatabaseConnection.getConnection();
            try (PreparedStatement ps = con.prepareStatement("UPDATE guilds SET capacity = ? WHERE guildid = ?")) {
                ps.setInt(1, this.capacity);
                ps.setInt(2, this.id);
                ps.execute();
            }
        } catch (SQLException e) {
            System.err.println("Saving guild capacity ERROR");
        }
        return true;
    }