From: MadMetzger <mad...@us...> - 2010-07-13 19:10:36
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/core/engine/db In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv7820/src/games/stendhal/server/core/engine/db Modified Files: AchievementDAO.java Log Message: add a method to read all reached achievement identifiers of a player Index: AchievementDAO.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/core/engine/db/AchievementDAO.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AchievementDAO.java 13 Jul 2010 17:50:49 -0000 1.3 --- AchievementDAO.java 13 Jul 2010 19:10:27 -0000 1.4 *************** *** 6,10 **** --- 6,12 ---- import java.sql.SQLException; import java.util.HashMap; + import java.util.HashSet; import java.util.Map; + import java.util.Set; import marauroa.server.db.DBTransaction; *************** *** 78,81 **** --- 80,100 ---- return map; } + + /** + * @param playerName + * @return set identifiers of achievements reached by playerName + * @throws SQLException + */ + public Set<String> loadAllReachedAchievementsOfPlayer(String playerName, DBTransaction transaction) throws SQLException { + Map<String, Object> params = new HashMap<String, Object>(); + params.put("playername", playerName); + String query = "SELECT identifier FROM achievement a JOIN reached_achievement ra ON ra.achievement_id = a.id WHERE ra.charname = '[playername]';"; + ResultSet resultSet = transaction.query(query, params); + Set<String> identifiers = new HashSet<String>(); + while(resultSet.next()) { + identifiers.add(resultSet.getString(0)); + } + return identifiers; + } } |