Randomize unused claim check (#736)
This commit is contained in:
parent
61c1ccda3f
commit
49d51a34a3
|
|
@ -15,13 +15,15 @@
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package me.ryanhamshire.GriefPrevention;
|
||||
|
||||
import java.util.HashSet;
|
||||
package me.ryanhamshire.GriefPrevention;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
|
|
@ -33,7 +35,7 @@ import org.bukkit.Bukkit;
|
|||
//runs every 1 minute in the main thread
|
||||
class FindUnusedClaimsTask implements Runnable
|
||||
{
|
||||
private Set<UUID> claimOwnerUUIDs = new HashSet<>();
|
||||
private List<UUID> claimOwnerUUIDs;
|
||||
private Iterator<UUID> claimOwnerIterator;
|
||||
|
||||
FindUnusedClaimsTask()
|
||||
|
|
@ -57,12 +59,16 @@ class FindUnusedClaimsTask implements Runnable
|
|||
Bukkit.getScheduler().runTaskAsynchronously(GriefPrevention.instance, new CleanupUnusedClaimPreTask(claimOwnerIterator.next()));
|
||||
}
|
||||
|
||||
public void refreshUUIDs()
|
||||
{
|
||||
claimOwnerUUIDs.clear();
|
||||
for (Claim claim : GriefPrevention.instance.dataStore.claims)
|
||||
claimOwnerUUIDs.add(claim.ownerID);
|
||||
claimOwnerUUIDs.remove(null);
|
||||
public void refreshUUIDs() {
|
||||
// Fetch owner UUIDs from list of claims
|
||||
claimOwnerUUIDs = GriefPrevention.instance.dataStore.claims.stream().filter(Objects::nonNull)
|
||||
.distinct().map(claim -> claim.ownerID).collect(Collectors.toList());
|
||||
|
||||
if (!claimOwnerUUIDs.isEmpty()) {
|
||||
// Randomize order
|
||||
Collections.shuffle(claimOwnerUUIDs);
|
||||
}
|
||||
|
||||
claimOwnerIterator = claimOwnerUUIDs.iterator();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user