Compare commits

..

1 Commits

Author SHA1 Message Date
d0354c39f7 fix: Remove chunk#isLoaded call in BukkitChunkCoordinator
- Fixes #3878
 - Possibly addresses #3849?
2023-01-15 17:39:59 +00:00
6 changed files with 21 additions and 56 deletions

View File

@ -290,13 +290,10 @@ 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 = size * cost + mergeCost; cost = (sizeX * sizeZ) * cost;
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"));

View File

@ -144,7 +144,7 @@ public class ClassicPlotManager extends SquarePlotManager {
plot.getRegions(), plot.getRegions(),
blocks, blocks,
classicPlotWorld.getMinBuildHeight(), classicPlotWorld.getMinBuildHeight(),
classicPlotWorld.getMaxBuildHeight() - 1, classicPlotWorld.getMaxBuildHeight(),
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() - 1, classicPlotWorld.getMaxBuildHeight(),
actor, actor,
queue queue
); );
@ -281,7 +281,7 @@ public class ClassicPlotManager extends SquarePlotManager {
} }
} }
int maxY = classicPlotWorld.getMaxBuildHeight() - 1; int maxY = classicPlotWorld.getMaxBuildHeight();
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++) {

View File

@ -2506,7 +2506,7 @@ public class Plot {
} }
} }
int minHeight = getArea().getMinBuildHeight(); int minHeight = getArea().getMinBuildHeight();
int maxHeight = getArea().getMaxBuildHeight() - 1; int maxHeight = getArea().getMaxBuildHeight();
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)));

View File

@ -220,6 +220,17 @@ 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
@ -270,21 +281,7 @@ public final class PlotModificationManager {
manager.clearPlot(current, this, actor, null); manager.clearPlot(current, this, actor, null);
} }
}; };
PlotUnlinkEvent event = PlotSquared.get().getEventDispatcher() run.run();
.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();
}
return true; return true;
} }
@ -324,23 +321,7 @@ 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();
@ -385,17 +366,14 @@ 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);
} }
queue.enqueue(); if (queue != null) {
queue.enqueue();
}
return true; return true;
} }

View File

@ -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() - 1); BlockVector3 pos2 = region.getMaximumPoint().withY(area.getMaxBuildHeight());
CuboidRegion copy = new CuboidRegion(pos1, pos2); CuboidRegion copy = new CuboidRegion(pos1, pos2);
regions.add(copy); regions.add(copy);
} }

View File

@ -20,16 +20,6 @@ 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