diff --git a/src/main/java/world/bentobox/level/objects/TopTenData.java b/src/main/java/world/bentobox/level/objects/TopTenData.java index a4f5c38..2b83d61 100644 --- a/src/main/java/world/bentobox/level/objects/TopTenData.java +++ b/src/main/java/world/bentobox/level/objects/TopTenData.java @@ -14,7 +14,7 @@ import world.bentobox.bentobox.database.objects.DataObject; /** * This class stores and sorts the top ten. - * @author ben + * @author tastybento * */ public class TopTenData implements DataObject { @@ -27,8 +27,11 @@ public class TopTenData implements DataObject { public Map getTopTen() { // Remove any entries that have level values less than 1 - topTen.values().removeIf(l -> l < 1); - return topTen.entrySet().stream() + //topTen.values().removeIf(l -> l < 1); + // make copy + Map snapTopTen = Collections.unmodifiableMap(topTen); + return snapTopTen.entrySet().stream() + .filter(l -> l.getValue() > 0) .sorted(Collections.reverseOrder(Map.Entry.comparingByValue())).limit(10) .collect(Collectors.toMap( Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)); diff --git a/src/test/java/world/bentobox/level/objects/TopTenDataTest.java b/src/test/java/world/bentobox/level/objects/TopTenDataTest.java index e1d9cc6..d347354 100644 --- a/src/test/java/world/bentobox/level/objects/TopTenDataTest.java +++ b/src/test/java/world/bentobox/level/objects/TopTenDataTest.java @@ -59,6 +59,29 @@ public class TopTenDataTest { } } + /** + * Test method for {@link world.bentobox.level.objects.TopTenData#setTopTen(java.util.Map)}. + */ + @Test + public void testSetAndGetTopTenShort() { + Map topTen2 = new LinkedHashMap<>(); + // Create a top ten map + for (long i = 0; i < 3; i++) { + topTen2.put(UUID.randomUUID(), i); + } + // Add the top player + topTen2.put(uuid, 3L); + ttd.setTopTen(topTen2); + // Three only + assertEquals(3, ttd.getTopTen().size()); + // Check order + long i = 3; + for (long l : ttd.getTopTen().values()) { + System.out.println(l); + assertEquals(i--, l); + } + } + /** * Test method for {@link world.bentobox.level.objects.TopTenData#getUniqueId()}. */