mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 22:56:45 +01:00
Fix plot claiming
This commit is contained in:
parent
5e2e4a8631
commit
e161209a46
@ -101,8 +101,12 @@ public class Claim extends SubCommand {
|
||||
final String finalSchematic = schematic;
|
||||
DBFunc.createPlotSafe(plot, () -> TaskManager.IMP.sync(new RunnableVal<Object>() {
|
||||
@Override public void run(Object value) {
|
||||
plot.claim(player, true, finalSchematic);
|
||||
if (area.isAutoMerge()) {
|
||||
if (!plot.claim(player, true, finalSchematic)) {
|
||||
PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
|
||||
String.format("Failed to claim plot %s", plot.getId().toCommaSeparatedString()));
|
||||
sendMessage(player, Captions.PLOT_NOT_CLAIMED);
|
||||
plot.owner = null;
|
||||
} else if (area.isAutoMerge()) {
|
||||
PlotMergeEvent event = PlotSquared.get().getEventDispatcher()
|
||||
.callMerge(plot, Direction.ALL, Integer.MAX_VALUE, player);
|
||||
if (event.getEventResult() == Result.DENY) {
|
||||
@ -112,7 +116,12 @@ public class Claim extends SubCommand {
|
||||
}
|
||||
}
|
||||
}
|
||||
}), () -> sendMessage(player, Captions.PLOT_NOT_CLAIMED));
|
||||
}), () -> {
|
||||
PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
|
||||
String.format("Failed to add plot %s to the database", plot.getId().toCommaSeparatedString()));
|
||||
sendMessage(player, Captions.PLOT_NOT_CLAIMED);
|
||||
plot.owner = null;
|
||||
});
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -978,7 +978,6 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
}
|
||||
|
||||
public void createPlotSafe(final Plot plot, final Runnable success, final Runnable failure) {
|
||||
final long timestamp = plot.getTimestamp();
|
||||
addPlotTask(plot, new UniqueStatement("createPlotSafe_" + plot.hashCode()) {
|
||||
@Override public void set(PreparedStatement statement) throws SQLException {
|
||||
statement.setInt(1, plot.getId().x);
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.github.intellectualsites.plotsquared.plot.object;
|
||||
|
||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||
import com.github.intellectualsites.plotsquared.plot.config.CaptionUtility;
|
||||
import com.github.intellectualsites.plotsquared.plot.config.Captions;
|
||||
import com.github.intellectualsites.plotsquared.plot.config.Configuration;
|
||||
import com.github.intellectualsites.plotsquared.plot.config.Settings;
|
||||
@ -19,7 +18,14 @@ import com.github.intellectualsites.plotsquared.plot.generator.SquarePlotWorld;
|
||||
import com.github.intellectualsites.plotsquared.plot.listener.PlotListener;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.comment.PlotComment;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.schematic.Schematic;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.*;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.ChunkManager;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.MathMan;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.Permissions;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.SchematicHandler;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.UUIDHandler;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.block.GlobalBlockQueue;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
||||
@ -1581,6 +1587,9 @@ public class Plot {
|
||||
|
||||
public boolean claim(final PlotPlayer player, boolean teleport, String schematic) {
|
||||
if (!canClaim(player)) {
|
||||
PlotSquared.debug(Captions.PREFIX.getTranslated() +
|
||||
String.format("Player %s attempted to claim plot %s, but was not allowed",
|
||||
player.getName(), this.getId().toCommaSeparatedString()));
|
||||
return false;
|
||||
}
|
||||
return claim(player, teleport, schematic, true);
|
||||
@ -1591,6 +1600,9 @@ public class Plot {
|
||||
|
||||
if (updateDB) {
|
||||
if (!create(player.getUUID(), true)) {
|
||||
PlotSquared.debug(Captions.PREFIX.getTranslated() +
|
||||
String.format("Player %s attempted to claim plot %s, but the database failed to update",
|
||||
player.getName(), this.getId().toCommaSeparatedString()));
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
@ -1676,6 +1688,9 @@ public class Plot {
|
||||
});
|
||||
return true;
|
||||
}
|
||||
PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() +
|
||||
String.format("Failed to add plot %s to plot area %s", this.getId().toCommaSeparatedString(),
|
||||
this.area.toString()));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -2212,7 +2227,13 @@ public class Plot {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return this.guessOwner() == null && !isMerged();
|
||||
final UUID owner = this.guessOwner();
|
||||
if (owner != null) {
|
||||
if (player == null || !player.getUUID().equals(owner)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return !isMerged();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user