mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			feat/mutab
			...
			fix/v6/con
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5f90c663e8 | ||
| 
						 | 
					320363e5ff | ||
| 
						 | 
					366c26dc15 | ||
| 
						 | 
					5402516db0 | 
@@ -112,30 +112,7 @@ public class BukkitPlotGenerator extends ChunkGenerator
 | 
			
		||||
    @Override
 | 
			
		||||
    public @NonNull List<BlockPopulator> getDefaultPopulators(@NonNull World world) {
 | 
			
		||||
        try {
 | 
			
		||||
            if (!this.loaded) {
 | 
			
		||||
                String name = world.getName();
 | 
			
		||||
                PlotSquared.get().loadWorld(name, this);
 | 
			
		||||
                final Set<PlotArea> areas = this.plotAreaManager.getPlotAreasSet(name);
 | 
			
		||||
                if (!areas.isEmpty()) {
 | 
			
		||||
                    PlotArea area = areas.iterator().next();
 | 
			
		||||
                    if (!area.isMobSpawning()) {
 | 
			
		||||
                        if (!area.isSpawnEggs()) {
 | 
			
		||||
                            world.setSpawnFlags(false, false);
 | 
			
		||||
                        }
 | 
			
		||||
                        world.setAmbientSpawnLimit(0);
 | 
			
		||||
                        world.setAnimalSpawnLimit(0);
 | 
			
		||||
                        world.setMonsterSpawnLimit(0);
 | 
			
		||||
                        world.setWaterAnimalSpawnLimit(0);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        world.setSpawnFlags(true, true);
 | 
			
		||||
                        world.setAmbientSpawnLimit(-1);
 | 
			
		||||
                        world.setAnimalSpawnLimit(-1);
 | 
			
		||||
                        world.setMonsterSpawnLimit(-1);
 | 
			
		||||
                        world.setWaterAnimalSpawnLimit(-1);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                this.loaded = true;
 | 
			
		||||
            }
 | 
			
		||||
            checkLoaded(world);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
@@ -154,6 +131,39 @@ public class BukkitPlotGenerator extends ChunkGenerator
 | 
			
		||||
        return toAdd;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private synchronized void checkLoaded(@NonNull World world) {
 | 
			
		||||
        // Do not attempt to load configurations until WorldEdit has a platform ready.
 | 
			
		||||
        if (!PlotSquared.get().isWeInitialised()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        if (!this.loaded) {
 | 
			
		||||
            String name = world.getName();
 | 
			
		||||
            PlotSquared.get().loadWorld(name, this);
 | 
			
		||||
            final Set<PlotArea> areas = this.plotAreaManager.getPlotAreasSet(name);
 | 
			
		||||
            if (!areas.isEmpty()) {
 | 
			
		||||
                PlotArea area = areas.iterator().next();
 | 
			
		||||
                if (!area.isMobSpawning()) {
 | 
			
		||||
                    if (!area.isSpawnEggs()) {
 | 
			
		||||
                        world.setSpawnFlags(false, false);
 | 
			
		||||
                    }
 | 
			
		||||
                    setSpawnLimits(world, 0);
 | 
			
		||||
                } else {
 | 
			
		||||
                    world.setSpawnFlags(true, true);
 | 
			
		||||
                    setSpawnLimits(world, -1);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation")
 | 
			
		||||
    private void setSpawnLimits(@NonNull World world, int limit) {
 | 
			
		||||
        world.setAmbientSpawnLimit(limit);
 | 
			
		||||
        world.setAnimalSpawnLimit(limit);
 | 
			
		||||
        world.setMonsterSpawnLimit(limit);
 | 
			
		||||
        world.setWaterAnimalSpawnLimit(limit);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public @NonNull ChunkData generateChunkData(
 | 
			
		||||
            @NonNull World world, @NonNull Random random, int x, int z,
 | 
			
		||||
@@ -201,9 +211,7 @@ public class BukkitPlotGenerator extends ChunkGenerator
 | 
			
		||||
    private void generate(BlockVector2 loc, World world, ScopedQueueCoordinator result) {
 | 
			
		||||
        // Load if improperly loaded
 | 
			
		||||
        if (!this.loaded) {
 | 
			
		||||
            String name = world.getName();
 | 
			
		||||
            PlotSquared.get().loadWorld(name, this);
 | 
			
		||||
            this.loaded = true;
 | 
			
		||||
            checkLoaded(world);
 | 
			
		||||
        }
 | 
			
		||||
        // Process the chunk
 | 
			
		||||
        if (ChunkManager.preProcessChunk(loc, result)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +72,10 @@ import com.plotsquared.core.util.ReflectionUtils;
 | 
			
		||||
import com.plotsquared.core.util.task.TaskManager;
 | 
			
		||||
import com.plotsquared.core.uuid.UUIDPipeline;
 | 
			
		||||
import com.sk89q.worldedit.WorldEdit;
 | 
			
		||||
import com.sk89q.worldedit.event.platform.PlatformReadyEvent;
 | 
			
		||||
import com.sk89q.worldedit.math.BlockVector2;
 | 
			
		||||
import com.sk89q.worldedit.util.eventbus.EventHandler;
 | 
			
		||||
import com.sk89q.worldedit.util.eventbus.Subscribe;
 | 
			
		||||
import org.apache.logging.log4j.LogManager;
 | 
			
		||||
import org.apache.logging.log4j.Logger;
 | 
			
		||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
 | 
			
		||||
@@ -153,6 +156,8 @@ public class PlotSquared {
 | 
			
		||||
    private EventDispatcher eventDispatcher;
 | 
			
		||||
    private PlotListener plotListener;
 | 
			
		||||
 | 
			
		||||
    private boolean weInitialised;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Initialize PlotSquared with the desired Implementation class.
 | 
			
		||||
     *
 | 
			
		||||
@@ -223,6 +228,7 @@ public class PlotSquared {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.worldedit = WorldEdit.getInstance();
 | 
			
		||||
            WorldEdit.getInstance().getEventBus().register(new WEPlatformReadyListener());
 | 
			
		||||
 | 
			
		||||
            // Create Event utility class
 | 
			
		||||
            this.eventDispatcher = new EventDispatcher(this.worldedit);
 | 
			
		||||
@@ -1574,6 +1580,13 @@ public class PlotSquared {
 | 
			
		||||
        return this.plotListener;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get if the {@link PlatformReadyEvent} has been sent by WE. There is no way to query this within WE itself.
 | 
			
		||||
     */
 | 
			
		||||
    public boolean isWeInitialised() {
 | 
			
		||||
        return weInitialised;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Different ways of sorting {@link Plot plots}
 | 
			
		||||
     */
 | 
			
		||||
@@ -1596,4 +1609,15 @@ public class PlotSquared {
 | 
			
		||||
        DISTANCE_FROM_ORIGIN
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private final class WEPlatformReadyListener {
 | 
			
		||||
 | 
			
		||||
        @SuppressWarnings("unused")
 | 
			
		||||
        @Subscribe(priority = EventHandler.Priority.VERY_EARLY)
 | 
			
		||||
        public void onPlatformReady(PlatformReadyEvent event) {
 | 
			
		||||
            weInitialised = true;
 | 
			
		||||
            WorldEdit.getInstance().getEventBus().unregister(WEPlatformReadyListener.this);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user