mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-08-25 15:25:34 +02:00
Compare commits
1 Commits
renovate/w
...
fix/v7/unn
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cb9a8a6cfb |
@@ -600,7 +600,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
if (lastPlot != null) {
|
if (lastPlot != null) {
|
||||||
plotListener.plotExit(pp, lastPlot);
|
plotListener.plotExit(pp, lastPlot, null, null);
|
||||||
lastPlotAccess.remove();
|
lastPlotAccess.remove();
|
||||||
}
|
}
|
||||||
try (final MetaDataAccess<Location> lastLocationAccess =
|
try (final MetaDataAccess<Location> lastLocationAccess =
|
||||||
@@ -753,7 +753,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
if (now == null) {
|
if (now == null) {
|
||||||
try (final MetaDataAccess<Boolean> kickAccess =
|
try (final MetaDataAccess<Boolean> kickAccess =
|
||||||
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
||||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(
|
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot, now, area) && this.tmpTeleport && !kickAccess.get().orElse(
|
||||||
false)) {
|
false)) {
|
||||||
pp.sendMessage(
|
pp.sendMessage(
|
||||||
TranslatableCaption.of("permission.no_permission_event"),
|
TranslatableCaption.of("permission.no_permission_event"),
|
||||||
@@ -847,7 +847,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
try (final MetaDataAccess<Boolean> kickAccess =
|
try (final MetaDataAccess<Boolean> kickAccess =
|
||||||
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
pp.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
||||||
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot) && this.tmpTeleport && !kickAccess.get().orElse(
|
if (lastPlot != null && !plotListener.plotExit(pp, lastPlot, null, area) && this.tmpTeleport && !kickAccess.get().orElse(
|
||||||
false)) {
|
false)) {
|
||||||
pp.sendMessage(
|
pp.sendMessage(
|
||||||
TranslatableCaption.of("permission.no_permission_event"),
|
TranslatableCaption.of("permission.no_permission_event"),
|
||||||
|
@@ -164,7 +164,7 @@ public class PlotListener {
|
|||||||
try (final MetaDataAccess<Plot> lastPlot = player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
try (final MetaDataAccess<Plot> lastPlot = player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
||||||
Plot last = lastPlot.get().orElse(null);
|
Plot last = lastPlot.get().orElse(null);
|
||||||
if ((last != null) && !last.getId().equals(plot.getId())) {
|
if ((last != null) && !last.getId().equals(plot.getId())) {
|
||||||
plotExit(player, last);
|
plotExit(player, last, plot, plot.getArea());
|
||||||
}
|
}
|
||||||
if (PlotSquared.platform().expireManager() != null) {
|
if (PlotSquared.platform().expireManager() != null) {
|
||||||
PlotSquared.platform().expireManager().handleEntry(player, plot);
|
PlotSquared.platform().expireManager().handleEntry(player, plot);
|
||||||
@@ -365,7 +365,12 @@ public class PlotListener {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean plotExit(final PlotPlayer<?> player, Plot plot) {
|
public boolean plotExit(
|
||||||
|
final PlotPlayer<?> player,
|
||||||
|
@NonNull Plot plot,
|
||||||
|
@Nullable Plot nextPlot,
|
||||||
|
@Nullable PlotArea nextArea
|
||||||
|
) {
|
||||||
try (final MetaDataAccess<Plot> lastPlot = player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
try (final MetaDataAccess<Plot> lastPlot = player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
||||||
final Plot previous = lastPlot.remove();
|
final Plot previous = lastPlot.remove();
|
||||||
|
|
||||||
@@ -382,8 +387,10 @@ public class PlotListener {
|
|||||||
if (plot.hasOwner()) {
|
if (plot.hasOwner()) {
|
||||||
PlotArea pw = plot.getArea();
|
PlotArea pw = plot.getArea();
|
||||||
if (pw == null) {
|
if (pw == null) {
|
||||||
|
if (nextPlot == null || (pw = nextPlot.getArea()) == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
try (final MetaDataAccess<Boolean> kickAccess =
|
try (final MetaDataAccess<Boolean> kickAccess =
|
||||||
player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
player.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_KICK)) {
|
||||||
if (plot.getFlag(DenyExitFlag.class) && !player.hasPermission(Permission.PERMISSION_ADMIN_EXIT_DENIED) &&
|
if (plot.getFlag(DenyExitFlag.class) && !player.hasPermission(Permission.PERMISSION_ADMIN_EXIT_DENIED) &&
|
||||||
@@ -440,6 +447,17 @@ public class PlotListener {
|
|||||||
player.setFlight(value.get());
|
player.setFlight(value.get());
|
||||||
metaDataAccess.remove();
|
metaDataAccess.remove();
|
||||||
} else {
|
} else {
|
||||||
|
FlyFlag.FlyStatus flight = FlyFlag.FlyStatus.DEFAULT;
|
||||||
|
if (nextPlot != null) {
|
||||||
|
flight = nextPlot.getFlag(FlyFlag.class);
|
||||||
|
} else if (nextArea != null) {
|
||||||
|
if (nextArea.isRoadFlags()) {
|
||||||
|
flight = nextArea.getRoadFlag(FlyFlag.class);
|
||||||
|
} else {
|
||||||
|
flight = nextArea.getFlag(FlyFlag.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flight != FlyFlag.FlyStatus.ENABLED) {
|
||||||
GameMode gameMode = player.getGameMode();
|
GameMode gameMode = player.getGameMode();
|
||||||
if (gameMode == GameModes.SURVIVAL || gameMode == GameModes.ADVENTURE) {
|
if (gameMode == GameModes.SURVIVAL || gameMode == GameModes.ADVENTURE) {
|
||||||
player.setFlight(false);
|
player.setFlight(false);
|
||||||
@@ -449,6 +467,7 @@ public class PlotListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (plot.getFlag(TimeFlag.class) != TimeFlag.TIME_DISABLED.getValue().longValue()) {
|
if (plot.getFlag(TimeFlag.class) != TimeFlag.TIME_DISABLED.getValue().longValue()) {
|
||||||
player.setTime(Long.MAX_VALUE);
|
player.setTime(Long.MAX_VALUE);
|
||||||
|
@@ -1340,7 +1340,7 @@ public class Plot {
|
|||||||
for (Plot current : getConnectedPlots()) {
|
for (Plot current : getConnectedPlots()) {
|
||||||
List<PlotPlayer<?>> players = current.getPlayersInPlot();
|
List<PlotPlayer<?>> players = current.getPlayersInPlot();
|
||||||
for (PlotPlayer<?> pp : players) {
|
for (PlotPlayer<?> pp : players) {
|
||||||
this.plotListener.plotExit(pp, current);
|
this.plotListener.plotExit(pp, current, null, area);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.Backup.DELETE_ON_UNCLAIM) {
|
if (Settings.Backup.DELETE_ON_UNCLAIM) {
|
||||||
@@ -2594,7 +2594,7 @@ public class Plot {
|
|||||||
public void reEnter() {
|
public void reEnter() {
|
||||||
TaskManager.runTaskLater(() -> {
|
TaskManager.runTaskLater(() -> {
|
||||||
for (PlotPlayer<?> pp : Plot.this.getPlayersInPlot()) {
|
for (PlotPlayer<?> pp : Plot.this.getPlayersInPlot()) {
|
||||||
this.plotListener.plotExit(pp, Plot.this);
|
this.plotListener.plotExit(pp, Plot.this, Plot.this, area);
|
||||||
this.plotListener.plotEntry(pp, Plot.this);
|
this.plotListener.plotEntry(pp, Plot.this);
|
||||||
}
|
}
|
||||||
}, TaskTime.ticks(1L));
|
}, TaskTime.ticks(1L));
|
||||||
|
Reference in New Issue
Block a user