mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-08-25 15:25:34 +02:00
Compare commits
14 Commits
7.5.6
...
fix/v7/com
Author | SHA1 | Date | |
---|---|---|---|
![]() |
534414d240 | ||
![]() |
c7f96e3a78 | ||
![]() |
4d8d5b3a9f | ||
![]() |
cd6a32cf44 | ||
![]() |
273c0ad989 | ||
![]() |
774da7183b | ||
![]() |
e083015ab2 | ||
![]() |
3f577d039b | ||
![]() |
4d2e4a3d1a | ||
![]() |
e5d36579b1 | ||
![]() |
f0cde251bd | ||
![]() |
58016bb1c8 | ||
![]() |
e5943ba627 | ||
![]() |
07dfdeef2c |
@@ -11,7 +11,7 @@ jobs:
|
|||||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
DISCORD_USERNAME: PlotSquared Release
|
DISCORD_USERNAME: PlotSquared Release
|
||||||
DISCORD_AVATAR: https://raw.githubusercontent.com/IntellectualSites/Assets/main/plugins/PlotSquared/PlotSquared.png
|
DISCORD_AVATAR: https://raw.githubusercontent.com/IntellectualSites/Assets/main/plugins/PlotSquared/PlotSquared.png
|
||||||
uses: Ilshidur/action-discord@0.3.2
|
uses: Ilshidur/action-discord@0.4.0
|
||||||
with:
|
with:
|
||||||
args: |
|
args: |
|
||||||
"<@&525015541815967744> <@&679322738552471574> <@&699293353862496266>"
|
"<@&525015541815967744> <@&679322738552471574> <@&699293353862496266>"
|
||||||
|
@@ -15,12 +15,6 @@ repositories {
|
|||||||
name = "EssentialsX"
|
name = "EssentialsX"
|
||||||
url = uri("https://repo.essentialsx.net/releases/")
|
url = uri("https://repo.essentialsx.net/releases/")
|
||||||
}
|
}
|
||||||
// To be removed when "adventure-platform-bukkit" cuts a new release of 4.4.1 or higher
|
|
||||||
maven("https://central.sonatype.com/repository/maven-snapshots/") {
|
|
||||||
content {
|
|
||||||
includeGroup("net.kyori")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@@ -47,6 +47,7 @@ import org.bukkit.event.entity.LingeringPotionSplashEvent;
|
|||||||
import org.bukkit.event.entity.PotionSplashEvent;
|
import org.bukkit.event.entity.PotionSplashEvent;
|
||||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||||
|
import org.bukkit.event.player.PlayerEggThrowEvent;
|
||||||
import org.bukkit.projectiles.BlockProjectileSource;
|
import org.bukkit.projectiles.BlockProjectileSource;
|
||||||
import org.bukkit.projectiles.ProjectileSource;
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
@@ -157,14 +158,26 @@ public class ProjectileEventListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onProjectileHit(ProjectileHitEvent event) {
|
public void onProjectileHit(ProjectileHitEvent event) {
|
||||||
Projectile entity = event.getEntity();
|
if (cancelProjectileHit(event.getEntity())) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerEggThrow(PlayerEggThrowEvent event) {
|
||||||
|
if (cancelProjectileHit(event.getEgg())) {
|
||||||
|
event.setHatching(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean cancelProjectileHit(Projectile entity) {
|
||||||
Location location = BukkitUtil.adapt(entity.getLocation());
|
Location location = BukkitUtil.adapt(entity.getLocation());
|
||||||
if (!this.plotAreaManager.hasPlotArea(location.getWorldName())) {
|
if (!this.plotAreaManager.hasPlotArea(location.getWorldName())) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
Plot plot = area.getPlot(location);
|
Plot plot = area.getPlot(location);
|
||||||
ProjectileSource shooter = entity.getShooter();
|
ProjectileSource shooter = entity.getShooter();
|
||||||
@@ -172,15 +185,14 @@ public class ProjectileEventListener implements Listener {
|
|||||||
if (!((Player) shooter).isOnline()) {
|
if (!((Player) shooter).isOnline()) {
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
if (plot.isAdded(((Player) shooter).getUniqueId()) || plot.getFlag(ProjectilesFlag.class)) {
|
if (plot.isAdded(((Player) shooter).getUniqueId()) || plot.getFlag(ProjectilesFlag.class)) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, ProjectilesFlag.class, true)) {
|
} else if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, ProjectilesFlag.class, true)) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlotPlayer<?> pp = BukkitUtil.adapt((Player) shooter);
|
PlotPlayer<?> pp = BukkitUtil.adapt((Player) shooter);
|
||||||
@@ -189,38 +201,36 @@ public class ProjectileEventListener implements Listener {
|
|||||||
Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED
|
Permission.PERMISSION_ADMIN_PROJECTILE_UNOWNED
|
||||||
)) {
|
)) {
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
}
|
}
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
if (plot.isAdded(pp.getUUID()) || pp.hasPermission(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER) || plot.getFlag(
|
if (plot.isAdded(pp.getUUID()) || pp.hasPermission(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER) || plot.getFlag(
|
||||||
ProjectilesFlag.class) || (entity instanceof FishHook && plot.getFlag(
|
ProjectilesFlag.class) || (entity instanceof FishHook && plot.getFlag(
|
||||||
FishingFlag.class))) {
|
FishingFlag.class))) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (!(shooter instanceof Entity) && shooter != null) {
|
if (!(shooter instanceof Entity) && shooter != null) {
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
Location sLoc =
|
Location sLoc =
|
||||||
BukkitUtil.adapt(((BlockProjectileSource) shooter).getBlock().getLocation());
|
BukkitUtil.adapt(((BlockProjectileSource) shooter).getBlock().getLocation());
|
||||||
if (!area.contains(sLoc.getX(), sLoc.getZ())) {
|
if (!area.contains(sLoc.getX(), sLoc.getZ())) {
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
Plot sPlot = area.getOwnedPlotAbs(sLoc);
|
Plot sPlot = area.getOwnedPlotAbs(sLoc);
|
||||||
if (sPlot == null || !PlotHandler.sameOwners(plot, sPlot)) {
|
if (sPlot == null || !PlotHandler.sameOwners(plot, sPlot)) {
|
||||||
entity.remove();
|
entity.remove();
|
||||||
event.setCancelled(true);
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,6 @@ package com.plotsquared.core.command;
|
|||||||
import com.plotsquared.core.PlotSquared;
|
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.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;
|
||||||
@@ -58,8 +57,7 @@ public class Alias extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -20,6 +20,7 @@ package com.plotsquared.core.command;
|
|||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.plotsquared.core.PlotSquared;
|
import com.plotsquared.core.PlotSquared;
|
||||||
|
import com.plotsquared.core.configuration.Settings;
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.events.PlayerBuyPlotEvent;
|
import com.plotsquared.core.events.PlayerBuyPlotEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
import com.plotsquared.core.events.Result;
|
||||||
@@ -84,8 +85,9 @@ public class Buy extends Command {
|
|||||||
checkTrue(plot.hasOwner(), TranslatableCaption.of("info.plot_unowned"));
|
checkTrue(plot.hasOwner(), TranslatableCaption.of("info.plot_unowned"));
|
||||||
checkTrue(!plot.isOwner(player.getUUID()), TranslatableCaption.of("economy.cannot_buy_own"));
|
checkTrue(!plot.isOwner(player.getUUID()), TranslatableCaption.of("economy.cannot_buy_own"));
|
||||||
Set<Plot> plots = plot.getConnectedPlots();
|
Set<Plot> plots = plot.getConnectedPlots();
|
||||||
|
int plotCount = Settings.Limit.GLOBAL ? player.getPlotCount() : player.getPlotCount(plot.getWorldName());
|
||||||
checkTrue(
|
checkTrue(
|
||||||
player.getPlotCount() + plots.size() <= player.getAllowedPlots(),
|
plotCount + plots.size() <= player.getAllowedPlots(),
|
||||||
TranslatableCaption.of("permission.cant_claim_more_plots"),
|
TranslatableCaption.of("permission.cant_claim_more_plots"),
|
||||||
TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots())))
|
TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots())))
|
||||||
);
|
);
|
||||||
|
@@ -26,7 +26,6 @@ import com.plotsquared.core.events.PlayerClaimPlotEvent;
|
|||||||
import com.plotsquared.core.events.PlotMergeEvent;
|
import com.plotsquared.core.events.PlotMergeEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.location.Direction;
|
import com.plotsquared.core.location.Direction;
|
||||||
import com.plotsquared.core.location.Location;
|
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.MetaDataAccess;
|
import com.plotsquared.core.player.MetaDataAccess;
|
||||||
import com.plotsquared.core.player.PlayerMetaDataKeys;
|
import com.plotsquared.core.player.PlayerMetaDataKeys;
|
||||||
@@ -72,8 +71,7 @@ public class Claim extends SubCommand {
|
|||||||
if (args.length >= 1) {
|
if (args.length >= 1) {
|
||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
}
|
}
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -90,7 +88,7 @@ public class Claim extends SubCommand {
|
|||||||
boolean force = event.getEventResult() == Result.FORCE;
|
boolean force = event.getEventResult() == Result.FORCE;
|
||||||
int currentPlots = Settings.Limit.GLOBAL ?
|
int currentPlots = Settings.Limit.GLOBAL ?
|
||||||
player.getPlotCount() :
|
player.getPlotCount() :
|
||||||
player.getPlotCount(location.getWorldName());
|
player.getPlotCount(plot.getWorldName());
|
||||||
|
|
||||||
final PlotArea area = plot.getArea();
|
final PlotArea area = plot.getArea();
|
||||||
|
|
||||||
|
@@ -68,8 +68,8 @@ public class Continue extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int size = plot.getConnectedPlots().size();
|
int size = plot.getConnectedPlots().size();
|
||||||
if (!Settings.Done.COUNTS_TOWARDS_LIMIT && (player.getAllowedPlots()
|
int plotCount = Settings.Limit.GLOBAL ? player.getPlotCount() : player.getPlotCount(plot.getWorldName());
|
||||||
< player.getPlotCount() + size)) {
|
if (!Settings.Done.COUNTS_TOWARDS_LIMIT && (player.getAllowedPlots() < plotCount + size)) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("permission.cant_claim_more_plots"),
|
TranslatableCaption.of("permission.cant_claim_more_plots"),
|
||||||
TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots())))
|
TagResolver.resolver("amount", Tag.inserting(Component.text(player.getAllowedPlots())))
|
||||||
|
@@ -19,7 +19,6 @@
|
|||||||
package com.plotsquared.core.command;
|
package com.plotsquared.core.command;
|
||||||
|
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
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;
|
||||||
@@ -37,8 +36,7 @@ public class Copy extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot1 = player.getCurrentPlot();
|
||||||
Plot plot1 = location.getPlotAbs();
|
|
||||||
if (plot1 == null) {
|
if (plot1 == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -22,7 +22,6 @@ import com.google.inject.Inject;
|
|||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.generator.HybridPlotWorld;
|
import com.plotsquared.core.generator.HybridPlotWorld;
|
||||||
import com.plotsquared.core.generator.HybridUtils;
|
import com.plotsquared.core.generator.HybridUtils;
|
||||||
import com.plotsquared.core.location.Location;
|
|
||||||
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 net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -47,8 +46,7 @@ public class CreateRoadSchematic extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -57,7 +55,7 @@ public class CreateRoadSchematic extends SubCommand {
|
|||||||
player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
|
player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(location.getPlotArea() instanceof HybridPlotWorld)) {
|
if (!(plot.getArea() instanceof HybridPlotWorld)) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||||
}
|
}
|
||||||
this.hybridUtils.setupRoadSchematic(plot);
|
this.hybridUtils.setupRoadSchematic(plot);
|
||||||
|
@@ -22,7 +22,6 @@ import com.google.inject.Inject;
|
|||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.generator.HybridPlotManager;
|
import com.plotsquared.core.generator.HybridPlotManager;
|
||||||
import com.plotsquared.core.generator.HybridUtils;
|
import com.plotsquared.core.generator.HybridUtils;
|
||||||
import com.plotsquared.core.location.Location;
|
|
||||||
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.plot.PlotArea;
|
import com.plotsquared.core.plot.PlotArea;
|
||||||
@@ -57,8 +56,7 @@ public class DebugRoadRegen extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||||
@@ -92,8 +90,7 @@ public class DebugRoadRegen extends SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean regenPlot(PlotPlayer<?> player) {
|
public boolean regenPlot(PlotPlayer<?> player) {
|
||||||
Location location = player.getLocation();
|
PlotArea area = player.getCurrentPlot().getArea();
|
||||||
PlotArea area = location.getPlotArea();
|
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||||
return false;
|
return false;
|
||||||
@@ -148,8 +145,7 @@ public class DebugRoadRegen extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Location location = player.getLocation();
|
PlotArea area = player.getCurrentPlot().getArea();
|
||||||
PlotArea area = location.getPlotArea();
|
|
||||||
if (area == null) {
|
if (area == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,6 @@ import com.plotsquared.core.configuration.Settings;
|
|||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.events.Result;
|
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.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;
|
||||||
@@ -61,8 +60,7 @@ public class Delete extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -92,7 +90,7 @@ public class Delete extends SubCommand {
|
|||||||
final java.util.Set<Plot> plots = plot.getConnectedPlots();
|
final java.util.Set<Plot> plots = plot.getConnectedPlots();
|
||||||
final int currentPlots = Settings.Limit.GLOBAL ?
|
final int currentPlots = Settings.Limit.GLOBAL ?
|
||||||
player.getPlotCount() :
|
player.getPlotCount() :
|
||||||
player.getPlotCount(location.getWorldName());
|
player.getPlotCount(plot.getWorldName());
|
||||||
Runnable run = () -> {
|
Runnable run = () -> {
|
||||||
if (plot.getRunning() > 0) {
|
if (plot.getRunning() > 0) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.wait_for_timer"));
|
player.sendMessage(TranslatableCaption.of("errors.wait_for_timer"));
|
||||||
|
@@ -70,8 +70,7 @@ public class Deny extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
|
|
||||||
Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -26,7 +26,6 @@ import com.plotsquared.core.events.PlotDoneEvent;
|
|||||||
import com.plotsquared.core.events.PlotFlagAddEvent;
|
import com.plotsquared.core.events.PlotFlagAddEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
import com.plotsquared.core.events.Result;
|
||||||
import com.plotsquared.core.generator.HybridUtils;
|
import com.plotsquared.core.generator.HybridUtils;
|
||||||
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;
|
||||||
@@ -61,8 +60,7 @@ public class Done extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if ((plot == null) || !plot.hasOwner()) {
|
if ((plot == null) || !plot.hasOwner()) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -73,7 +73,7 @@ public class Download extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
String world = player.getLocation().getWorldName();
|
String world = player.getCurrentPlot().getWorldName();
|
||||||
if (!this.plotAreaManager.hasPlotArea(world)) {
|
if (!this.plotAreaManager.hasPlotArea(world)) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -27,7 +27,6 @@ import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
|||||||
import com.plotsquared.core.events.PlotFlagAddEvent;
|
import com.plotsquared.core.events.PlotFlagAddEvent;
|
||||||
import com.plotsquared.core.events.PlotFlagRemoveEvent;
|
import com.plotsquared.core.events.PlotFlagRemoveEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
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;
|
||||||
@@ -179,8 +178,7 @@ public final class FlagCommand extends Command {
|
|||||||
* @return {@code true} if the player is allowed to modify the flags at their current location
|
* @return {@code true} if the player is allowed to modify the flags at their current location
|
||||||
*/
|
*/
|
||||||
private static boolean checkRequirements(final @NonNull PlotPlayer<?> player) {
|
private static boolean checkRequirements(final @NonNull PlotPlayer<?> player) {
|
||||||
final Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -344,7 +342,7 @@ public final class FlagCommand extends Command {
|
|||||||
if (plotFlag == null) {
|
if (plotFlag == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Plot plot = player.getLocation().getPlotAbs();
|
Plot plot = player.getCurrentPlot();
|
||||||
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
|
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
|
||||||
if (event.getEventResult() == Result.DENY) {
|
if (event.getEventResult() == Result.DENY) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
@@ -409,7 +407,7 @@ public final class FlagCommand extends Command {
|
|||||||
if (plotFlag == null) {
|
if (plotFlag == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Plot plot = player.getLocation().getPlotAbs();
|
Plot plot = player.getCurrentPlot();
|
||||||
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
|
PlotFlagAddEvent event = eventDispatcher.callFlagAdd(plotFlag, plot);
|
||||||
if (event.getEventResult() == Result.DENY) {
|
if (event.getEventResult() == Result.DENY) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
@@ -419,7 +417,7 @@ public final class FlagCommand extends Command {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean force = event.getEventResult() == Result.FORCE;
|
boolean force = event.getEventResult() == Result.FORCE;
|
||||||
final PlotFlag localFlag = player.getLocation().getPlotAbs().getFlagContainer()
|
final PlotFlag localFlag = player.getCurrentPlot().getFlagContainer()
|
||||||
.getFlag(event.getFlag().getClass());
|
.getFlag(event.getFlag().getClass());
|
||||||
if (!force) {
|
if (!force) {
|
||||||
for (String entry : args[1].split(",")) {
|
for (String entry : args[1].split(",")) {
|
||||||
@@ -444,7 +442,7 @@ public final class FlagCommand extends Command {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean result =
|
boolean result =
|
||||||
player.getLocation().getPlotAbs().setFlag(localFlag.merge(parsed.getValue()));
|
player.getCurrentPlot().setFlag(localFlag.merge(parsed.getValue()));
|
||||||
if (!result) {
|
if (!result) {
|
||||||
player.sendMessage(TranslatableCaption.of("flag.flag_not_added"));
|
player.sendMessage(TranslatableCaption.of("flag.flag_not_added"));
|
||||||
return;
|
return;
|
||||||
@@ -484,7 +482,7 @@ public final class FlagCommand extends Command {
|
|||||||
if (flag == null) {
|
if (flag == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Plot plot = player.getLocation().getPlotAbs();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final PlotFlag<?, ?> flagWithOldValue = plot.getFlagContainer().getFlag(flag.getClass());
|
final PlotFlag<?, ?> flagWithOldValue = plot.getFlagContainer().getFlag(flag.getClass());
|
||||||
PlotFlagRemoveEvent event = eventDispatcher.callFlagRemove(flag, plot);
|
PlotFlagRemoveEvent event = eventDispatcher.callFlagRemove(flag, plot);
|
||||||
if (event.getEventResult() == Result.DENY) {
|
if (event.getEventResult() == Result.DENY) {
|
||||||
@@ -687,7 +685,7 @@ public final class FlagCommand extends Command {
|
|||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
// Default value
|
// Default value
|
||||||
final String defaultValue = player.getLocation().getPlotArea().getFlagContainer()
|
final String defaultValue = player.getCurrentPlot().getArea().getFlagContainer()
|
||||||
.getFlagErased(plotFlag.getClass()).toString();
|
.getFlagErased(plotFlag.getClass()).toString();
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("flag.flag_info_default_value"),
|
TranslatableCaption.of("flag.flag_info_default_value"),
|
||||||
|
@@ -177,8 +177,14 @@ public class Grant extends Command {
|
|||||||
commands.addAll(TabCompletions.completePlayers(player, args[0], Collections.emptyList()));
|
commands.addAll(TabCompletions.completePlayers(player, args[0], Collections.emptyList()));
|
||||||
}
|
}
|
||||||
return commands;
|
return commands;
|
||||||
|
} else if (args.length == 2) {
|
||||||
|
final String subcommand = args[0].toLowerCase();
|
||||||
|
if ((subcommand.equals("add") && player.hasPermission(Permission.PERMISSION_GRANT_ADD)) ||
|
||||||
|
(subcommand.equals("check") && player.hasPermission(Permission.PERMISSION_GRANT_CHECK))) {
|
||||||
|
return TabCompletions.completePlayers(player, args[1], Collections.emptyList());
|
||||||
}
|
}
|
||||||
return TabCompletions.completePlayers(player, String.join(",", args).trim(), Collections.emptyList());
|
}
|
||||||
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -65,8 +65,7 @@ public class Kick extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlot();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -124,7 +123,7 @@ public class Kick extends SubCommand {
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location spawn = this.worldUtil.getSpawn(location.getWorldName());
|
Location spawn = this.worldUtil.getSpawn(plot.getWorldName());
|
||||||
player2.sendMessage(TranslatableCaption.of("kick.you_got_kicked"));
|
player2.sendMessage(TranslatableCaption.of("kick.you_got_kicked"));
|
||||||
if (plot.equals(spawn.getPlot())) {
|
if (plot.equals(spawn.getPlot())) {
|
||||||
Location newSpawn = this.worldUtil.getSpawn(this.plotAreaManager.getAllWorlds()[0]);
|
Location newSpawn = this.worldUtil.getSpawn(this.plotAreaManager.getAllWorlds()[0]);
|
||||||
@@ -148,8 +147,7 @@ public class Kick extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Command> tab(final PlotPlayer<?> player, final String[] args, final boolean space) {
|
public Collection<Command> tab(final PlotPlayer<?> player, final String[] args, final boolean space) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
@@ -150,8 +150,8 @@ public class ListCmd extends SubCommand {
|
|||||||
page = 0;
|
page = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
String world = player.getLocation().getWorldName();
|
String world = player.getCurrentPlot().getWorldName();
|
||||||
PlotArea area = player.getApplicablePlotArea();
|
PlotArea area = player.getCurrentPlot().getArea();
|
||||||
String arg = args[0].toLowerCase();
|
String arg = args[0].toLowerCase();
|
||||||
final boolean[] sort = new boolean[]{true};
|
final boolean[] sort = new boolean[]{true};
|
||||||
|
|
||||||
|
@@ -68,7 +68,7 @@ public class Load extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, final String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, final String[] args) {
|
||||||
final String world = player.getLocation().getWorldName();
|
final String world = player.getCurrentPlot().getWorldName();
|
||||||
if (!this.plotAreaManager.hasPlotArea(world)) {
|
if (!this.plotAreaManager.hasPlotArea(world)) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -283,24 +283,35 @@ public class MainCommand extends Command {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompletableFuture<Optional<CommandExecutionData>> preparePlotArgument(@Nullable Plot newPlot,
|
private CompletableFuture<Optional<CommandExecutionData>> preparePlotArgument(
|
||||||
|
@Nullable Plot newPlot,
|
||||||
@Nonnull CommandExecutionData data,
|
@Nonnull CommandExecutionData data,
|
||||||
@Nullable PlotArea area) {
|
@Nullable PlotArea area
|
||||||
if (newPlot != null && (data.player() instanceof ConsolePlayer
|
) {
|
||||||
|| (area != null && area.equals(newPlot.getArea()))
|
if (newPlot == null) {
|
||||||
|| data.player().hasPermission(Permission.PERMISSION_ADMIN)
|
return CompletableFuture.completedFuture(Optional.of(data));
|
||||||
|| data.player().hasPermission(Permission.PERMISSION_ADMIN_AREA_SUDO))
|
}
|
||||||
&& !newPlot.isDenied(data.player().getUUID())) {
|
final PlotPlayer<?> player = data.player();
|
||||||
|
final boolean isAdmin = player instanceof ConsolePlayer || player.hasPermission(Permission.PERMISSION_ADMIN);
|
||||||
|
final boolean isDenied = newPlot.isDenied(player.getUUID());
|
||||||
|
if (!isAdmin) {
|
||||||
|
if (isDenied) {
|
||||||
|
throw new CommandException(TranslatableCaption.of("deny.cannot_interact"));
|
||||||
|
}
|
||||||
|
if (area != null && area.equals(newPlot.getArea()) && !player.hasPermission(Permission.PERMISSION_ADMIN_AREA_SUDO)) {
|
||||||
|
return CompletableFuture.completedFuture(Optional.of(data));
|
||||||
|
}
|
||||||
|
}
|
||||||
return fetchPlotCenterLocation(newPlot)
|
return fetchPlotCenterLocation(newPlot)
|
||||||
.thenApply(newLoc -> {
|
.thenApply(newLoc -> {
|
||||||
if (!data.player().canTeleport(newLoc)) {
|
if (!player.canTeleport(newLoc)) {
|
||||||
data.player().sendMessage(TranslatableCaption.of("border.denied"));
|
player.sendMessage(TranslatableCaption.of("border.denied"));
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
// Save meta
|
// Save meta
|
||||||
var originalCommandMeta = setCommandScope(data.player(), new TemporaryCommandMeta(newLoc, newPlot));
|
var originalCommandMeta = setCommandScope(player, new TemporaryCommandMeta(newLoc, newPlot));
|
||||||
return Optional.of(new CommandExecutionData(
|
return Optional.of(new CommandExecutionData(
|
||||||
data.player(),
|
player,
|
||||||
Arrays.copyOfRange(data.args(), 1, data.args().length), // Trimmed command
|
Arrays.copyOfRange(data.args(), 1, data.args().length), // Trimmed command
|
||||||
data.confirm(),
|
data.confirm(),
|
||||||
data.whenDone(),
|
data.whenDone(),
|
||||||
@@ -308,8 +319,6 @@ public class MainCommand extends Command {
|
|||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return CompletableFuture.completedFuture(Optional.of(data));
|
|
||||||
}
|
|
||||||
|
|
||||||
private Optional<CommandExecutionData> prepareFlagArgument(@Nonnull CommandExecutionData data, @Nonnull PlotArea area) {
|
private Optional<CommandExecutionData> prepareFlagArgument(@Nonnull CommandExecutionData data, @Nonnull PlotArea area) {
|
||||||
if (data.args().length >= 2 && !data.args()[0].isEmpty() && data.args()[0].charAt(0) == '-') {
|
if (data.args().length >= 2 && !data.args()[0].isEmpty() && data.args()[0].charAt(0) == '-') {
|
||||||
|
@@ -20,7 +20,6 @@ package com.plotsquared.core.command;
|
|||||||
|
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.events.TeleportCause;
|
import com.plotsquared.core.events.TeleportCause;
|
||||||
import com.plotsquared.core.location.Location;
|
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
import com.plotsquared.core.plot.Plot;
|
import com.plotsquared.core.plot.Plot;
|
||||||
|
|
||||||
@@ -36,8 +35,7 @@ public class Middle extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] arguments) {
|
public boolean onCommand(PlotPlayer<?> player, String[] arguments) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlot();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -20,7 +20,6 @@ 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.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;
|
||||||
@@ -55,8 +54,7 @@ public class Move extends SubCommand {
|
|||||||
RunnableVal3<Command, Runnable, Runnable> confirm,
|
RunnableVal3<Command, Runnable, Runnable> confirm,
|
||||||
RunnableVal2<Command, CommandResult> whenDone
|
RunnableVal2<Command, CommandResult> whenDone
|
||||||
) {
|
) {
|
||||||
Location location = player.getLocation();
|
Plot plot1 = player.getCurrentPlot();
|
||||||
Plot plot1 = location.getPlotAbs();
|
|
||||||
if (plot1 == null) {
|
if (plot1 == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return CompletableFuture.completedFuture(false);
|
return CompletableFuture.completedFuture(false);
|
||||||
|
@@ -23,7 +23,6 @@ import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
|||||||
import com.plotsquared.core.events.PlotFlagAddEvent;
|
import com.plotsquared.core.events.PlotFlagAddEvent;
|
||||||
import com.plotsquared.core.events.PlotFlagRemoveEvent;
|
import com.plotsquared.core.events.PlotFlagRemoveEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
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;
|
||||||
@@ -74,8 +73,7 @@ public class Music extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -21,7 +21,6 @@ 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.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;
|
||||||
@@ -56,8 +55,7 @@ public class Remove extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -132,8 +130,7 @@ public class Remove extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Command> tab(final PlotPlayer<?> player, final String[] args, final boolean space) {
|
public Collection<Command> tab(final PlotPlayer<?> player, final String[] args, final boolean space) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
@@ -22,7 +22,6 @@ import com.google.common.collect.Lists;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
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.location.Location;
|
|
||||||
import com.plotsquared.core.permissions.Permission;
|
import com.plotsquared.core.permissions.Permission;
|
||||||
import com.plotsquared.core.player.ConsolePlayer;
|
import com.plotsquared.core.player.ConsolePlayer;
|
||||||
import com.plotsquared.core.player.PlotPlayer;
|
import com.plotsquared.core.player.PlotPlayer;
|
||||||
@@ -102,8 +101,7 @@ public class SchematicCmd extends SubCommand {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Location loc = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = loc.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
@@ -247,8 +245,7 @@ public class SchematicCmd extends SubCommand {
|
|||||||
player.sendMessage(TranslatableCaption.of("error.task_in_process"));
|
player.sendMessage(TranslatableCaption.of("error.task_in_process"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -78,7 +78,7 @@ public class Set extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean set(PlotPlayer<?> player, final Plot plot, String value) {
|
public boolean set(PlotPlayer<?> player, final Plot plot, String value) {
|
||||||
final PlotArea plotArea = player.getLocation().getPlotArea();
|
final PlotArea plotArea = player.getCurrentPlot().getArea();
|
||||||
if (plotArea == null) {
|
if (plotArea == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,6 @@
|
|||||||
package com.plotsquared.core.command;
|
package com.plotsquared.core.command;
|
||||||
|
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
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;
|
||||||
@@ -32,8 +31,7 @@ public abstract class SetCommand extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
Plot plot = player.getCurrentPlot();
|
||||||
Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -19,7 +19,6 @@
|
|||||||
package com.plotsquared.core.command;
|
package com.plotsquared.core.command;
|
||||||
|
|
||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
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;
|
||||||
@@ -44,8 +43,7 @@ public class Swap extends SubCommand {
|
|||||||
RunnableVal3<Command, Runnable, Runnable> confirm,
|
RunnableVal3<Command, Runnable, Runnable> confirm,
|
||||||
RunnableVal2<Command, CommandResult> whenDone
|
RunnableVal2<Command, CommandResult> whenDone
|
||||||
) {
|
) {
|
||||||
Location location = player.getLocation();
|
Plot plot1 = player.getCurrentPlot();
|
||||||
Plot plot1 = location.getPlotAbs();
|
|
||||||
if (plot1 == null) {
|
if (plot1 == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return CompletableFuture.completedFuture(false);
|
return CompletableFuture.completedFuture(false);
|
||||||
@@ -79,8 +77,10 @@ public class Swap extends SubCommand {
|
|||||||
String p1 = plot1.toString();
|
String p1 = plot1.toString();
|
||||||
String p2 = plot2.toString();
|
String p2 = plot2.toString();
|
||||||
|
|
||||||
return plot1.getPlotModificationManager().move(plot2, player, () -> {
|
return plot1.getPlotModificationManager().move(
|
||||||
}, true).thenApply(result -> {
|
plot2, player, () -> {
|
||||||
|
}, true
|
||||||
|
).thenApply(result -> {
|
||||||
if (result) {
|
if (result) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
TranslatableCaption.of("swap.swap_success"),
|
TranslatableCaption.of("swap.swap_success"),
|
||||||
|
@@ -22,7 +22,6 @@ import com.google.inject.Inject;
|
|||||||
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
import com.plotsquared.core.configuration.caption.TranslatableCaption;
|
||||||
import com.plotsquared.core.events.PlotUnlinkEvent;
|
import com.plotsquared.core.events.PlotUnlinkEvent;
|
||||||
import com.plotsquared.core.events.Result;
|
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;
|
||||||
@@ -51,8 +50,7 @@ public class Unlink extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||||
Location location = player.getLocation();
|
final Plot plot = player.getCurrentPlot();
|
||||||
final Plot plot = location.getPlotAbs();
|
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||||
return false;
|
return false;
|
||||||
|
@@ -290,6 +290,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
*
|
*
|
||||||
* @return the plot the player is standing on or null if standing on a road or not in a {@link PlotArea}
|
* @return the plot the player is standing on or null if standing on a road or not in a {@link PlotArea}
|
||||||
*/
|
*/
|
||||||
|
@Nullable
|
||||||
public Plot getCurrentPlot() {
|
public Plot getCurrentPlot() {
|
||||||
try (final MetaDataAccess<Plot> lastPlotAccess =
|
try (final MetaDataAccess<Plot> lastPlotAccess =
|
||||||
this.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
this.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) {
|
||||||
@@ -319,7 +320,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
*/
|
*/
|
||||||
public int getPlotCount() {
|
public int getPlotCount() {
|
||||||
if (!Settings.Limit.GLOBAL) {
|
if (!Settings.Limit.GLOBAL) {
|
||||||
return getPlotCount(getLocation().getWorldName());
|
return getPlotCount(getCurrentPlot().getWorldName());
|
||||||
}
|
}
|
||||||
final AtomicInteger count = new AtomicInteger(0);
|
final AtomicInteger count = new AtomicInteger(0);
|
||||||
final UUID uuid = getUUID();
|
final UUID uuid = getUUID();
|
||||||
@@ -339,7 +340,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
|
|
||||||
public int getClusterCount() {
|
public int getClusterCount() {
|
||||||
if (!Settings.Limit.GLOBAL) {
|
if (!Settings.Limit.GLOBAL) {
|
||||||
return getClusterCount(getLocation().getWorldName());
|
return getClusterCount(getCurrentPlot().getWorldName());
|
||||||
}
|
}
|
||||||
final AtomicInteger count = new AtomicInteger(0);
|
final AtomicInteger count = new AtomicInteger(0);
|
||||||
this.plotAreaManager.forEachPlotArea(value -> {
|
this.plotAreaManager.forEachPlotArea(value -> {
|
||||||
@@ -408,8 +409,12 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PlotArea getApplicablePlotArea() {
|
public PlotArea getApplicablePlotArea() {
|
||||||
|
Plot plot = getCurrentPlot();
|
||||||
|
if (plot == null) {
|
||||||
return this.plotAreaManager.getApplicablePlotArea(getLocation());
|
return this.plotAreaManager.getApplicablePlotArea(getLocation());
|
||||||
}
|
}
|
||||||
|
return plot.getArea();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull RequiredType getSuperCaller() {
|
public @NonNull RequiredType getSuperCaller() {
|
||||||
|
@@ -49,10 +49,12 @@ import java.util.Collection;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registry that contains {@link Placeholder placeholders}
|
* Registry that contains {@link Placeholder placeholders}
|
||||||
@@ -127,6 +129,22 @@ public final class PlaceholderRegistry {
|
|||||||
}
|
}
|
||||||
return legacyComponent(TranslatableCaption.of("info.unknown"), player);
|
return legacyComponent(TranslatableCaption.of("info.unknown"), player);
|
||||||
});
|
});
|
||||||
|
this.createPlaceholder("currentplot_owners", (player, plot) -> {
|
||||||
|
if (plot.getFlag(ServerPlotFlag.class)) {
|
||||||
|
return legacyComponent(TranslatableCaption.of("info.server"), player);
|
||||||
|
}
|
||||||
|
final Set<UUID> plotOwners = plot.getOwners();
|
||||||
|
if (plotOwners.isEmpty()) {
|
||||||
|
return legacyComponent(TranslatableCaption.of("generic.generic_unowned"), player);
|
||||||
|
}
|
||||||
|
return plotOwners.stream().map(PlotSquared.platform().playerManager()::getUsernameCaption).map(f -> {
|
||||||
|
try {
|
||||||
|
return f.get(Settings.UUID.BLOCKING_TIMEOUT, TimeUnit.MILLISECONDS).getComponent(player);
|
||||||
|
} catch (final Exception ignored) {
|
||||||
|
return legacyComponent(TranslatableCaption.of("info.unknown"), player);
|
||||||
|
}
|
||||||
|
}).collect(Collectors.joining(", "));
|
||||||
|
});
|
||||||
this.createPlaceholder("currentplot_members", (player, plot) -> {
|
this.createPlaceholder("currentplot_members", (player, plot) -> {
|
||||||
if (plot.getMembers().isEmpty() && plot.getTrusted().isEmpty()) {
|
if (plot.getMembers().isEmpty() && plot.getTrusted().isEmpty()) {
|
||||||
return legacyComponent(TranslatableCaption.of("info.none"), player);
|
return legacyComponent(TranslatableCaption.of("info.none"), player);
|
||||||
|
@@ -415,6 +415,7 @@
|
|||||||
"deny.denied_added": "<prefix><dark_aqua>You successfully denied the player from this plot.</dark_aqua>",
|
"deny.denied_added": "<prefix><dark_aqua>You successfully denied the player from this plot.</dark_aqua>",
|
||||||
"deny.no_enter": "<prefix><red>You are denied from the plot <red><gold><plot></gold><red> and therefore not allowed to enter.</red>",
|
"deny.no_enter": "<prefix><red>You are denied from the plot <red><gold><plot></gold><red> and therefore not allowed to enter.</red>",
|
||||||
"deny.you_got_denied": "<prefix><red>You are denied from the plot you were previously on, and got teleported to spawn.</red>",
|
"deny.you_got_denied": "<prefix><red>You are denied from the plot you were previously on, and got teleported to spawn.</red>",
|
||||||
|
"deny.cannot_interact": "<prefix><red>You are denied from the plot <red><gold><plot></gold><red> and therefore cannot interact with it.</red>",
|
||||||
"deny.cant_remove_owner": "<prefix><red>You can't remove the plot owner.</red>",
|
"deny.cant_remove_owner": "<prefix><red>You can't remove the plot owner.</red>",
|
||||||
"kick.player_not_in_plot": "<prefix><red>The player <gray><player></gray> is not on this plot.</red>",
|
"kick.player_not_in_plot": "<prefix><red>The player <gray><player></gray> is not on this plot.</red>",
|
||||||
"kick.cannot_kick_player": "<prefix><red>You cannot kick the player <gray><player></gray>.</red>",
|
"kick.cannot_kick_player": "<prefix><red>You cannot kick the player <gray><player></gray>.</red>",
|
||||||
|
@@ -20,7 +20,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.intellectualsites.plotsquared"
|
group = "com.intellectualsites.plotsquared"
|
||||||
version = "7.5.6"
|
version = "7.5.7-SNAPSHOT"
|
||||||
|
|
||||||
if (!File("$rootDir/.git").exists()) {
|
if (!File("$rootDir/.git").exists()) {
|
||||||
logger.lifecycle("""
|
logger.lifecycle("""
|
||||||
|
@@ -2,21 +2,21 @@
|
|||||||
# Platform expectations
|
# Platform expectations
|
||||||
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.3"
|
spotbugs = "4.9.4"
|
||||||
checkerqual = "3.49.5"
|
checkerqual = "3.49.5"
|
||||||
gson = "2.10"
|
gson = "2.10"
|
||||||
guava = "31.1-jre"
|
guava = "31.1-jre"
|
||||||
snakeyaml = "2.0"
|
snakeyaml = "2.0"
|
||||||
adventure = "4.23.0"
|
adventure = "4.24.0"
|
||||||
adventure-bukkit = "4.4.1-SNAPSHOT"
|
adventure-bukkit = "4.4.1"
|
||||||
log4j = "2.19.0"
|
log4j = "2.19.0"
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
worldedit = "7.2.20"
|
worldedit = "7.2.20"
|
||||||
fawe = "2.13.0"
|
fawe = "2.13.1"
|
||||||
placeholderapi = "2.11.6"
|
placeholderapi = "2.11.6"
|
||||||
luckperms = "5.5"
|
luckperms = "5.5"
|
||||||
essentialsx = "2.21.1"
|
essentialsx = "2.21.2"
|
||||||
mvdwapi = "3.1.1"
|
mvdwapi = "3.1.1"
|
||||||
|
|
||||||
# Third party
|
# Third party
|
||||||
@@ -33,7 +33,7 @@ vault = "1.7.1"
|
|||||||
serverlib = "2.3.7"
|
serverlib = "2.3.7"
|
||||||
|
|
||||||
# Gradle plugins
|
# Gradle plugins
|
||||||
shadow = "8.3.8"
|
shadow = "8.3.9"
|
||||||
grgit = "4.1.1"
|
grgit = "4.1.1"
|
||||||
spotless = "7.2.1"
|
spotless = "7.2.1"
|
||||||
publish = "0.34.0"
|
publish = "0.34.0"
|
||||||
|
Reference in New Issue
Block a user