mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	Restrict a few more commands from plot world plots
And add missing tab completion for debug commands
This commit is contained in:
		@@ -203,6 +203,8 @@ public final class Backup extends Command {
 | 
				
			|||||||
                    TranslatableCaption.of("backup_impossible"),
 | 
					                    TranslatableCaption.of("backup_impossible"),
 | 
				
			||||||
                    Template.of("plot", "generic.generic_merged")
 | 
					                    Template.of("plot", "generic.generic_merged")
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
 | 
					        } else if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
        } else if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
					        } else if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
				
			||||||
                .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
 | 
					                .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
 | 
				
			||||||
            player.sendMessage(
 | 
					            player.sendMessage(
 | 
				
			||||||
@@ -272,10 +274,8 @@ public final class Backup extends Command {
 | 
				
			|||||||
                    TranslatableCaption.of("backup_impossible"),
 | 
					                    TranslatableCaption.of("backup_impossible"),
 | 
				
			||||||
                    Template.of("plot", "generic.generic_merged")
 | 
					                    Template.of("plot", "generic.generic_merged")
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            player.sendMessage(
 | 
					        } else if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
                    TranslatableCaption.of("backup_impossible"),
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
                    Template.of("plot", "generic.generic_merged")
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
        } else if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
					        } else if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
				
			||||||
                .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
 | 
					                .hasPermission(player, Permission.PERMISSION_ADMIN_BACKUP_OTHER)) {
 | 
				
			||||||
            player.sendMessage(
 | 
					            player.sendMessage(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,6 +58,10 @@ public class CreateRoadSchematic extends SubCommand {
 | 
				
			|||||||
            player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
 | 
					            player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (!(location.getPlotArea() instanceof HybridPlotWorld)) {
 | 
					        if (!(location.getPlotArea() instanceof HybridPlotWorld)) {
 | 
				
			||||||
            player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
 | 
					            player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,8 +50,11 @@ import org.slf4j.LoggerFactory;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.util.Collection;
 | 
					import java.util.Collection;
 | 
				
			||||||
import java.util.Comparator;
 | 
					import java.util.Comparator;
 | 
				
			||||||
 | 
					import java.util.Locale;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					import java.util.stream.Stream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@CommandDeclaration(command = "debug",
 | 
					@CommandDeclaration(command = "debug",
 | 
				
			||||||
        category = CommandCategory.DEBUG,
 | 
					        category = CommandCategory.DEBUG,
 | 
				
			||||||
@@ -195,4 +198,12 @@ public class Debug extends SubCommand {
 | 
				
			|||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Collection<Command> tab(final PlotPlayer<?> player, String[] args, boolean space) {
 | 
				
			||||||
 | 
					        return Stream.of("loadedchunks", "debug-players", "logging", "entitytypes", "msg")
 | 
				
			||||||
 | 
					                .filter(value -> value.startsWith(args[0].toLowerCase(Locale.ENGLISH)))
 | 
				
			||||||
 | 
					                .map(value -> new Command(null, false, value, "plots.admin", RequiredType.NONE, null) {
 | 
				
			||||||
 | 
					                }).collect(Collectors.toList());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,6 +58,8 @@ 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 = location.getPlotAbs();
 | 
				
			||||||
        if (args.length < 1) {
 | 
					        if (args.length < 1) {
 | 
				
			||||||
            player.sendMessage(
 | 
					            player.sendMessage(
 | 
				
			||||||
                    TranslatableCaption.of("commandconfig.command_syntax"),
 | 
					                    TranslatableCaption.of("commandconfig.command_syntax"),
 | 
				
			||||||
@@ -65,6 +67,11 @@ public class DebugRoadRegen extends SubCommand {
 | 
				
			|||||||
            );
 | 
					            );
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        String kind = args[0].toLowerCase();
 | 
					        String kind = args[0].toLowerCase();
 | 
				
			||||||
        switch (kind) {
 | 
					        switch (kind) {
 | 
				
			||||||
            case "plot":
 | 
					            case "plot":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,6 +105,10 @@ public class Merge extends SubCommand {
 | 
				
			|||||||
            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
					            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        Direction direction = null;
 | 
					        Direction direction = null;
 | 
				
			||||||
        if (args.length == 0) {
 | 
					        if (args.length == 0) {
 | 
				
			||||||
            switch (direction(player.getLocationFull().getYaw())) {
 | 
					            switch (direction(player.getLocationFull().getYaw())) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,6 +79,10 @@ public class Save extends SubCommand {
 | 
				
			|||||||
            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
					            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
					        if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
				
			||||||
                .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_SAVE)) {
 | 
					                .hasPermission(player, Permission.PERMISSION_ADMIN_COMMAND_SAVE)) {
 | 
				
			||||||
            player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
					            player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -116,6 +116,10 @@ public class SchematicCmd extends SubCommand {
 | 
				
			|||||||
                    player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
					                    player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
				
			||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					                    player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                if (this.running) {
 | 
					                if (this.running) {
 | 
				
			||||||
                    player.sendMessage(TranslatableCaption.of("error.task_in_process"));
 | 
					                    player.sendMessage(TranslatableCaption.of("error.task_in_process"));
 | 
				
			||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
@@ -179,6 +183,8 @@ public class SchematicCmd extends SubCommand {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            case "saveall":
 | 
					            case "saveall":
 | 
				
			||||||
            case "exportall": {
 | 
					            case "exportall": {
 | 
				
			||||||
 | 
					                Location loc = player.getLocation();
 | 
				
			||||||
 | 
					                final Plot plot = loc.getPlotAbs();
 | 
				
			||||||
                if (!(player instanceof ConsolePlayer)) {
 | 
					                if (!(player instanceof ConsolePlayer)) {
 | 
				
			||||||
                    player.sendMessage(TranslatableCaption.of("console.not_console"));
 | 
					                    player.sendMessage(TranslatableCaption.of("console.not_console"));
 | 
				
			||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
@@ -191,6 +197,10 @@ public class SchematicCmd extends SubCommand {
 | 
				
			|||||||
                    );
 | 
					                    );
 | 
				
			||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					                    player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                PlotArea area = this.plotAreaManager.getPlotAreaByString(args[1]);
 | 
					                PlotArea area = this.plotAreaManager.getPlotAreaByString(args[1]);
 | 
				
			||||||
                if (area == null) {
 | 
					                if (area == null) {
 | 
				
			||||||
                    player.sendMessage(
 | 
					                    player.sendMessage(
 | 
				
			||||||
@@ -246,6 +256,10 @@ public class SchematicCmd extends SubCommand {
 | 
				
			|||||||
                    player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
					                    player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
				
			||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					                    player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
					                if (!plot.isOwner(player.getUUID()) && !Permissions
 | 
				
			||||||
                        .hasPermission(player, "plots.admin.command.schematic.save")) {
 | 
					                        .hasPermission(player, "plots.admin.command.schematic.save")) {
 | 
				
			||||||
                    player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
					                    player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -230,6 +230,10 @@ public class Set extends SubCommand {
 | 
				
			|||||||
            player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
 | 
					            player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        // components
 | 
					        // components
 | 
				
			||||||
        HashSet<String> components =
 | 
					        HashSet<String> components =
 | 
				
			||||||
                new HashSet<>(Arrays.asList(plot.getManager().getPlotComponents(plot.getId())));
 | 
					                new HashSet<>(Arrays.asList(plot.getManager().getPlotComponents(plot.getId())));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,6 +67,10 @@ public class Unlink extends SubCommand {
 | 
				
			|||||||
            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
					            player.sendMessage(TranslatableCaption.of("info.plot_unowned"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (!plot.isMerged()) {
 | 
					        if (!plot.isMerged()) {
 | 
				
			||||||
            player.sendMessage(TranslatableCaption.of("merge.unlink_impossible"));
 | 
					            player.sendMessage(TranslatableCaption.of("merge.unlink_impossible"));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,6 +162,9 @@ public class ComponentPresetManager {
 | 
				
			|||||||
        } else if (!plot.isOwner(player.getUUID()) && !plot.getTrusted().contains(player.getUUID())) {
 | 
					        } else if (!plot.isOwner(player.getUUID()) && !plot.getTrusted().contains(player.getUUID())) {
 | 
				
			||||||
            player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
					            player.sendMessage(TranslatableCaption.of("permission.no_plot_perms"));
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
 | 
					        } else if (plot.getVolume() > Integer.MAX_VALUE) {
 | 
				
			||||||
 | 
					            player.sendMessage(TranslatableCaption.of("schematics.schematic_too_large"));
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        final List<ComponentPreset> allowedPresets = new ArrayList<>(this.presets.size());
 | 
					        final List<ComponentPreset> allowedPresets = new ArrayList<>(this.presets.size());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
  "move.requires_unowned": "<prefix><red>The location specified is already occupied.</red>",
 | 
					  "move.requires_unowned": "<prefix><red>The location specified is already occupied.</red>",
 | 
				
			||||||
  "debug.requires_unmerged": "<prefix><red>The plot cannot be merged.</red>",
 | 
					  "debug.requires_unmerged": "<prefix><red>The plot cannot be merged.</red>",
 | 
				
			||||||
  "debug.debug_header": "<prefix> <gold>Debug Information</gold>\n",
 | 
					  "debug.debug_header": "<prefix> <gold>Debug Information</gold>\n",
 | 
				
			||||||
  "debug.debug_section": "<gray>>></gray> <gold><bold>&l<val></bold></gold>",
 | 
					  "debug.debug_section": "<gray>>></gray> <gold><bold><val></bold></gold>",
 | 
				
			||||||
  "debug.debug_line": "<gray>>></gray> <gold><var></gold><gray>:</gray><gold> <val></gold>\n",
 | 
					  "debug.debug_line": "<gray>>></gray> <gold><var></gold><gray>:</gray><gold> <val></gold>\n",
 | 
				
			||||||
  "debug.plot_debug": "<gray>[<gold>Plot </gold><gray>Debug] (</gray><gold><plot></gold><gray>): <message></gray>",
 | 
					  "debug.plot_debug": "<gray>[<gold>Plot </gold><gray>Debug] (</gray><gold><plot></gold><gray>): <message></gray>",
 | 
				
			||||||
  "debug.fetching_loaded_chunks": "<prefix><gold>Fetching loaded chunks...</gold>",
 | 
					  "debug.fetching_loaded_chunks": "<prefix><gold>Fetching loaded chunks...</gold>",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user