mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-29 08:36:45 +01:00
fix: remove plot-alias with "/p alias" (#1779)
* fix: remove plot-alias with "/p alias" remove plot-alias with "/p alias" #1718 * Apply requested Review Changes Restored the original Permisson to keep backwards compatibility Clean unused imports. * added some improvements after testing added some improvements after testing
This commit is contained in:
parent
3779b17720
commit
7d39d09317
@ -132,6 +132,8 @@ permissions:
|
||||
plots.set.biome: true
|
||||
plots.set.home: true
|
||||
plots.set.alias: true
|
||||
plots.alias.set: true
|
||||
plots.alias.remove: true
|
||||
plots.set.description: true
|
||||
plots.description: true
|
||||
plots.alias: true
|
||||
@ -238,6 +240,8 @@ permissions:
|
||||
plotme.use.nameplot:
|
||||
children:
|
||||
plots.set.alias: true
|
||||
plots.alias.set: true
|
||||
plots.alias.remove: true
|
||||
plotme.limit.*:
|
||||
children:
|
||||
plots.plot.*: true
|
||||
|
@ -2,27 +2,83 @@ package com.intellectualcrafters.plot.commands;
|
||||
|
||||
import com.intellectualcrafters.plot.PS;
|
||||
import com.intellectualcrafters.plot.config.C;
|
||||
import com.intellectualcrafters.plot.object.Location;
|
||||
import com.intellectualcrafters.plot.object.Plot;
|
||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||
import com.intellectualcrafters.plot.object.StringWrapper;
|
||||
import com.intellectualcrafters.plot.util.MainUtil;
|
||||
import com.intellectualcrafters.plot.util.Permissions;
|
||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||
import com.plotsquared.general.commands.CommandDeclaration;
|
||||
|
||||
@CommandDeclaration(
|
||||
command = "setalias",
|
||||
permission = "plots.set.alias",
|
||||
permission = "plots.alias",
|
||||
description = "Set the plot name",
|
||||
usage = "/plot alias <alias>",
|
||||
usage = "/plot alias <set|remove> <alias>",
|
||||
aliases = {"alias", "sa", "name", "rename", "setname", "seta", "nameplot"},
|
||||
category = CommandCategory.SETTINGS,
|
||||
requiredType = RequiredType.NONE)
|
||||
public class Alias extends SetCommand {
|
||||
public class Alias extends SubCommand {
|
||||
|
||||
@Override
|
||||
public boolean set(PlotPlayer player, Plot plot, String alias) {
|
||||
public boolean onCommand(PlotPlayer player, String[] args) {
|
||||
|
||||
if (args.length == 0) {
|
||||
C.COMMAND_SYNTAX.send(player, "/plot alias <set|remove> <value>");
|
||||
return false;
|
||||
}
|
||||
|
||||
Location loc = player.getLocation();
|
||||
Plot plot = loc.getPlotAbs();
|
||||
if (plot == null) {
|
||||
return !sendMessage(player, C.NOT_IN_PLOT);
|
||||
}
|
||||
|
||||
if (!plot.hasOwner()) {
|
||||
sendMessage(player, C.PLOT_NOT_CLAIMED);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!plot.isOwner(player.getUUID())) {
|
||||
MainUtil.sendMessage(player, C.NO_PLOT_PERMS);
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean result = false;
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "set":
|
||||
if (args.length != 2) {
|
||||
C.COMMAND_SYNTAX.send(player, "/plot alias <set> <value>");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(canExecuteCommand(player, C.PERMISSION_ALIAS_SET, false) || canExecuteCommand(player, C.PERMISSION_ALIAS_SET_OBSOLETE, false)) {
|
||||
result = setAlias(player, plot, args[1]);
|
||||
} else {
|
||||
MainUtil.sendMessage(player, C.NO_PERMISSION);
|
||||
}
|
||||
|
||||
break;
|
||||
case "remove":
|
||||
if(canExecuteCommand(player, C.PERMISSION_ALIAS_REMOVE, true)) {
|
||||
result = removeAlias(player, plot);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
C.COMMAND_SYNTAX.send(player, "/plot alias <set|remove> <alias>");
|
||||
result = false;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private boolean setAlias(PlotPlayer player, Plot plot, String alias) {
|
||||
|
||||
if (alias.isEmpty()) {
|
||||
C.COMMAND_SYNTAX.send(player, getUsage());
|
||||
C.COMMAND_SYNTAX.send(player, "/plot alias <set> <value>");
|
||||
return false;
|
||||
}
|
||||
if (alias.length() >= 50) {
|
||||
@ -47,4 +103,20 @@ public class Alias extends SetCommand {
|
||||
MainUtil.sendMessage(player, C.ALIAS_SET_TO.s().replaceAll("%alias%", alias));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean removeAlias(PlotPlayer player, Plot plot) {
|
||||
plot.setAlias(null);
|
||||
MainUtil.sendMessage(player, C.ALIAS_REMOVED.s());
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean canExecuteCommand(PlotPlayer player, C caption, boolean sendMessage) {
|
||||
if (!Permissions.hasPermission(player, caption)) {
|
||||
if(sendMessage) {
|
||||
MainUtil.sendMessage(player, C.NO_PERMISSION);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -156,6 +156,9 @@ public enum C {
|
||||
PERMISSION_SHARED("plots.visit.shared", "static.permissions"),
|
||||
PERMISSION_VISIT_OTHER("plots.visit.other", "static.permissions"),
|
||||
PERMISSION_HOME("plots.home", "static.permissions"),
|
||||
PERMISSION_ALIAS_SET_OBSOLETE("plots.set.alias", "static.permissions"), // Note this is for backwards compatibility
|
||||
PERMISSION_ALIAS_SET("plots.alias.set", "static.permissions"),
|
||||
PERMISSION_ALIAS_REMOVE("plots.alias.remove", "static.permissions"),
|
||||
|
||||
/*
|
||||
* Static console
|
||||
@ -395,6 +398,7 @@ public enum C {
|
||||
* Alias
|
||||
*/
|
||||
ALIAS_SET_TO("$2Plot alias set to $1%alias%", "Alias"),
|
||||
ALIAS_REMOVED("$2Plot alias removed", "Alias"),
|
||||
MISSING_ALIAS("$2You need to specify an alias", "Alias"),
|
||||
ALIAS_TOO_LONG("$2The alias must be < 50 characters in length", "Alias"),
|
||||
ALIAS_IS_TAKEN("$2That alias is already taken", "Alias"),
|
||||
|
@ -110,6 +110,7 @@ ALIAS_SET_TO: "$2Plot Alias auf $1%alias% gesetzt"
|
||||
MISSING_ALIAS: "$2Du musst einen Alias angeben"
|
||||
ALIAS_TOO_LONG: "$2Der Alias darf nicht länger als 50 Zeichen sein"
|
||||
ALIAS_IS_TAKEN: "$2Dieser Alias wird bereits verwendet"
|
||||
ALIAS_REMOVED: "$2Der Alias wurde gelöscht"
|
||||
MISSING_POSITION: "$2Du musst eine Position angeben. Mögliche Werte: $1none"
|
||||
POSITION_SET: "$1Die Position wurde auf deinen aktuellen Standort gesetzt"
|
||||
HOME_ARGUMENT: "$2Verwende /plot set home [none]"
|
||||
|
@ -122,6 +122,8 @@ permissions:
|
||||
plots.set.biome: true
|
||||
plots.set.home: true
|
||||
plots.set.alias: true
|
||||
plots.alias.set: true
|
||||
plots.alias.remove: true
|
||||
plots.set.description: true
|
||||
plots.description: true
|
||||
plots.alias: true
|
||||
|
Loading…
Reference in New Issue
Block a user