mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-12-03 08:38:46 +01:00
Compare commits
19 Commits
fix/genera
...
feat/v7/be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0626ba9477 | ||
|
|
5946444889 | ||
|
|
0c6f55c328 | ||
|
|
c7fe3f79e4 | ||
|
|
b455b94bcf | ||
|
|
d1a357a788 | ||
|
|
9abfcfdd01 | ||
|
|
840ef5d236 | ||
|
|
92db0467b1 | ||
|
|
3ad7372f4c | ||
|
|
2021f17368 | ||
|
|
537661529e | ||
|
|
befc670646 | ||
|
|
ca4e3bffb1 | ||
|
|
df15203f2b | ||
|
|
f5696b7671 | ||
|
|
9ed0c7fa13 | ||
|
|
0c8773c2cc | ||
|
|
bb11a7aec9 |
@@ -219,7 +219,7 @@ public class BlockEventListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||||
public void blockDestroy(BlockBreakEvent event) {
|
public void blockDestroy(BlockBreakEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Location location = BukkitUtil.adapt(event.getBlock().getLocation());
|
Location location = BukkitUtil.adapt(event.getBlock().getLocation());
|
||||||
|
|||||||
@@ -104,6 +104,10 @@ public class PaperListener implements Listener {
|
|||||||
}
|
}
|
||||||
Plot plot = area.getPlot(location);
|
Plot plot = area.getPlot(location);
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
|
// Prevent dropping blocks which normally would not be dropped.
|
||||||
|
if (!event.willDrop()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
event.setWillDrop(plot.getFlag(TileDropFlag.class));
|
event.setWillDrop(plot.getFlag(TileDropFlag.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import com.plotsquared.core.PlotSquared;
|
|||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
@@ -151,20 +153,41 @@ public class Add extends Command {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Success
|
// Success
|
||||||
confirm.run(this, () -> {
|
confirm.run(
|
||||||
for (UUID uuid : uuids) {
|
this, () -> {
|
||||||
if (uuid != DBFunc.EVERYONE) {
|
for (UUID uuid : uuids) {
|
||||||
if (!plot.removeTrusted(uuid)) {
|
if (this.eventDispatcher.callPlayerAdd(
|
||||||
if (plot.getDenied().contains(uuid)) {
|
player,
|
||||||
plot.removeDenied(uuid);
|
plot,
|
||||||
|
uuid,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.COMMAND
|
||||||
|
).getEventResult() == Result.DENY) {
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("events.event_denied"),
|
||||||
|
TagResolver.resolver("value", Tag.inserting(Component.text("Add")))
|
||||||
|
);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
if (uuid != DBFunc.EVERYONE) {
|
||||||
|
if (!plot.removeTrusted(uuid)) {
|
||||||
|
if (plot.getDenied().contains(uuid)) {
|
||||||
|
plot.removeDenied(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plot.addMember(uuid);
|
||||||
|
this.eventDispatcher.callMember(player, plot, uuid, true);
|
||||||
|
this.eventDispatcher.callPostAdded(
|
||||||
|
player,
|
||||||
|
plot,
|
||||||
|
uuid,
|
||||||
|
false,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.COMMAND
|
||||||
|
);
|
||||||
|
player.sendMessage(TranslatableCaption.of("member.member_added"));
|
||||||
}
|
}
|
||||||
}
|
}, null
|
||||||
plot.addMember(uuid);
|
);
|
||||||
this.eventDispatcher.callMember(player, plot, uuid, true);
|
|
||||||
player.sendMessage(TranslatableCaption.of("member.member_added"));
|
|
||||||
}
|
|
||||||
}, null);
|
|
||||||
} catch (final Throwable exception) {
|
} catch (final Throwable exception) {
|
||||||
future.completeExceptionally(exception);
|
future.completeExceptionally(exception);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import com.plotsquared.core.PlotSquared;
|
|||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.events.TeleportCause;
|
import com.plotsquared.core.events.TeleportCause;
|
||||||
import com.plotsquared.core.location.Location;
|
import com.plotsquared.core.location.Location;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
@@ -124,21 +126,29 @@ public class Deny extends SubCommand {
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
if (this.eventDispatcher
|
||||||
|
.callPlayerDeny(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND)
|
||||||
|
.getEventResult() == Result.DENY) {
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("events.event_denied"),
|
||||||
|
TagResolver.resolver("value", Tag.inserting(Component.text("Deny")))
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (uuid != DBFunc.EVERYONE) {
|
if (uuid != DBFunc.EVERYONE) {
|
||||||
plot.removeMember(uuid);
|
plot.removeMember(uuid);
|
||||||
plot.removeTrusted(uuid);
|
plot.removeTrusted(uuid);
|
||||||
}
|
}
|
||||||
plot.addDenied(uuid);
|
plot.addDenied(uuid);
|
||||||
this.eventDispatcher.callDenied(player, plot, uuid, true);
|
this.eventDispatcher.callDenied(player, plot, uuid, true);
|
||||||
|
this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
if (!uuid.equals(DBFunc.EVERYONE)) {
|
if (!uuid.equals(DBFunc.EVERYONE)) {
|
||||||
handleKick(PlotSquared.platform().playerManager().getPlayerIfExists(uuid), plot);
|
handleKick(PlotSquared.platform().playerManager().getPlayerIfExists(uuid), plot);
|
||||||
} else {
|
} else {
|
||||||
for (PlotPlayer<?> plotPlayer : plot.getPlayersInPlot()) {
|
for (PlotPlayer<?> plotPlayer : plot.getPlayersInPlot()) {
|
||||||
// Ignore plot-owners
|
if (plot.isDenied(plotPlayer.getUUID())) {
|
||||||
if (plot.isAdded(plotPlayer.getUUID())) {
|
handleKick(plotPlayer, plot);
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
handleKick(plotPlayer, plot);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ package com.plotsquared.core.command;
|
|||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
import com.plotsquared.core.util.EventDispatcher;
|
import com.plotsquared.core.util.EventDispatcher;
|
||||||
@@ -61,11 +63,22 @@ public class Leave extends Command {
|
|||||||
} else {
|
} else {
|
||||||
UUID uuid = player.getUUID();
|
UUID uuid = player.getUUID();
|
||||||
if (plot.isAdded(uuid)) {
|
if (plot.isAdded(uuid)) {
|
||||||
|
if (this.eventDispatcher
|
||||||
|
.callPlayerRemove(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND)
|
||||||
|
.getEventResult() == Result.DENY) {
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("events.event_denied"),
|
||||||
|
TagResolver.resolver("value", Tag.inserting(Component.text("Leave")))
|
||||||
|
);
|
||||||
|
return CompletableFuture.completedFuture(true);
|
||||||
|
}
|
||||||
if (plot.removeTrusted(uuid)) {
|
if (plot.removeTrusted(uuid)) {
|
||||||
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
}
|
}
|
||||||
if (plot.removeMember(uuid)) {
|
if (plot.removeMember(uuid)) {
|
||||||
this.eventDispatcher.callMember(player, plot, uuid, false);
|
this.eventDispatcher.callMember(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
}
|
}
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("member.plot_left"),
|
TranslatableCaption.of("member.plot_left"),
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ package com.plotsquared.core.command;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
|
import com.plotsquared.core.location.Location;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
@@ -82,33 +85,48 @@ public class Remove extends SubCommand {
|
|||||||
return;
|
return;
|
||||||
} else if (!uuids.isEmpty()) {
|
} else if (!uuids.isEmpty()) {
|
||||||
for (UUID uuid : uuids) {
|
for (UUID uuid : uuids) {
|
||||||
|
if (this.eventDispatcher
|
||||||
|
.callPlayerRemove(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND)
|
||||||
|
.getEventResult() == Result.DENY) {
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("events.event_denied"),
|
||||||
|
TagResolver.resolver("value", Tag.inserting(Component.text("Remove")))
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (plot.getTrusted().contains(uuid)) {
|
if (plot.getTrusted().contains(uuid)) {
|
||||||
if (plot.removeTrusted(uuid)) {
|
if (plot.removeTrusted(uuid)) {
|
||||||
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
} else if (plot.getMembers().contains(uuid)) {
|
} else if (plot.getMembers().contains(uuid)) {
|
||||||
if (plot.removeMember(uuid)) {
|
if (plot.removeMember(uuid)) {
|
||||||
this.eventDispatcher.callMember(player, plot, uuid, false);
|
this.eventDispatcher.callMember(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
} else if (plot.getDenied().contains(uuid)) {
|
} else if (plot.getDenied().contains(uuid)) {
|
||||||
if (plot.removeDenied(uuid)) {
|
if (plot.removeDenied(uuid)) {
|
||||||
this.eventDispatcher.callDenied(player, plot, uuid, false);
|
this.eventDispatcher.callDenied(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
} else if (uuid == DBFunc.EVERYONE) {
|
} else if (uuid == DBFunc.EVERYONE) {
|
||||||
count += plot.getTrusted().size();
|
count += plot.getTrusted().size();
|
||||||
if (plot.removeTrusted(uuid)) {
|
if (plot.removeTrusted(uuid)) {
|
||||||
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
this.eventDispatcher.callTrusted(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
}
|
}
|
||||||
count += plot.getMembers().size();
|
count += plot.getMembers().size();
|
||||||
if (plot.removeMember(uuid)) {
|
if (plot.removeMember(uuid)) {
|
||||||
this.eventDispatcher.callMember(player, plot, uuid, false);
|
this.eventDispatcher.callMember(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
}
|
}
|
||||||
count += plot.getDenied().size();
|
count += plot.getDenied().size();
|
||||||
if (plot.removeDenied(uuid)) {
|
if (plot.removeDenied(uuid)) {
|
||||||
this.eventDispatcher.callDenied(player, plot, uuid, false);
|
this.eventDispatcher.callDenied(player, plot, uuid, false);
|
||||||
|
this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import com.plotsquared.core.PlotSquared;
|
|||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
@@ -150,23 +152,43 @@ public class Trust extends Command {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Success
|
// Success
|
||||||
confirm.run(this, () -> {
|
confirm.run(
|
||||||
for (UUID uuid : uuids) {
|
this, () -> {
|
||||||
if (uuid != DBFunc.EVERYONE) {
|
for (UUID uuid : uuids) {
|
||||||
if (!currentPlot.removeMember(uuid)) {
|
if (this.eventDispatcher
|
||||||
if (currentPlot.getDenied().contains(uuid)) {
|
.callPlayerTrust(player, currentPlot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND)
|
||||||
currentPlot.removeDenied(uuid);
|
.getEventResult() == Result.DENY) {
|
||||||
|
player.sendMessage(
|
||||||
|
TranslatableCaption.of("events.event_denied"),
|
||||||
|
TagResolver.resolver("value", Tag.inserting(Component.text("Trust")))
|
||||||
|
);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (uuid != DBFunc.EVERYONE) {
|
||||||
|
if (!currentPlot.removeMember(uuid)) {
|
||||||
|
if (currentPlot.getDenied().contains(uuid)) {
|
||||||
|
currentPlot.removeDenied(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentPlot.addTrusted(uuid);
|
||||||
|
this.eventDispatcher.callTrusted(player, currentPlot, uuid, true);
|
||||||
|
this.eventDispatcher.callPostTrusted(
|
||||||
|
player,
|
||||||
|
currentPlot,
|
||||||
|
uuid,
|
||||||
|
false,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.COMMAND
|
||||||
|
);
|
||||||
|
player.sendMessage(TranslatableCaption.of("trusted.trusted_added"));
|
||||||
}
|
}
|
||||||
}
|
}, null
|
||||||
currentPlot.addTrusted(uuid);
|
);
|
||||||
this.eventDispatcher.callTrusted(player, currentPlot, uuid, true);
|
|
||||||
player.sendMessage(TranslatableCaption.of("trusted.trusted_added"));
|
|
||||||
}
|
|
||||||
}, null);
|
|
||||||
}
|
}
|
||||||
future.complete(true);
|
future.complete(true);
|
||||||
});
|
}
|
||||||
|
);
|
||||||
return CompletableFuture.completedFuture(true);
|
return CompletableFuture.completedFuture(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ public class Settings extends Config {
|
|||||||
|
|
||||||
public static String SCHEMATICS = "schematics";
|
public static String SCHEMATICS = "schematics";
|
||||||
public static String TEMPLATES = "templates";
|
public static String TEMPLATES = "templates";
|
||||||
|
@Comment({"If schematics used for generation should be searched for in the path.schematics location",
|
||||||
|
" - This setting exists and is `false` by default for backwards compatibility.",
|
||||||
|
" - If false then generation schematics must be located in `schematics`",
|
||||||
|
" - Schematics must still always be under GEN_ROAD_SCHEMATIC/<world> etc."})
|
||||||
|
public static boolean USE_SCHEMATICS_PATH_FOR_GEN_SCHEMATICS = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is going to be added to a plot
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotAddEvent extends PlayerPlotAddRemoveCancellableEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player will be added to a plot
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that will be added
|
||||||
|
* @param reason The reason for the add
|
||||||
|
*/
|
||||||
|
public PlayerPlotAddEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parent class for the varies events regarding a player being added/removed/denied/trusted
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotAddRemoveCancellableEvent extends PlayerPlotAddRemoveEvent implements CancellablePlotEvent {
|
||||||
|
|
||||||
|
private Result eventResult;
|
||||||
|
|
||||||
|
protected PlayerPlotAddRemoveCancellableEvent(
|
||||||
|
final PlotPlayer<?> initiator,
|
||||||
|
Plot plot,
|
||||||
|
final UUID player,
|
||||||
|
final Reason reason
|
||||||
|
) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable Result getEventResult() {
|
||||||
|
return eventResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEventResult(@Nullable final Result eventResult) {
|
||||||
|
this.eventResult = eventResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parent class for the varies events regarding a player being added/removed/denied/trusted
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotAddRemoveEvent extends PlotEvent {
|
||||||
|
|
||||||
|
private final Reason reason;
|
||||||
|
private final PlotPlayer<?> initiator;
|
||||||
|
private final UUID player;
|
||||||
|
|
||||||
|
protected PlayerPlotAddRemoveEvent(final PlotPlayer<?> initiator, Plot plot, final UUID player, final Reason reason) {
|
||||||
|
super(plot);
|
||||||
|
this.initiator = initiator;
|
||||||
|
this.player = player;
|
||||||
|
this.reason = reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The player to be added/denied/removed/trusted.
|
||||||
|
*
|
||||||
|
* @return UUID
|
||||||
|
*/
|
||||||
|
public UUID getPlayer() {
|
||||||
|
return this.player;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The player initiating the action. May be null (if a player, or a {@link com.plotsquared.core.player.ConsolePlayer}.
|
||||||
|
*
|
||||||
|
* @return PlotPlayer
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public PlotPlayer<?> getInitiator() {
|
||||||
|
return this.initiator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the reason the player is being added/removed/denied/trusted
|
||||||
|
*
|
||||||
|
* @return Reason
|
||||||
|
*/
|
||||||
|
public Reason getReason() {
|
||||||
|
return this.reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Reason {
|
||||||
|
/**
|
||||||
|
* If a plot merge caused the player to be added/removed/denied/trusted
|
||||||
|
*/
|
||||||
|
MERGE,
|
||||||
|
/**
|
||||||
|
* If a command caused the player to be added/removed/denied/trusted
|
||||||
|
*/
|
||||||
|
COMMAND,
|
||||||
|
/**
|
||||||
|
* If something unknown caused the player to be added/removed/denied/trusted
|
||||||
|
*/
|
||||||
|
UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -23,6 +23,10 @@ import com.plotsquared.core.plot.Plot;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent}
|
||||||
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public class PlayerPlotDeniedEvent extends PlotEvent {
|
public class PlayerPlotDeniedEvent extends PlotEvent {
|
||||||
|
|
||||||
private final PlotPlayer<?> initiator;
|
private final PlotPlayer<?> initiator;
|
||||||
@@ -36,7 +40,9 @@ public class PlayerPlotDeniedEvent extends PlotEvent {
|
|||||||
* @param plot Plot in which the event occurred
|
* @param plot Plot in which the event occurred
|
||||||
* @param player Player that was denied/un-denied
|
* @param player Player that was denied/un-denied
|
||||||
* @param added {@code true} of add to deny list, {@code false} if removed
|
* @param added {@code true} of add to deny list, {@code false} if removed
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
public PlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
||||||
super(plot);
|
super(plot);
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
@@ -48,7 +54,9 @@ public class PlayerPlotDeniedEvent extends PlotEvent {
|
|||||||
* If a user was added.
|
* If a user was added.
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public boolean wasAdded() {
|
public boolean wasAdded() {
|
||||||
return this.added;
|
return this.added;
|
||||||
}
|
}
|
||||||
@@ -57,7 +65,9 @@ public class PlayerPlotDeniedEvent extends PlotEvent {
|
|||||||
* The player added/removed.
|
* The player added/removed.
|
||||||
*
|
*
|
||||||
* @return UUID
|
* @return UUID
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public UUID getPlayer() {
|
public UUID getPlayer() {
|
||||||
return this.player;
|
return this.player;
|
||||||
}
|
}
|
||||||
@@ -66,7 +76,9 @@ public class PlayerPlotDeniedEvent extends PlotEvent {
|
|||||||
* The player initiating the action.
|
* The player initiating the action.
|
||||||
*
|
*
|
||||||
* @return PlotPlayer
|
* @return PlotPlayer
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlotPlayer<?> getInitiator() {
|
public PlotPlayer<?> getInitiator() {
|
||||||
return this.initiator;
|
return this.initiator;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is going to be denied from a plot
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotDenyEvent extends PlayerPlotAddRemoveCancellableEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player will be denied from a plot
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that will be denied
|
||||||
|
* @param reason The reason for the deny
|
||||||
|
*/
|
||||||
|
public PlayerPlotDenyEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -24,8 +24,9 @@ import com.plotsquared.core.plot.Plot;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public class PlayerPlotHelperEvent extends PlotEvent {
|
public class PlayerPlotHelperEvent extends PlotEvent {
|
||||||
|
|
||||||
private final PlotPlayer<?> initiator;
|
private final PlotPlayer<?> initiator;
|
||||||
@@ -39,7 +40,9 @@ public class PlayerPlotHelperEvent extends PlotEvent {
|
|||||||
* @param plot Plot in which the event occurred
|
* @param plot Plot in which the event occurred
|
||||||
* @param player Player that was added/removed from the helper list
|
* @param player Player that was added/removed from the helper list
|
||||||
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotHelperEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
public PlayerPlotHelperEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
||||||
super(plot);
|
super(plot);
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
@@ -51,7 +54,9 @@ public class PlayerPlotHelperEvent extends PlotEvent {
|
|||||||
* If a player was added
|
* If a player was added
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public boolean wasAdded() {
|
public boolean wasAdded() {
|
||||||
return this.added;
|
return this.added;
|
||||||
}
|
}
|
||||||
@@ -60,7 +65,9 @@ public class PlayerPlotHelperEvent extends PlotEvent {
|
|||||||
* The UUID added/removed
|
* The UUID added/removed
|
||||||
*
|
*
|
||||||
* @return UUID
|
* @return UUID
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public UUID getPlayer() {
|
public UUID getPlayer() {
|
||||||
return this.player;
|
return this.player;
|
||||||
}
|
}
|
||||||
@@ -69,7 +76,9 @@ public class PlayerPlotHelperEvent extends PlotEvent {
|
|||||||
* The player initiating the action
|
* The player initiating the action
|
||||||
*
|
*
|
||||||
* @return PlotPlayer
|
* @return PlotPlayer
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlotPlayer<?> getInitiator() {
|
public PlotPlayer<?> getInitiator() {
|
||||||
return this.initiator;
|
return this.initiator;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is going to be removed from a plot (could be removed from added, trusted, or denied)
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotRemoveEvent extends PlayerPlotAddRemoveCancellableEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is going to be removed from a plot (could be removed from added, trusted, or denied)
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that will be removed
|
||||||
|
* @param reason The reason for the remove
|
||||||
|
*/
|
||||||
|
public PlayerPlotRemoveEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is going to be trusted to a plot
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public class PlayerPlotTrustEvent extends PlayerPlotAddRemoveCancellableEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player will be trusted to a plot
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that will be trusted
|
||||||
|
* @param reason The reason for the trust
|
||||||
|
*/
|
||||||
|
public PlayerPlotTrustEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -23,6 +23,10 @@ import com.plotsquared.core.plot.Plot;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent}
|
||||||
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public class PlayerPlotTrustedEvent extends PlotEvent {
|
public class PlayerPlotTrustedEvent extends PlotEvent {
|
||||||
|
|
||||||
private final PlotPlayer<?> initiator;
|
private final PlotPlayer<?> initiator;
|
||||||
@@ -36,7 +40,9 @@ public class PlayerPlotTrustedEvent extends PlotEvent {
|
|||||||
* @param plot Plot in which the event occurred
|
* @param plot Plot in which the event occurred
|
||||||
* @param player Player that was added/removed from the trusted list
|
* @param player Player that was added/removed from the trusted list
|
||||||
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
public PlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) {
|
||||||
super(plot);
|
super(plot);
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
@@ -48,7 +54,9 @@ public class PlayerPlotTrustedEvent extends PlotEvent {
|
|||||||
* If a player was added
|
* If a player was added
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public boolean wasAdded() {
|
public boolean wasAdded() {
|
||||||
return this.added;
|
return this.added;
|
||||||
}
|
}
|
||||||
@@ -57,7 +65,9 @@ public class PlayerPlotTrustedEvent extends PlotEvent {
|
|||||||
* The UUID added/removed
|
* The UUID added/removed
|
||||||
*
|
*
|
||||||
* @return UUID
|
* @return UUID
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public UUID getPlayer() {
|
public UUID getPlayer() {
|
||||||
return this.player;
|
return this.player;
|
||||||
}
|
}
|
||||||
@@ -66,7 +76,9 @@ public class PlayerPlotTrustedEvent extends PlotEvent {
|
|||||||
* The player initiating the action
|
* The player initiating the action
|
||||||
*
|
*
|
||||||
* @return PlotPlayer
|
* @return PlotPlayer
|
||||||
|
* @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlotPlayer<?> getInitiator() {
|
public PlotPlayer<?> getInitiator() {
|
||||||
return this.initiator;
|
return this.initiator;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events.post;
|
||||||
|
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parent class for events covering players being added/removed to added/trusted/denied lists.
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public sealed class PostPlayerPlotAddRemoveEvent extends PlayerPlotAddRemoveEvent permits PostPlayerPlotAddedEvent,
|
||||||
|
PostPlayerPlotDeniedEvent, PostPlayerPlotTrustedEvent {
|
||||||
|
|
||||||
|
private final boolean added;
|
||||||
|
|
||||||
|
protected PostPlayerPlotAddRemoveEvent(
|
||||||
|
final PlotPlayer<?> initiator,
|
||||||
|
final Plot plot,
|
||||||
|
final UUID player,
|
||||||
|
final Reason reason,
|
||||||
|
boolean added
|
||||||
|
) {
|
||||||
|
super(initiator, plot, player, reason);
|
||||||
|
this.added = added;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the player was added to a list, or removed.
|
||||||
|
*/
|
||||||
|
public boolean added() {
|
||||||
|
return added;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events.post;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is added to a plot
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public final class PostPlayerPlotAddedEvent extends PostPlayerPlotAddRemoveEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlayerPlotHelperEvent: Called when a player is added to a plot
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that was added/removed from the helper list
|
||||||
|
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
||||||
|
* @param reason The reason for the add/remove
|
||||||
|
*/
|
||||||
|
public PostPlayerPlotAddedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason, added);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events.post;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a player is denied from a plot
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public final class PostPlayerPlotDeniedEvent extends PostPlayerPlotAddRemoveEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlayerPlotDeniedEvent: Called when the denied UUID list is modified for a plot.
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that was denied/un-denied
|
||||||
|
* @param added {@code true} of add to deny list, {@code false} if removed
|
||||||
|
* @param reason The reason for the deny/remove
|
||||||
|
*/
|
||||||
|
public PostPlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason, added);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* PlotSquared, a land and world management plugin for Minecraft.
|
||||||
|
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||||
|
* Copyright (C) IntellectualSites team and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.plotsquared.core.events.post;
|
||||||
|
|
||||||
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a plot trusted user is added/removed
|
||||||
|
*
|
||||||
|
* @since TODO
|
||||||
|
*/
|
||||||
|
public final class PostPlayerPlotTrustedEvent extends PostPlayerPlotAddRemoveEvent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlayerPlotTrustedEvent: Called when a plot trusted user is added/removed
|
||||||
|
*
|
||||||
|
* @param initiator Player that initiated the event
|
||||||
|
* @param plot Plot in which the event occurred
|
||||||
|
* @param player Player that was added/removed from the trusted list
|
||||||
|
* @param added {@code true} if the player was added, {@code false} if the player was removed
|
||||||
|
* @param reason The reason for the trust/remove
|
||||||
|
*/
|
||||||
|
public PostPlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) {
|
||||||
|
super(initiator, plot, player, reason, added);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -140,7 +140,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected PlotManager createManager() {
|
protected PlotManager createManager() {
|
||||||
return new HybridPlotManager(this, PlotSquared.platform().regionManager(),
|
return new HybridPlotManager(
|
||||||
|
this, PlotSquared.platform().regionManager(),
|
||||||
PlotSquared.platform().injector().getInstance(ProgressSubscriberFactory.class)
|
PlotSquared.platform().injector().getInstance(ProgressSubscriberFactory.class)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -215,15 +216,16 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
|
|
||||||
// Try to determine root. This means that plot areas can have separate schematic
|
// Try to determine root. This means that plot areas can have separate schematic
|
||||||
// directories
|
// directories
|
||||||
|
String schematicFolder = Settings.Paths.USE_SCHEMATICS_PATH_FOR_GEN_SCHEMATICS ? Settings.Paths.SCHEMATICS : "schematics";
|
||||||
if (!(root =
|
if (!(root =
|
||||||
FileUtils.getFile(
|
FileUtils.getFile(
|
||||||
PlotSquared.platform().getDirectory(),
|
PlotSquared.platform().getDirectory(),
|
||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.getWorldName() + "/" + this.getId()
|
schematicFolder + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + this.getWorldName() + File.separator + this.getId()
|
||||||
))
|
))
|
||||||
.exists()) {
|
.exists()) {
|
||||||
root = FileUtils.getFile(
|
root = FileUtils.getFile(
|
||||||
PlotSquared.platform().getDirectory(),
|
PlotSquared.platform().getDirectory(),
|
||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.getWorldName()
|
schematicFolder + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + this.getWorldName()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
/**
|
/**
|
||||||
* {@return the world name at the player's contextual position}
|
* {@return the world name at the player's contextual position}
|
||||||
* The contextual position can be affected when using a command with
|
* The contextual position can be affected when using a command with
|
||||||
* an explicit plot override, e.g., `/plot <id> info`.
|
* an explicit plot override, e.g., {@code /plot <id> info}.
|
||||||
*/
|
*/
|
||||||
private @NonNull String getContextualWorldName() {
|
private @NonNull String getContextualWorldName() {
|
||||||
Plot current = getCurrentPlot();
|
Plot current = getCurrentPlot();
|
||||||
@@ -368,9 +368,9 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
/**
|
/**
|
||||||
* {@return the plot area at the player's contextual position}
|
* {@return the plot area at the player's contextual position}
|
||||||
* The contextual position can be affected when using a command with
|
* The contextual position can be affected when using a command with
|
||||||
* an explicit plot override, e.g., `/plot <id> info`.
|
* an explicit plot override, e.g., {@code /plot <id> info}.
|
||||||
*
|
*
|
||||||
* @since TODO
|
* @since 7.5.9
|
||||||
*/
|
*/
|
||||||
public @Nullable PlotArea getContextualPlotArea() {
|
public @Nullable PlotArea getContextualPlotArea() {
|
||||||
Plot current = getCurrentPlot();
|
Plot current = getCurrentPlot();
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import com.plotsquared.core.configuration.caption.CaptionUtility;
|
|||||||
import com.plotsquared.core.configuration.caption.StaticCaption;
|
import com.plotsquared.core.configuration.caption.StaticCaption;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.database.DBFunc;
|
import com.plotsquared.core.database.DBFunc;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
import com.plotsquared.core.events.PlayerTeleportToPlotEvent;
|
import com.plotsquared.core.events.PlayerTeleportToPlotEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.events.TeleportCause;
|
import com.plotsquared.core.events.TeleportCause;
|
||||||
@@ -974,7 +975,10 @@ public class Plot {
|
|||||||
* Sets the denied users for this plot.
|
* Sets the denied users for this plot.
|
||||||
*
|
*
|
||||||
* @param uuids uuids to deny
|
* @param uuids uuids to deny
|
||||||
|
* @deprecated Use {@link Plot#addDenied(UUID)} (UUID)} calling
|
||||||
|
* {@link EventDispatcher#callPlayerDeny(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setDenied(final @NonNull Set<UUID> uuids) {
|
public void setDenied(final @NonNull Set<UUID> uuids) {
|
||||||
boolean larger = uuids.size() > getDenied().size();
|
boolean larger = uuids.size() > getDenied().size();
|
||||||
HashSet<UUID> intersection;
|
HashSet<UUID> intersection;
|
||||||
@@ -1015,7 +1019,10 @@ public class Plot {
|
|||||||
* Sets the trusted users for this plot.
|
* Sets the trusted users for this plot.
|
||||||
*
|
*
|
||||||
* @param uuids uuids to trust
|
* @param uuids uuids to trust
|
||||||
|
* @deprecated Use {@link Plot#addTrusted(UUID)} calling
|
||||||
|
* {@link EventDispatcher#callPlayerTrust(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setTrusted(final @NonNull Set<UUID> uuids) {
|
public void setTrusted(final @NonNull Set<UUID> uuids) {
|
||||||
boolean larger = uuids.size() > getTrusted().size();
|
boolean larger = uuids.size() > getTrusted().size();
|
||||||
HashSet<UUID> intersection = new HashSet<>(larger ? getTrusted() : uuids);
|
HashSet<UUID> intersection = new HashSet<>(larger ? getTrusted() : uuids);
|
||||||
@@ -1047,7 +1054,10 @@ public class Plot {
|
|||||||
* Sets the members for this plot.
|
* Sets the members for this plot.
|
||||||
*
|
*
|
||||||
* @param uuids uuids to set member status for
|
* @param uuids uuids to set member status for
|
||||||
|
* @deprecated Use {@link Plot#addMember(UUID)} (UUID)} (UUID)} calling
|
||||||
|
* {@link EventDispatcher#callPlayerAdd(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setMembers(final @NonNull Set<UUID> uuids) {
|
public void setMembers(final @NonNull Set<UUID> uuids) {
|
||||||
boolean larger = uuids.size() > getMembers().size();
|
boolean larger = uuids.size() > getMembers().size();
|
||||||
HashSet<UUID> intersection = new HashSet<>(larger ? getMembers() : uuids);
|
HashSet<UUID> intersection = new HashSet<>(larger ? getMembers() : uuids);
|
||||||
@@ -2302,23 +2312,53 @@ public class Plot {
|
|||||||
this.setAlias(plot.getAlias());
|
this.setAlias(plot.getAlias());
|
||||||
}
|
}
|
||||||
for (UUID uuid : this.getTrusted()) {
|
for (UUID uuid : this.getTrusted()) {
|
||||||
plot.addTrusted(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerTrust(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
plot.addTrusted(uuid);
|
||||||
|
eventDispatcher.callPostTrusted(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (UUID uuid : plot.getTrusted()) {
|
for (UUID uuid : plot.getTrusted()) {
|
||||||
this.addTrusted(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerTrust(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
this.addTrusted(uuid);
|
||||||
|
eventDispatcher.callPostTrusted(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (UUID uuid : this.getMembers()) {
|
for (UUID uuid : this.getMembers()) {
|
||||||
plot.addMember(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerAdd(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
plot.addMember(uuid);
|
||||||
|
eventDispatcher.callPostAdded(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (UUID uuid : plot.getMembers()) {
|
for (UUID uuid : plot.getMembers()) {
|
||||||
this.addMember(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerAdd(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
this.addMember(uuid);
|
||||||
|
eventDispatcher.callPostAdded(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (UUID uuid : this.getDenied()) {
|
for (UUID uuid : this.getDenied()) {
|
||||||
plot.addDenied(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerDeny(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
plot.addDenied(uuid);
|
||||||
|
eventDispatcher.callPostDenied(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (UUID uuid : plot.getDenied()) {
|
for (UUID uuid : plot.getDenied()) {
|
||||||
this.addDenied(uuid);
|
if (eventDispatcher
|
||||||
|
.callPlayerDeny(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE)
|
||||||
|
.getEventResult() != Result.DENY) {
|
||||||
|
this.addDenied(uuid);
|
||||||
|
eventDispatcher.callPostDenied(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ package com.plotsquared.core.plot;
|
|||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.PlotSquared;
|
import com.plotsquared.core.PlotSquared;
|
||||||
import com.plotsquared.core.collection.QuadMap;
|
import com.plotsquared.core.collection.QuadMap;
|
||||||
import com.plotsquared.core.configuration.ConfigurationNode;
|
import com.plotsquared.core.configuration.ConfigurationNode;
|
||||||
@@ -29,6 +30,8 @@ import com.plotsquared.core.configuration.ConfigurationUtil;
|
|||||||
import com.plotsquared.core.configuration.Settings;
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.configuration.file.YamlConfiguration;
|
import com.plotsquared.core.configuration.file.YamlConfiguration;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.generator.GridPlotWorld;
|
import com.plotsquared.core.generator.GridPlotWorld;
|
||||||
import com.plotsquared.core.generator.IndependentPlotGenerator;
|
import com.plotsquared.core.generator.IndependentPlotGenerator;
|
||||||
import com.plotsquared.core.inject.annotations.WorldConfig;
|
import com.plotsquared.core.inject.annotations.WorldConfig;
|
||||||
@@ -47,6 +50,7 @@ import com.plotsquared.core.plot.flag.PlotFlag;
|
|||||||
import com.plotsquared.core.plot.flag.implementations.DoneFlag;
|
import com.plotsquared.core.plot.flag.implementations.DoneFlag;
|
||||||
import com.plotsquared.core.queue.GlobalBlockQueue;
|
import com.plotsquared.core.queue.GlobalBlockQueue;
|
||||||
import com.plotsquared.core.queue.QueueCoordinator;
|
import com.plotsquared.core.queue.QueueCoordinator;
|
||||||
|
import com.plotsquared.core.util.EventDispatcher;
|
||||||
import com.plotsquared.core.util.MathMan;
|
import com.plotsquared.core.util.MathMan;
|
||||||
import com.plotsquared.core.util.PlotExpression;
|
import com.plotsquared.core.util.PlotExpression;
|
||||||
import com.plotsquared.core.util.RegionUtil;
|
import com.plotsquared.core.util.RegionUtil;
|
||||||
@@ -155,6 +159,9 @@ public abstract class PlotArea implements ComponentLike {
|
|||||||
private QuadMap<PlotCluster> clusters;
|
private QuadMap<PlotCluster> clusters;
|
||||||
private String signMaterial = "OAK_WALL_SIGN";
|
private String signMaterial = "OAK_WALL_SIGN";
|
||||||
private String legacySignMaterial = "WALL_SIGN";
|
private String legacySignMaterial = "WALL_SIGN";
|
||||||
|
// These will be injected
|
||||||
|
@Inject
|
||||||
|
private EventDispatcher eventDispatcher;
|
||||||
|
|
||||||
public PlotArea(
|
public PlotArea(
|
||||||
final @NonNull String worldName, final @Nullable String id,
|
final @NonNull String worldName, final @Nullable String id,
|
||||||
@@ -1104,9 +1111,44 @@ public abstract class PlotArea implements ComponentLike {
|
|||||||
final PlotId id = PlotId.of(x, y);
|
final PlotId id = PlotId.of(x, y);
|
||||||
final Plot plot = getPlotAbs(id);
|
final Plot plot = getPlotAbs(id);
|
||||||
|
|
||||||
plot.setTrusted(trusted);
|
Set<UUID> currentlyTrusted = plot.getTrusted();
|
||||||
plot.setMembers(members);
|
trusted.forEach(uuid -> {
|
||||||
plot.setDenied(denied);
|
if (!currentlyTrusted.contains(uuid) && eventDispatcher.callPlayerTrust(
|
||||||
|
null,
|
||||||
|
plot,
|
||||||
|
uuid,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.MERGE
|
||||||
|
).getEventResult() != Result.DENY) {
|
||||||
|
plot.addTrusted(uuid);
|
||||||
|
eventDispatcher.callPostTrusted(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Set<UUID> currentlyAdded = plot.getMembers();
|
||||||
|
members.forEach(uuid -> {
|
||||||
|
if (!currentlyAdded.contains(uuid) && eventDispatcher.callPlayerAdd(
|
||||||
|
null,
|
||||||
|
plot,
|
||||||
|
uuid,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.MERGE
|
||||||
|
).getEventResult() != Result.DENY) {
|
||||||
|
plot.addMember(uuid);
|
||||||
|
eventDispatcher.callPostAdded(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Set<UUID> currentlyDenied = plot.getDenied();
|
||||||
|
denied.forEach(uuid -> {
|
||||||
|
if (!currentlyDenied.contains(uuid) && eventDispatcher.callPlayerDeny(
|
||||||
|
null,
|
||||||
|
plot,
|
||||||
|
uuid,
|
||||||
|
PlayerPlotAddRemoveEvent.Reason.MERGE
|
||||||
|
).getEventResult() != Result.DENY) {
|
||||||
|
plot.addDenied(uuid);
|
||||||
|
eventDispatcher.callPostDenied(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Plot plot2;
|
Plot plot2;
|
||||||
if (lx) {
|
if (lx) {
|
||||||
|
|||||||
@@ -29,9 +29,14 @@ import com.plotsquared.core.events.PlayerBuyPlotEvent;
|
|||||||
import com.plotsquared.core.events.PlayerClaimPlotEvent;
|
import com.plotsquared.core.events.PlayerClaimPlotEvent;
|
||||||
import com.plotsquared.core.events.PlayerEnterPlotEvent;
|
import com.plotsquared.core.events.PlayerEnterPlotEvent;
|
||||||
import com.plotsquared.core.events.PlayerLeavePlotEvent;
|
import com.plotsquared.core.events.PlayerLeavePlotEvent;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddEvent;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotAddRemoveEvent;
|
||||||
import com.plotsquared.core.events.PlayerPlotDeniedEvent;
|
import com.plotsquared.core.events.PlayerPlotDeniedEvent;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotDenyEvent;
|
||||||
import com.plotsquared.core.events.PlayerPlotHelperEvent;
|
import com.plotsquared.core.events.PlayerPlotHelperEvent;
|
||||||
import com.plotsquared.core.events.PlayerPlotLimitEvent;
|
import com.plotsquared.core.events.PlayerPlotLimitEvent;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotRemoveEvent;
|
||||||
|
import com.plotsquared.core.events.PlayerPlotTrustEvent;
|
||||||
import com.plotsquared.core.events.PlayerPlotTrustedEvent;
|
import com.plotsquared.core.events.PlayerPlotTrustedEvent;
|
||||||
import com.plotsquared.core.events.PlayerTeleportToPlotEvent;
|
import com.plotsquared.core.events.PlayerTeleportToPlotEvent;
|
||||||
import com.plotsquared.core.events.PlotAutoMergeEvent;
|
import com.plotsquared.core.events.PlotAutoMergeEvent;
|
||||||
@@ -51,6 +56,9 @@ import com.plotsquared.core.events.RemoveRoadEntityEvent;
|
|||||||
import com.plotsquared.core.events.TeleportCause;
|
import com.plotsquared.core.events.TeleportCause;
|
||||||
import com.plotsquared.core.events.post.PostPlayerAutoPlotEvent;
|
import com.plotsquared.core.events.post.PostPlayerAutoPlotEvent;
|
||||||
import com.plotsquared.core.events.post.PostPlayerBuyPlotEvent;
|
import com.plotsquared.core.events.post.PostPlayerBuyPlotEvent;
|
||||||
|
import com.plotsquared.core.events.post.PostPlayerPlotAddedEvent;
|
||||||
|
import com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent;
|
||||||
|
import com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent;
|
||||||
import com.plotsquared.core.events.post.PostPlotChangeOwnerEvent;
|
import com.plotsquared.core.events.post.PostPlotChangeOwnerEvent;
|
||||||
import com.plotsquared.core.events.post.PostPlotClearEvent;
|
import com.plotsquared.core.events.post.PostPlotClearEvent;
|
||||||
import com.plotsquared.core.events.post.PostPlotDeleteEvent;
|
import com.plotsquared.core.events.post.PostPlotDeleteEvent;
|
||||||
@@ -258,6 +266,7 @@ public class EventDispatcher {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotDeniedEvent callDenied(
|
public PlayerPlotDeniedEvent callDenied(
|
||||||
PlotPlayer<?> initiator, Plot plot, UUID player,
|
PlotPlayer<?> initiator, Plot plot, UUID player,
|
||||||
boolean added
|
boolean added
|
||||||
@@ -267,6 +276,7 @@ public class EventDispatcher {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotTrustedEvent callTrusted(
|
public PlayerPlotTrustedEvent callTrusted(
|
||||||
PlotPlayer<?> initiator, Plot plot, UUID player,
|
PlotPlayer<?> initiator, Plot plot, UUID player,
|
||||||
boolean added
|
boolean added
|
||||||
@@ -276,6 +286,7 @@ public class EventDispatcher {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated(forRemoval = true, since = "TODO")
|
||||||
public PlayerPlotHelperEvent callMember(
|
public PlayerPlotHelperEvent callMember(
|
||||||
PlotPlayer<?> initiator, Plot plot, UUID player,
|
PlotPlayer<?> initiator, Plot plot, UUID player,
|
||||||
boolean added
|
boolean added
|
||||||
@@ -285,6 +296,62 @@ public class EventDispatcher {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PostPlayerPlotDeniedEvent callPostDenied(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PostPlayerPlotDeniedEvent event = new PostPlayerPlotDeniedEvent(initiator, plot, player, added, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PostPlayerPlotTrustedEvent callPostTrusted(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PostPlayerPlotTrustedEvent event = new PostPlayerPlotTrustedEvent(initiator, plot, player, added, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PostPlayerPlotAddedEvent callPostAdded(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PostPlayerPlotAddedEvent event = new PostPlayerPlotAddedEvent(initiator, plot, player, added, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPlotDenyEvent callPlayerDeny(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PlayerPlotDenyEvent event = new PlayerPlotDenyEvent(initiator, plot, player, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPlotTrustEvent callPlayerTrust(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PlayerPlotTrustEvent event = new PlayerPlotTrustEvent(initiator, plot, player, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPlotAddEvent callPlayerAdd(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PlayerPlotAddEvent event = new PlayerPlotAddEvent(initiator, plot, player, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerPlotRemoveEvent callPlayerRemove(
|
||||||
|
PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason
|
||||||
|
) {
|
||||||
|
PlayerPlotRemoveEvent event = new PlayerPlotRemoveEvent(initiator, plot, player, reason);
|
||||||
|
callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
public PlotChangeOwnerEvent callOwnerChange(
|
public PlotChangeOwnerEvent callOwnerChange(
|
||||||
PlotPlayer<?> initiator, Plot plot, UUID oldOwner,
|
PlotPlayer<?> initiator, Plot plot, UUID oldOwner,
|
||||||
UUID newOwner, boolean hasOldOwner
|
UUID newOwner, boolean hasOldOwner
|
||||||
|
|||||||
@@ -204,6 +204,9 @@ public final class PlaceholderRegistry {
|
|||||||
this.createPlaceholder("currentplot_x", (player, plot) -> Integer.toString(plot.getId().getX()));
|
this.createPlaceholder("currentplot_x", (player, plot) -> Integer.toString(plot.getId().getX()));
|
||||||
this.createPlaceholder("currentplot_y", (player, plot) -> Integer.toString(plot.getId().getY()));
|
this.createPlaceholder("currentplot_y", (player, plot) -> Integer.toString(plot.getId().getY()));
|
||||||
this.createPlaceholder("currentplot_xy", (player, plot) -> plot.getId().toString());
|
this.createPlaceholder("currentplot_xy", (player, plot) -> plot.getId().toString());
|
||||||
|
this.createPlaceholder("currentplot_abs_x", (player, plot) -> Integer.toString(plot.getId().getX()), true);
|
||||||
|
this.createPlaceholder("currentplot_abs_y", (player, plot) -> Integer.toString(plot.getId().getY()), true);
|
||||||
|
this.createPlaceholder("currentplot_abs_xy", (player, plot) -> plot.getId().toString(), true);
|
||||||
this.createPlaceholder("currentplot_rating", (player, plot) -> {
|
this.createPlaceholder("currentplot_rating", (player, plot) -> {
|
||||||
if (Double.isNaN(plot.getAverageRating())) {
|
if (Double.isNaN(plot.getAverageRating())) {
|
||||||
return legacyComponent(TranslatableCaption.of("placeholder.nan"), player);
|
return legacyComponent(TranslatableCaption.of("placeholder.nan"), player);
|
||||||
@@ -253,7 +256,23 @@ public final class PlaceholderRegistry {
|
|||||||
final @NonNull String key,
|
final @NonNull String key,
|
||||||
final @NonNull BiFunction<PlotPlayer<?>, Plot, String> placeholderFunction
|
final @NonNull BiFunction<PlotPlayer<?>, Plot, String> placeholderFunction
|
||||||
) {
|
) {
|
||||||
this.registerPlaceholder(new PlotSpecificPlaceholder(key) {
|
this.createPlaceholder(key, placeholderFunction, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a functional placeholder
|
||||||
|
*
|
||||||
|
* @param key Placeholder key
|
||||||
|
* @param placeholderFunction Placeholder generator. Cannot return null
|
||||||
|
* @param requireAbsolute If the plot given to the placeholder should be the absolute (not base) plot
|
||||||
|
* @since 7.5.9
|
||||||
|
*/
|
||||||
|
public void createPlaceholder(
|
||||||
|
final @NonNull String key,
|
||||||
|
final @NonNull BiFunction<PlotPlayer<?>, Plot, String> placeholderFunction,
|
||||||
|
final boolean requireAbsolute
|
||||||
|
) {
|
||||||
|
this.registerPlaceholder(new PlotSpecificPlaceholder(key, requireAbsolute) {
|
||||||
@Override
|
@Override
|
||||||
public @NonNull String getValue(final @NonNull PlotPlayer<?> player, final @NonNull Plot plot) {
|
public @NonNull String getValue(final @NonNull PlotPlayer<?> player, final @NonNull Plot plot) {
|
||||||
return placeholderFunction.apply(player, plot);
|
return placeholderFunction.apply(player, plot);
|
||||||
|
|||||||
@@ -27,14 +27,28 @@ import org.checkerframework.checker.nullness.qual.NonNull;
|
|||||||
*/
|
*/
|
||||||
public abstract class PlotSpecificPlaceholder extends Placeholder {
|
public abstract class PlotSpecificPlaceholder extends Placeholder {
|
||||||
|
|
||||||
|
private final boolean requireAbsolute;
|
||||||
|
|
||||||
public PlotSpecificPlaceholder(final @NonNull String key) {
|
public PlotSpecificPlaceholder(final @NonNull String key) {
|
||||||
|
this(key, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a functional placeholder
|
||||||
|
*
|
||||||
|
* @param key Placeholder key
|
||||||
|
* @param requireAbsolute If the plot given to the placeholder should be the absolute (not base) plot
|
||||||
|
* @since 7.5.9
|
||||||
|
*/
|
||||||
|
public PlotSpecificPlaceholder(final @NonNull String key, final boolean requireAbsolute) {
|
||||||
super(key);
|
super(key);
|
||||||
|
this.requireAbsolute = requireAbsolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull
|
public @NonNull
|
||||||
final String getValue(final @NonNull PlotPlayer<?> player) {
|
final String getValue(final @NonNull PlotPlayer<?> player) {
|
||||||
final Plot plot = player.getCurrentPlot();
|
final Plot plot = requireAbsolute ? player.getLocation().getPlotAbs() : player.getCurrentPlot();
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.intellectualsites.plotsquared"
|
group = "com.intellectualsites.plotsquared"
|
||||||
version = "7.5.9-SNAPSHOT"
|
version = "7.5.11-SNAPSHOT"
|
||||||
|
|
||||||
if (!File("$rootDir/.git").exists()) {
|
if (!File("$rootDir/.git").exists()) {
|
||||||
logger.lifecycle("""
|
logger.lifecycle("""
|
||||||
@@ -73,8 +73,8 @@ subprojects {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Tests
|
// Tests
|
||||||
testImplementation("org.junit.jupiter:junit-jupiter:6.0.0")
|
testImplementation("org.junit.jupiter:junit-jupiter:6.0.1")
|
||||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher:6.0.0")
|
testRuntimeOnly("org.junit.platform:junit-platform-launcher:6.0.1")
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins.withId("java") {
|
plugins.withId("java") {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
paper = "1.20.4-R0.1-SNAPSHOT"
|
paper = "1.20.4-R0.1-SNAPSHOT"
|
||||||
guice = "7.0.0"
|
guice = "7.0.0"
|
||||||
spotbugs = "4.9.8"
|
spotbugs = "4.9.8"
|
||||||
checkerqual = "3.51.1"
|
checkerqual = "3.52.0"
|
||||||
gson = "2.10"
|
gson = "2.10"
|
||||||
guava = "31.1-jre"
|
guava = "31.1-jre"
|
||||||
snakeyaml = "2.0"
|
snakeyaml = "2.0"
|
||||||
@@ -14,7 +14,7 @@ log4j = "2.19.0"
|
|||||||
# Plugins
|
# Plugins
|
||||||
worldedit = "7.2.20"
|
worldedit = "7.2.20"
|
||||||
fawe = "2.14.0"
|
fawe = "2.14.0"
|
||||||
placeholderapi = "2.11.6"
|
placeholderapi = "2.11.7"
|
||||||
luckperms = "5.5"
|
luckperms = "5.5"
|
||||||
essentialsx = "2.21.2"
|
essentialsx = "2.21.2"
|
||||||
mvdwapi = "3.1.1"
|
mvdwapi = "3.1.1"
|
||||||
@@ -35,8 +35,8 @@ serverlib = "2.3.7"
|
|||||||
# Gradle plugins
|
# Gradle plugins
|
||||||
shadow = "9.2.2"
|
shadow = "9.2.2"
|
||||||
grgit = "4.1.1"
|
grgit = "4.1.1"
|
||||||
spotless = "8.0.0"
|
spotless = "8.1.0"
|
||||||
publish = "0.34.0"
|
publish = "0.35.0"
|
||||||
runPaper = "3.0.2"
|
runPaper = "3.0.2"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
Reference in New Issue
Block a user