mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 22:56:45 +01:00
Tweaks (perms, debug, scripting)
This commit is contained in:
parent
994ca12102
commit
b40c464da9
@ -92,13 +92,8 @@ public class DebugExec extends SubCommand {
|
|||||||
File file = new File(PS.get().IMP.getDirectory(), "scripts" + File.separator + "start.js");
|
File file = new File(PS.get().IMP.getDirectory(), "scripts" + File.separator + "start.js");
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
init();
|
init();
|
||||||
TaskManager.runTaskLater(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
onCommand(ConsolePlayer.getConsole(), new String[] {"run", "start.js"});
|
onCommand(ConsolePlayer.getConsole(), new String[] {"run", "start.js"});
|
||||||
}
|
}
|
||||||
}, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
|
@ -34,6 +34,7 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
import com.intellectualcrafters.plot.util.MathMan;
|
import com.intellectualcrafters.plot.util.MathMan;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.StringMan;
|
import com.intellectualcrafters.plot.util.StringMan;
|
||||||
import com.intellectualcrafters.plot.util.helpmenu.HelpMenu;
|
import com.intellectualcrafters.plot.util.helpmenu.HelpMenu;
|
||||||
@ -141,7 +142,7 @@ public class MainCommand extends CommandManager<PlotPlayer> {
|
|||||||
if (category != null && !command.getCategory().equals(category)) {
|
if (category != null && !command.getCategory().equals(category)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (player != null && !player.hasPermission(command.getPermission())) {
|
if (player != null && !Permissions.hasPermission(player, command.getPermission())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
commands.add(command);
|
commands.add(command);
|
||||||
|
@ -71,34 +71,34 @@ public class list extends SubCommand {
|
|||||||
|
|
||||||
private String[] getArgumentList(PlotPlayer player) {
|
private String[] getArgumentList(PlotPlayer player) {
|
||||||
List<String> args = new ArrayList<>();
|
List<String> args = new ArrayList<>();
|
||||||
if (EconHandler.manager != null && player.hasPermission("plots.list.forsale")) {
|
if (EconHandler.manager != null && Permissions.hasPermission(player, "plots.list.forsale")) {
|
||||||
args.add("forsale");
|
args.add("forsale");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.mine")) {
|
if (Permissions.hasPermission(player, "plots.list.mine")) {
|
||||||
args.add("mine");
|
args.add("mine");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.shared")) {
|
if (Permissions.hasPermission(player, "plots.list.shared")) {
|
||||||
args.add("shared");
|
args.add("shared");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.world")) {
|
if (Permissions.hasPermission(player, "plots.list.world")) {
|
||||||
args.add("world");
|
args.add("world");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.top")) {
|
if (Permissions.hasPermission(player, "plots.list.top")) {
|
||||||
args.add("top");
|
args.add("top");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list..all")) {
|
if (Permissions.hasPermission(player, "plots.list..all")) {
|
||||||
args.add("all");
|
args.add("all");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.unowned")) {
|
if (Permissions.hasPermission(player, "plots.list.unowned")) {
|
||||||
args.add("unowned");
|
args.add("unowned");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.unknown")) {
|
if (Permissions.hasPermission(player, "plots.list.unknown")) {
|
||||||
args.add("unknown");
|
args.add("unknown");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.player")) {
|
if (Permissions.hasPermission(player, "plots.list.player")) {
|
||||||
args.add("<player>");
|
args.add("<player>");
|
||||||
}
|
}
|
||||||
if (player.hasPermission("plots.list.world")) {
|
if (Permissions.hasPermission(player, "plots.list.world")) {
|
||||||
args.add("<world>");
|
args.add("<world>");
|
||||||
}
|
}
|
||||||
return args.toArray(new String[args.size()]);
|
return args.toArray(new String[args.size()]);
|
||||||
|
@ -37,6 +37,7 @@ import com.intellectualcrafters.plot.object.PlotSettings;
|
|||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.EventUtil;
|
import com.intellectualcrafters.plot.util.EventUtil;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag Manager Utility
|
* Flag Manager Utility
|
||||||
@ -369,7 +370,7 @@ public class FlagManager {
|
|||||||
public static List<AbstractFlag> getFlags(final PlotPlayer player) {
|
public static List<AbstractFlag> getFlags(final PlotPlayer player) {
|
||||||
final List<AbstractFlag> returnFlags = new ArrayList<>();
|
final List<AbstractFlag> returnFlags = new ArrayList<>();
|
||||||
for (final AbstractFlag flag : flags) {
|
for (final AbstractFlag flag : flags) {
|
||||||
if (player.hasPermission("plots.set.flag." + flag.getKey().toLowerCase())) {
|
if (Permissions.hasPermission(player, "plots.set.flag." + flag.getKey().toLowerCase())) {
|
||||||
returnFlags.add(flag);
|
returnFlags.add(flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.intellectualcrafters.plot.object.PlotPlayer;
|
|||||||
public enum Permissions {
|
public enum Permissions {
|
||||||
// ADMIN
|
// ADMIN
|
||||||
ADMIN("plots.admin", "do-not-change"),
|
ADMIN("plots.admin", "do-not-change"),
|
||||||
|
STAR("*", "do-not-change"),
|
||||||
// BUILD
|
// BUILD
|
||||||
BUILD_OTHER("plots.admin.build.other", "build"),
|
BUILD_OTHER("plots.admin.build.other", "build"),
|
||||||
BUILD_ROAD("plots.admin.build.road", "build"),
|
BUILD_ROAD("plots.admin.build.road", "build"),
|
||||||
@ -35,17 +36,17 @@ public enum Permissions {
|
|||||||
|
|
||||||
|
|
||||||
public static boolean hasPermission(final PlotPlayer player, final String perm) {
|
public static boolean hasPermission(final PlotPlayer player, final String perm) {
|
||||||
if ((player == null) || player.hasPermission(ADMIN.s)) {
|
if ((player == null) || player.hasPermission(ADMIN.s) || player.hasPermission(STAR.s)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (player.hasPermission(perm)) {
|
if (Permissions.hasPermission(player, perm)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
final String[] nodes = perm.split("\\.");
|
final String[] nodes = perm.split("\\.");
|
||||||
final StringBuilder n = new StringBuilder();
|
final StringBuilder n = new StringBuilder();
|
||||||
for (int i = 0; i < (nodes.length - 1); i++) {
|
for (int i = 0; i < (nodes.length - 1); i++) {
|
||||||
n.append(nodes[i] + ("."));
|
n.append(nodes[i] + ("."));
|
||||||
if (player.hasPermission(n + "*")) {
|
if (player.hasPermission(n + STAR.s)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,35 +54,24 @@ public enum Permissions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean hasPermission(final PlotPlayer player, final String perm, boolean notify) {
|
public static boolean hasPermission(final PlotPlayer player, final String perm, boolean notify) {
|
||||||
if ((player == null) || player.hasPermission(ADMIN.s)) {
|
if (!hasPermission(player, perm)) {
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (player.hasPermission(perm)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
final String[] nodes = perm.split("\\.");
|
|
||||||
final StringBuilder n = new StringBuilder();
|
|
||||||
for (int i = 0; i < (nodes.length - 1); i++) {
|
|
||||||
n.append(nodes[i] + ("."));
|
|
||||||
if (player.hasPermission(n + "*")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (notify) {
|
if (notify) {
|
||||||
MainUtil.sendMessage(player, C.NO_PERMISSION_EVENT, perm);
|
MainUtil.sendMessage(player, C.NO_PERMISSION_EVENT, perm);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static int hasPermissionRange(final PlotPlayer player, final String stub, final int range) {
|
public static int hasPermissionRange(final PlotPlayer player, final String stub, final int range) {
|
||||||
if ((player == null) || player.hasPermission(ADMIN.s)) {
|
if ((player == null) || player.hasPermission(ADMIN.s) || player.hasPermission(STAR.s)) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
if (player.hasPermission(stub + ".*")) {
|
if (Permissions.hasPermission(player, stub + ".*")) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
for (int i = range; i > 0; i--) {
|
for (int i = range; i > 0; i--) {
|
||||||
if (player.hasPermission(stub + "." + i)) {
|
if (Permissions.hasPermission(player, stub + "." + i)) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -355,7 +355,7 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
|
|||||||
}
|
}
|
||||||
|
|
||||||
Flag flag;
|
Flag flag;
|
||||||
if (!player.hasPermission(PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS) && (flag = FlagManager.getPlotFlag(plot, "blocked-cmds")) != null) {
|
if (!Permissions.hasPermission(pp, PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS) && (flag = FlagManager.getPlotFlag(plot, "blocked-cmds")) != null) {
|
||||||
List<String> v = (List<String>) flag.getValue();
|
List<String> v = (List<String>) flag.getValue();
|
||||||
|
|
||||||
String msg = event.getMessage().toLowerCase().replaceFirst("/", "");
|
String msg = event.getMessage().toLowerCase().replaceFirst("/", "");
|
||||||
|
@ -85,8 +85,10 @@ public class BukkitPlayer extends PlotPlayer {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (offline && EconHandler.manager != null) {
|
if (offline && EconHandler.manager != null) {
|
||||||
|
System.out.print("CHECKIGN VAULT!");
|
||||||
return EconHandler.manager.hasPermission(getName(), perm);
|
return EconHandler.manager.hasPermission(getName(), perm);
|
||||||
}
|
}
|
||||||
|
System.out.print("CHECKING: " + perm + " -> " + player.hasPermission(perm));
|
||||||
return this.player.hasPermission(perm);
|
return this.player.hasPermission(perm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import com.intellectualcrafters.plot.commands.DebugUUID;
|
|||||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||||
import com.intellectualcrafters.plot.object.ConsolePlayer;
|
import com.intellectualcrafters.plot.object.ConsolePlayer;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.plotsquared.general.commands.Command;
|
import com.plotsquared.general.commands.Command;
|
||||||
|
|
||||||
@ -63,7 +64,7 @@ public class BukkitCommand implements CommandExecutor, TabCompleter {
|
|||||||
String label = cmd.getCommand();
|
String label = cmd.getCommand();
|
||||||
if (!label.equalsIgnoreCase(best)) {
|
if (!label.equalsIgnoreCase(best)) {
|
||||||
if (label.startsWith(arg)) {
|
if (label.startsWith(arg)) {
|
||||||
if (player.hasPermission(cmd.getPermission())) {
|
if (Permissions.hasPermission(player, cmd.getPermission())) {
|
||||||
tabOptions.add(cmd.getCommand());
|
tabOptions.add(cmd.getCommand());
|
||||||
} else if (cmd.getAliases().size() > 0) {
|
} else if (cmd.getAliases().size() > 0) {
|
||||||
for (String alias : cmd.getAliases()) {
|
for (String alias : cmd.getAliases()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user