From 0a7aa8b05e63e702f8908897ac3da0f834fd36da Mon Sep 17 00:00:00 2001 From: MedicOP Date: Sun, 3 Feb 2019 13:50:51 +0100 Subject: [PATCH] Make PlayerStorage.getAllCharacters() return a copy (#386) * Clear continent drops when using !reloaddrops * Return a copy on PlayerStorage.getAllCharacters() --- src/net/server/PlayerStorage.java | 2 +- src/net/server/world/World.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/net/server/PlayerStorage.java b/src/net/server/PlayerStorage.java index ba77848f2e..2db15fc0e2 100644 --- a/src/net/server/PlayerStorage.java +++ b/src/net/server/PlayerStorage.java @@ -84,7 +84,7 @@ public class PlayerStorage { public Collection getAllCharacters() { rlock.lock(); try { - return storage.values(); + return new ArrayList<>(storage.values()); } finally { rlock.unlock(); } diff --git a/src/net/server/world/World.java b/src/net/server/world/World.java index df5a70799f..3e73d53f47 100644 --- a/src/net/server/world/World.java +++ b/src/net/server/world/World.java @@ -293,7 +293,7 @@ public class World { } public void setExpRate(int exp) { - List list = new LinkedList<>(getPlayerStorage().getAllCharacters()); + Collection list = getPlayerStorage().getAllCharacters(); for(MapleCharacter chr : list) { if(!chr.isLoggedin()) continue; @@ -311,7 +311,7 @@ public class World { } public void setDropRate(int drop) { - List list = new LinkedList<>(getPlayerStorage().getAllCharacters()); + Collection list = getPlayerStorage().getAllCharacters(); for(MapleCharacter chr : list) { if(!chr.isLoggedin()) continue; @@ -337,8 +337,8 @@ public class World { } public void setMesoRate(int meso) { - List list = new LinkedList<>(getPlayerStorage().getAllCharacters()); - + Collection list = getPlayerStorage().getAllCharacters(); + for(MapleCharacter chr : list) { if(!chr.isLoggedin()) continue; chr.revertWorldRates();