mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-08 00:24:43 +02:00
Compare commits
8 Commits
shadow-deb
...
feature/v6
Author | SHA1 | Date | |
---|---|---|---|
ae340aeb2a | |||
c45bbe3ec5 | |||
07e598e48f | |||
f6f00dfcda | |||
63a6bdc1d6 | |||
49be6c0bb9 | |||
c15e1c066d | |||
35dd4899b9 |
@ -239,9 +239,11 @@ public final class BukkitChunkCoordinator extends ChunkCoordinator {
|
|||||||
* server's main thread.
|
* server's main thread.
|
||||||
*/
|
*/
|
||||||
private void processChunk(final @NonNull Chunk chunk) {
|
private void processChunk(final @NonNull Chunk chunk) {
|
||||||
|
/* Chunk#isLoaded does not necessarily return true shortly after PaperLib#getChunkAtAsync completes, but the chunk is
|
||||||
|
still loaded.
|
||||||
if (!chunk.isLoaded()) {
|
if (!chunk.isLoaded()) {
|
||||||
throw new IllegalArgumentException(String.format("Chunk %d;%d is is not loaded", chunk.getX(), chunk.getZ()));
|
throw new IllegalArgumentException(String.format("Chunk %d;%d is is not loaded", chunk.getX(), chunk.getZ());
|
||||||
}
|
}*/
|
||||||
if (finished) {
|
if (finished) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -290,10 +290,13 @@ public class Auto extends SubCommand {
|
|||||||
}
|
}
|
||||||
if (this.econHandler != null && plotarea.useEconomy()) {
|
if (this.econHandler != null && plotarea.useEconomy()) {
|
||||||
PlotExpression costExp = plotarea.getPrices().get("claim");
|
PlotExpression costExp = plotarea.getPrices().get("claim");
|
||||||
|
PlotExpression mergeCostExp = plotarea.getPrices().get("merge");
|
||||||
|
int size = sizeX * sizeZ;
|
||||||
|
double mergeCost = size > 1 && mergeCostExp == null ? 0d : mergeCostExp.evaluate(size);
|
||||||
double cost = costExp.evaluate(Settings.Limit.GLOBAL ?
|
double cost = costExp.evaluate(Settings.Limit.GLOBAL ?
|
||||||
player.getPlotCount() :
|
player.getPlotCount() :
|
||||||
player.getPlotCount(plotarea.getWorldName()));
|
player.getPlotCount(plotarea.getWorldName()));
|
||||||
cost = (sizeX * sizeZ) * cost;
|
cost = size * cost + mergeCost;
|
||||||
if (cost > 0d) {
|
if (cost > 0d) {
|
||||||
if (!this.econHandler.isSupported()) {
|
if (!this.econHandler.isSupported()) {
|
||||||
player.sendMessage(TranslatableCaption.of("economy.vault_or_consumer_null"));
|
player.sendMessage(TranslatableCaption.of("economy.vault_or_consumer_null"));
|
||||||
|
@ -144,7 +144,7 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
plot.getRegions(),
|
plot.getRegions(),
|
||||||
blocks,
|
blocks,
|
||||||
classicPlotWorld.getMinBuildHeight(),
|
classicPlotWorld.getMinBuildHeight(),
|
||||||
classicPlotWorld.getMaxBuildHeight(),
|
classicPlotWorld.getMaxBuildHeight() - 1,
|
||||||
actor,
|
actor,
|
||||||
queue
|
queue
|
||||||
);
|
);
|
||||||
@ -175,7 +175,7 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
plot.getRegions(),
|
plot.getRegions(),
|
||||||
blocks,
|
blocks,
|
||||||
classicPlotWorld.PLOT_HEIGHT + 1,
|
classicPlotWorld.PLOT_HEIGHT + 1,
|
||||||
classicPlotWorld.getMaxBuildHeight(),
|
classicPlotWorld.getMaxBuildHeight() - 1,
|
||||||
actor,
|
actor,
|
||||||
queue
|
queue
|
||||||
);
|
);
|
||||||
@ -281,7 +281,7 @@ public class ClassicPlotManager extends SquarePlotManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int maxY = classicPlotWorld.getMaxBuildHeight();
|
int maxY = classicPlotWorld.getMaxBuildHeight() - 1;
|
||||||
if (!plot.isMerged(Direction.NORTH)) {
|
if (!plot.isMerged(Direction.NORTH)) {
|
||||||
int z = bottom.getZ();
|
int z = bottom.getZ();
|
||||||
for (int x = bottom.getX(); x <= top.getX(); x++) {
|
for (int x = bottom.getX(); x <= top.getX(); x++) {
|
||||||
|
@ -2506,7 +2506,7 @@ public class Plot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
int minHeight = getArea().getMinBuildHeight();
|
int minHeight = getArea().getMinBuildHeight();
|
||||||
int maxHeight = getArea().getMaxBuildHeight();
|
int maxHeight = getArea().getMaxBuildHeight() - 1;
|
||||||
Location gtopabs = this.area.getPlotAbs(top).getTopAbs();
|
Location gtopabs = this.area.getPlotAbs(top).getTopAbs();
|
||||||
Location gbotabs = this.area.getPlotAbs(bot).getBottomAbs();
|
Location gbotabs = this.area.getPlotAbs(bot).getBottomAbs();
|
||||||
visited.addAll(Lists.newArrayList((Iterable<? extends PlotId>) PlotId.PlotRangeIterator.range(bot, top)));
|
visited.addAll(Lists.newArrayList((Iterable<? extends PlotId>) PlotId.PlotRangeIterator.range(bot, top)));
|
||||||
|
@ -220,17 +220,6 @@ public final class PlotModificationManager {
|
|||||||
if (isDelete) {
|
if (isDelete) {
|
||||||
this.removeSign();
|
this.removeSign();
|
||||||
}
|
}
|
||||||
PlotUnlinkEvent event = PlotSquared.get().getEventDispatcher()
|
|
||||||
.callUnlink(
|
|
||||||
this.plot.getArea(),
|
|
||||||
this.plot,
|
|
||||||
true,
|
|
||||||
!isDelete,
|
|
||||||
isDelete ? PlotUnlinkEvent.REASON.DELETE : PlotUnlinkEvent.REASON.CLEAR
|
|
||||||
);
|
|
||||||
if (event.getEventResult() != Result.DENY && this.unlinkPlot(event.isCreateRoad(), event.isCreateSign())) {
|
|
||||||
PlotSquared.get().getEventDispatcher().callPostUnlink(plot, event.getReason());
|
|
||||||
}
|
|
||||||
final PlotManager manager = this.plot.getArea().getPlotManager();
|
final PlotManager manager = this.plot.getArea().getPlotManager();
|
||||||
Runnable run = new Runnable() {
|
Runnable run = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -281,7 +270,21 @@ public final class PlotModificationManager {
|
|||||||
manager.clearPlot(current, this, actor, null);
|
manager.clearPlot(current, this, actor, null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
PlotUnlinkEvent event = PlotSquared.get().getEventDispatcher()
|
||||||
|
.callUnlink(
|
||||||
|
this.plot.getArea(),
|
||||||
|
this.plot,
|
||||||
|
true,
|
||||||
|
!isDelete,
|
||||||
|
isDelete ? PlotUnlinkEvent.REASON.DELETE : PlotUnlinkEvent.REASON.CLEAR
|
||||||
|
);
|
||||||
|
if (event.getEventResult() != Result.DENY) {
|
||||||
|
if (this.unlinkPlot(event.isCreateRoad(), event.isCreateSign(), run)) {
|
||||||
|
PlotSquared.get().getEventDispatcher().callPostUnlink(plot, event.getReason());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
run.run();
|
run.run();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,7 +324,23 @@ public final class PlotModificationManager {
|
|||||||
* @return success/!cancelled
|
* @return success/!cancelled
|
||||||
*/
|
*/
|
||||||
public boolean unlinkPlot(final boolean createRoad, final boolean createSign) {
|
public boolean unlinkPlot(final boolean createRoad, final boolean createSign) {
|
||||||
|
return unlinkPlot(createRoad, createSign, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unlink the plot and all connected plots.
|
||||||
|
*
|
||||||
|
* @param createRoad whether to recreate road
|
||||||
|
* @param createSign whether to recreate signs
|
||||||
|
* @param whenDone Task to run when unlink is complete
|
||||||
|
* @return success/!cancelled
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public boolean unlinkPlot(final boolean createRoad, final boolean createSign, final Runnable whenDone) {
|
||||||
if (!this.plot.isMerged()) {
|
if (!this.plot.isMerged()) {
|
||||||
|
if (whenDone != null) {
|
||||||
|
whenDone.run();
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final Set<Plot> plots = this.plot.getConnectedPlots();
|
final Set<Plot> plots = this.plot.getConnectedPlots();
|
||||||
@ -366,14 +385,17 @@ public final class PlotModificationManager {
|
|||||||
current.getPlotModificationManager().setSign(PlayerManager.resolveName(current.getOwnerAbs()).getComponent(
|
current.getPlotModificationManager().setSign(PlayerManager.resolveName(current.getOwnerAbs()).getComponent(
|
||||||
LocaleHolder.console()));
|
LocaleHolder.console()));
|
||||||
}
|
}
|
||||||
|
if (whenDone != null) {
|
||||||
|
TaskManager.runTask(whenDone);
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
} else if (whenDone != null) {
|
||||||
|
queue.setCompleteTask(whenDone);
|
||||||
}
|
}
|
||||||
if (createRoad) {
|
if (createRoad) {
|
||||||
manager.finishPlotUnlink(ids, queue);
|
manager.finishPlotUnlink(ids, queue);
|
||||||
}
|
}
|
||||||
if (queue != null) {
|
|
||||||
queue.enqueue();
|
queue.enqueue();
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ public class WEManager {
|
|||||||
.getTrusted().contains(uuid))) && !plot.getFlag(NoWorldeditFlag.class)) {
|
.getTrusted().contains(uuid))) && !plot.getFlag(NoWorldeditFlag.class)) {
|
||||||
for (CuboidRegion region : plot.getRegions()) {
|
for (CuboidRegion region : plot.getRegions()) {
|
||||||
BlockVector3 pos1 = region.getMinimumPoint().withY(area.getMinBuildHeight());
|
BlockVector3 pos1 = region.getMinimumPoint().withY(area.getMinBuildHeight());
|
||||||
BlockVector3 pos2 = region.getMaximumPoint().withY(area.getMaxBuildHeight());
|
BlockVector3 pos2 = region.getMaximumPoint().withY(area.getMaxBuildHeight() - 1);
|
||||||
CuboidRegion copy = new CuboidRegion(pos1, pos2);
|
CuboidRegion copy = new CuboidRegion(pos1, pos2);
|
||||||
regions.add(copy);
|
regions.add(copy);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,16 @@ plugins {
|
|||||||
group = "com.plotsquared"
|
group = "com.plotsquared"
|
||||||
version = "6.10.9-SNAPSHOT"
|
version = "6.10.9-SNAPSHOT"
|
||||||
|
|
||||||
|
if (!File("$rootDir/.git").exists()) {
|
||||||
|
logger.lifecycle("""
|
||||||
|
**************************************************************************************
|
||||||
|
You need to fork and clone this repository! Don't download a .zip file.
|
||||||
|
If you need assistance, consult the GitHub docs: https://docs.github.com/get-started/quickstart/fork-a-repo
|
||||||
|
**************************************************************************************
|
||||||
|
""".trimIndent()
|
||||||
|
).also { kotlin.system.exitProcess(1) }
|
||||||
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
group = rootProject.group
|
group = rootProject.group
|
||||||
version = rootProject.version
|
version = rootProject.version
|
||||||
|
Reference in New Issue
Block a user