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