From bbf16d805852de84f0d324e667828662e9d8a604 Mon Sep 17 00:00:00 2001 From: riking Date: Wed, 31 Jul 2013 18:05:05 -0700 Subject: [PATCH] Move duplicate player checks to checkStructure() --- .../nossr50/database/FlatfileDatabaseManager.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java index 8cf21b833..8226f8771 100644 --- a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java +++ b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -497,20 +498,12 @@ public final class FlatfileDatabaseManager implements DatabaseManager { try { in = new BufferedReader(new FileReader(usersFilePath)); String line = ""; - ArrayList players = new ArrayList(); while ((line = in.readLine()) != null) { String[] data = line.split(":"); String playerName = data[0]; int powerLevel = 0; - // Prevent the same player from being added multiple times (I'd like to note that this shouldn't happen...) - if (players.contains(playerName)) { - continue; - } - - players.add(playerName); - Map skills = getSkillMapFromLine(data); powerLevel += putStat(acrobatics, playerName, skills.get(SkillType.ACROBATICS)); @@ -581,6 +574,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager { in = new BufferedReader(new FileReader(usersFilePath)); StringBuilder writer = new StringBuilder(); String line = ""; + HashSet players = new HashSet(); while ((line = in.readLine()) != null) { // Length checks depend on last character being ':' @@ -589,6 +583,11 @@ public final class FlatfileDatabaseManager implements DatabaseManager { } String[] character = line.split(":"); + // Prevent the same player from being present multiple times + if (!players.add(character[0])) { + continue; + } + // If they're valid, rewrite them to the file. if (character.length > 38) { writer.append(line).append("\r\n");