mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Merge branch 'v6' into v7
This commit is contained in:
commit
26c0c1b7cd
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -27,14 +27,12 @@ body:
|
|||||||
description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first.
|
description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first.
|
||||||
multiple: false
|
multiple: false
|
||||||
options:
|
options:
|
||||||
|
- '1.19'
|
||||||
- '1.18.2'
|
- '1.18.2'
|
||||||
- '1.18.1'
|
- '1.18.1'
|
||||||
- '1.18'
|
- '1.18'
|
||||||
- '1.17.1'
|
- '1.17.1'
|
||||||
- '1.16.5'
|
- '1.16.5'
|
||||||
- '1.15.2'
|
|
||||||
- '1.14.4'
|
|
||||||
- '1.13.2'
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
@ -112,30 +112,7 @@ public class BukkitPlotGenerator extends ChunkGenerator
|
|||||||
@Override
|
@Override
|
||||||
public @NonNull List<BlockPopulator> getDefaultPopulators(@NonNull World world) {
|
public @NonNull List<BlockPopulator> getDefaultPopulators(@NonNull World world) {
|
||||||
try {
|
try {
|
||||||
if (!this.loaded) {
|
checkLoaded(world);
|
||||||
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;
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -154,6 +131,39 @@ public class BukkitPlotGenerator extends ChunkGenerator
|
|||||||
return toAdd;
|
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
|
@Override
|
||||||
public @NonNull ChunkData generateChunkData(
|
public @NonNull ChunkData generateChunkData(
|
||||||
@NonNull World world, @NonNull Random random, int x, int z,
|
@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) {
|
private void generate(BlockVector2 loc, World world, ScopedQueueCoordinator result) {
|
||||||
// Load if improperly loaded
|
// Load if improperly loaded
|
||||||
if (!this.loaded) {
|
if (!this.loaded) {
|
||||||
String name = world.getName();
|
checkLoaded(world);
|
||||||
PlotSquared.get().loadWorld(name, this);
|
|
||||||
this.loaded = true;
|
|
||||||
}
|
}
|
||||||
// Process the chunk
|
// Process the chunk
|
||||||
if (ChunkManager.preProcessChunk(loc, result)) {
|
if (ChunkManager.preProcessChunk(loc, result)) {
|
||||||
|
@ -208,7 +208,7 @@ public class EntityEventListener implements Listener {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (BukkitEntityUtil.checkEntity(entity, plot)) {
|
if (BukkitEntityUtil.checkEntity(entity, plot.getBasePlot(false))) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,10 @@ import com.plotsquared.core.util.ReflectionUtils;
|
|||||||
import com.plotsquared.core.util.task.TaskManager;
|
import com.plotsquared.core.util.task.TaskManager;
|
||||||
import com.plotsquared.core.uuid.UUIDPipeline;
|
import com.plotsquared.core.uuid.UUIDPipeline;
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.event.platform.PlatformReadyEvent;
|
||||||
import com.sk89q.worldedit.math.BlockVector2;
|
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.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
@ -153,6 +156,8 @@ public class PlotSquared {
|
|||||||
private EventDispatcher eventDispatcher;
|
private EventDispatcher eventDispatcher;
|
||||||
private PlotListener plotListener;
|
private PlotListener plotListener;
|
||||||
|
|
||||||
|
private boolean weInitialised;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize PlotSquared with the desired Implementation class.
|
* Initialize PlotSquared with the desired Implementation class.
|
||||||
*
|
*
|
||||||
@ -223,6 +228,7 @@ public class PlotSquared {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.worldedit = WorldEdit.getInstance();
|
this.worldedit = WorldEdit.getInstance();
|
||||||
|
WorldEdit.getInstance().getEventBus().register(new WEPlatformReadyListener());
|
||||||
|
|
||||||
// Create Event utility class
|
// Create Event utility class
|
||||||
this.eventDispatcher = new EventDispatcher(this.worldedit);
|
this.eventDispatcher = new EventDispatcher(this.worldedit);
|
||||||
@ -1574,6 +1580,13 @@ public class PlotSquared {
|
|||||||
return this.plotListener;
|
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}
|
* Different ways of sorting {@link Plot plots}
|
||||||
*/
|
*/
|
||||||
@ -1596,4 +1609,15 @@ public class PlotSquared {
|
|||||||
DISTANCE_FROM_ORIGIN
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user