mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	avoid quadratic overhead for UUID collection
This commit is contained in:
		@@ -656,20 +656,15 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
				
			|||||||
            final @NonNull SQLiteUUIDService sqLiteUUIDService,
 | 
					            final @NonNull SQLiteUUIDService sqLiteUUIDService,
 | 
				
			||||||
            final @NonNull CacheUUIDService cacheUUIDService
 | 
					            final @NonNull CacheUUIDService cacheUUIDService
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        // Load all uuids into a big chunky boi queue
 | 
					        // Record all unique UUID's and put them into a queue
 | 
				
			||||||
        final Queue<UUID> uuidQueue = new LinkedBlockingQueue<>();
 | 
					        final Set<UUID> uuidSet = new HashSet<>();
 | 
				
			||||||
        PlotSquared.get().forEachPlotRaw(plot -> {
 | 
					        PlotSquared.get().forEachPlotRaw(plot -> {
 | 
				
			||||||
            final Set<UUID> uuids = new HashSet<>();
 | 
					            uuidSet.add(plot.getOwnerAbs());
 | 
				
			||||||
            uuids.add(plot.getOwnerAbs());
 | 
					            uuidSet.addAll(plot.getMembers());
 | 
				
			||||||
            uuids.addAll(plot.getMembers());
 | 
					            uuidSet.addAll(plot.getTrusted());
 | 
				
			||||||
            uuids.addAll(plot.getTrusted());
 | 
					            uuidSet.addAll(plot.getDenied());
 | 
				
			||||||
            uuids.addAll(plot.getDenied());
 | 
					 | 
				
			||||||
            for (final UUID uuid : uuids) {
 | 
					 | 
				
			||||||
                if (!uuidQueue.contains(uuid)) {
 | 
					 | 
				
			||||||
                    uuidQueue.add(uuid);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					        final Queue<UUID> uuidQueue = new LinkedBlockingQueue<>(uuidSet);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOGGER.info("(UUID) {} UUIDs will be cached", uuidQueue.size());
 | 
					        LOGGER.info("(UUID) {} UUIDs will be cached", uuidQueue.size());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user