diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java index 33ba98a243..79c9a61e1f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.logging.Level; @@ -75,16 +76,36 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame while (set.size() > 1) { - playerOneObjectId = getRandomPlayerId(set); - set.remove(playerOneObjectId); + int random = Rnd.nextInt(set.size()); + Iterator iter = set.iterator(); + while (iter.hasNext()) + { + playerOneObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerOne = L2World.getInstance().getPlayer(playerOneObjectId); if ((playerOne == null) || !playerOne.isOnline()) { continue; } - playerTwoObjectId = getRandomPlayerId(set); - set.remove(playerTwoObjectId); + random = Rnd.nextInt(set.size()); + iter = set.iterator(); + while (iter.hasNext()) + { + playerTwoObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerTwo = L2World.getInstance().getPlayer(playerTwoObjectId); if ((playerTwo == null) || !playerTwo.isOnline()) { @@ -101,21 +122,6 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame return null; } - private static int getRandomPlayerId(Set set) - { - final int rnd = Rnd.nextInt(set.size()); - int counter = 0; - for (int id : set) - { - if (counter == rnd) - { - return id; - } - counter++; - } - return 0; - } - @Override public final boolean containsParticipant(int playerId) { diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java index 33ba98a243..79c9a61e1f 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.logging.Level; @@ -75,16 +76,36 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame while (set.size() > 1) { - playerOneObjectId = getRandomPlayerId(set); - set.remove(playerOneObjectId); + int random = Rnd.nextInt(set.size()); + Iterator iter = set.iterator(); + while (iter.hasNext()) + { + playerOneObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerOne = L2World.getInstance().getPlayer(playerOneObjectId); if ((playerOne == null) || !playerOne.isOnline()) { continue; } - playerTwoObjectId = getRandomPlayerId(set); - set.remove(playerTwoObjectId); + random = Rnd.nextInt(set.size()); + iter = set.iterator(); + while (iter.hasNext()) + { + playerTwoObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerTwo = L2World.getInstance().getPlayer(playerTwoObjectId); if ((playerTwo == null) || !playerTwo.isOnline()) { @@ -101,21 +122,6 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame return null; } - private static int getRandomPlayerId(Set set) - { - final int rnd = Rnd.nextInt(set.size()); - int counter = 0; - for (int id : set) - { - if (counter == rnd) - { - return id; - } - counter++; - } - return 0; - } - @Override public final boolean containsParticipant(int playerId) { diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java index 33ba98a243..79c9a61e1f 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.logging.Level; @@ -75,16 +76,36 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame while (set.size() > 1) { - playerOneObjectId = getRandomPlayerId(set); - set.remove(playerOneObjectId); + int random = Rnd.nextInt(set.size()); + Iterator iter = set.iterator(); + while (iter.hasNext()) + { + playerOneObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerOne = L2World.getInstance().getPlayer(playerOneObjectId); if ((playerOne == null) || !playerOne.isOnline()) { continue; } - playerTwoObjectId = getRandomPlayerId(set); - set.remove(playerTwoObjectId); + random = Rnd.nextInt(set.size()); + iter = set.iterator(); + while (iter.hasNext()) + { + playerTwoObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerTwo = L2World.getInstance().getPlayer(playerTwoObjectId); if ((playerTwo == null) || !playerTwo.isOnline()) { @@ -101,21 +122,6 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame return null; } - private static int getRandomPlayerId(Set set) - { - final int rnd = Rnd.nextInt(set.size()); - int counter = 0; - for (int id : set) - { - if (counter == rnd) - { - return id; - } - counter++; - } - return 0; - } - @Override public final boolean containsParticipant(int playerId) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java index 33ba98a243..79c9a61e1f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.logging.Level; @@ -75,16 +76,36 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame while (set.size() > 1) { - playerOneObjectId = getRandomPlayerId(set); - set.remove(playerOneObjectId); + int random = Rnd.nextInt(set.size()); + Iterator iter = set.iterator(); + while (iter.hasNext()) + { + playerOneObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerOne = L2World.getInstance().getPlayer(playerOneObjectId); if ((playerOne == null) || !playerOne.isOnline()) { continue; } - playerTwoObjectId = getRandomPlayerId(set); - set.remove(playerTwoObjectId); + random = Rnd.nextInt(set.size()); + iter = set.iterator(); + while (iter.hasNext()) + { + playerTwoObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerTwo = L2World.getInstance().getPlayer(playerTwoObjectId); if ((playerTwo == null) || !playerTwo.isOnline()) { @@ -101,21 +122,6 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame return null; } - private static int getRandomPlayerId(Set set) - { - final int rnd = Rnd.nextInt(set.size()); - int counter = 0; - for (int id : set) - { - if (counter == rnd) - { - return id; - } - counter++; - } - return 0; - } - @Override public final boolean containsParticipant(int playerId) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java index 33ba98a243..79c9a61e1f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/olympiad/OlympiadGameNormal.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.logging.Level; @@ -75,16 +76,36 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame while (set.size() > 1) { - playerOneObjectId = getRandomPlayerId(set); - set.remove(playerOneObjectId); + int random = Rnd.nextInt(set.size()); + Iterator iter = set.iterator(); + while (iter.hasNext()) + { + playerOneObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerOne = L2World.getInstance().getPlayer(playerOneObjectId); if ((playerOne == null) || !playerOne.isOnline()) { continue; } - playerTwoObjectId = getRandomPlayerId(set); - set.remove(playerTwoObjectId); + random = Rnd.nextInt(set.size()); + iter = set.iterator(); + while (iter.hasNext()) + { + playerTwoObjectId = iter.next(); + if (--random < 0) + { + iter.remove(); + break; + } + } + playerTwo = L2World.getInstance().getPlayer(playerTwoObjectId); if ((playerTwo == null) || !playerTwo.isOnline()) { @@ -101,21 +122,6 @@ public abstract class OlympiadGameNormal extends AbstractOlympiadGame return null; } - private static int getRandomPlayerId(Set set) - { - final int rnd = Rnd.nextInt(set.size()); - int counter = 0; - for (int id : set) - { - if (counter == rnd) - { - return id; - } - counter++; - } - return 0; - } - @Override public final boolean containsParticipant(int playerId) {