Port blocked-cmds flag

This commit is contained in:
Alexander Söderberg 2020-02-17 19:29:25 +01:00
parent d274dcbae6
commit 95a1b0612f
5 changed files with 40 additions and 5 deletions

View File

@ -13,7 +13,7 @@ import com.github.intellectualsites.plotsquared.plot.flags.implementations.Anima
import com.github.intellectualsites.plotsquared.plot.flags.implementations.AnimalInteractFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.AnimalInteractFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockBurnFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockBurnFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockIgnitionFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockIgnitionFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BreakFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockedCmdsFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyTeleportFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyTeleportFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DisablePhysicsFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.DisablePhysicsFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DoneFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.DoneFlag;
@ -672,10 +672,10 @@ import java.util.regex.Pattern;
if (plot == null) { if (plot == null) {
return; return;
} }
Optional<List<String>> flag = plot.getFlag(Flags.BLOCKED_CMDS);
if (flag.isPresent() && !Permissions List<String> blockedCommands = plot.getFlag(BlockedCmdsFlag.class);
if (!blockedCommands.isEmpty() && !Permissions
.hasPermission(plotPlayer, Captions.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) { .hasPermission(plotPlayer, Captions.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) {
List<String> blockedCommands = flag.get();
String part = parts[0]; String part = parts[0];
if (parts[0].contains(":")) { if (parts[0].contains(":")) {
part = parts[0].split(":")[1]; part = parts[0].split(":")[1];

View File

@ -632,6 +632,7 @@ public enum Captions implements Caption {
FLAG_DESCRIPTION_DENY_TELEPORT("Deny a certain group from teleporting to the plot. Available groups: members, nonmembers, trusted, nontrusted, nonowners", "Flags"), FLAG_DESCRIPTION_DENY_TELEPORT("Deny a certain group from teleporting to the plot. Available groups: members, nonmembers, trusted, nontrusted, nonowners", "Flags"),
FLAG_DESCRIPTION_GAMEMODE("Determines the gamemode in the plot.", "Flags"), FLAG_DESCRIPTION_GAMEMODE("Determines the gamemode in the plot.", "Flags"),
FLAG_DESCRIPTION_GUEST_GAMEMODE("Determines the guest gamemode in the plot.", "Flags"), FLAG_DESCRIPTION_GUEST_GAMEMODE("Determines the guest gamemode in the plot.", "Flags"),
FLAG_DESCRIPTION_BLOCKED_CMDS("A list of commands that are blocked in the plot.", "Flags"),
//</editor-fold> //</editor-fold>
//<editor-fold desc="Flag category errors"> //<editor-fold desc="Flag category errors">
FLAG_ERROR_BOOLEAN("Flag value must be a boolean (true|false)", "Flags"), FLAG_ERROR_BOOLEAN("Flag value must be a boolean (true|false)", "Flags"),

View File

@ -7,7 +7,6 @@ import com.github.intellectualsites.plotsquared.plot.util.MathMan;
public final class Flags { public final class Flags {
public static final LongFlag TIME = new LongFlag("time"); public static final LongFlag TIME = new LongFlag("time");
public static final StringListFlag BLOCKED_CMDS = new StringListFlag("blocked-cmds");
public static final Flag<?> KEEP = new Flag(Captions.FLAG_CATEGORY_MIXED, "keep") { public static final Flag<?> KEEP = new Flag(Captions.FLAG_CATEGORY_MIXED, "keep") {
@Override public String valueToString(Object value) { @Override public String valueToString(Object value) {
return value.toString(); return value.toString();

View File

@ -6,6 +6,7 @@ import com.github.intellectualsites.plotsquared.plot.flags.implementations.Anima
import com.github.intellectualsites.plotsquared.plot.flags.implementations.AnimalInteractFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.AnimalInteractFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockBurnFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockBurnFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockIgnitionFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockIgnitionFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BlockedCmdsFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.BreakFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.BreakFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyExitFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyExitFlag;
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyTeleportFlag; import com.github.intellectualsites.plotsquared.plot.flags.implementations.DenyTeleportFlag;
@ -169,6 +170,7 @@ public final class GlobalFlagContainer extends FlagContainer {
// Misc // Misc
this.addFlag(GamemodeFlag.GAMEMODE_FLAG_DEFAULT); this.addFlag(GamemodeFlag.GAMEMODE_FLAG_DEFAULT);
this.addFlag(GuestGamemodeFlag.GUEST_GAMEMODE_FLAG_DEFAULT); this.addFlag(GuestGamemodeFlag.GUEST_GAMEMODE_FLAG_DEFAULT);
this.addFlag(BlockedCmdsFlag.BLOCKED_CMDS_FLAG_NONE);
// Internal flags // Internal flags
this.addFlag(new AnalysisFlag(Collections.emptyList())); this.addFlag(new AnalysisFlag(Collections.emptyList()));

View File

@ -0,0 +1,33 @@
package com.github.intellectualsites.plotsquared.plot.flags.implementations;
import com.github.intellectualsites.plotsquared.plot.config.Captions;
import com.github.intellectualsites.plotsquared.plot.flags.FlagParseException;
import com.github.intellectualsites.plotsquared.plot.flags.types.ListFlag;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class BlockedCmdsFlag extends ListFlag<String, BlockedCmdsFlag> {
public static final BlockedCmdsFlag BLOCKED_CMDS_FLAG_NONE = new BlockedCmdsFlag(Collections.emptyList());
protected BlockedCmdsFlag(List<String> valueList) {
super(valueList, Captions.FLAG_CATEGORY_STRING_LIST, Captions.FLAG_DESCRIPTION_BLOCKED_CMDS);
}
@Override public BlockedCmdsFlag parse(@NotNull String input) throws FlagParseException {
return flagOf(Arrays.asList(input.split(",")));
}
@Override public String getExample() {
return "gamemode survival, spawn";
}
@Override protected BlockedCmdsFlag flagOf(@NotNull List<String> value) {
return new BlockedCmdsFlag(value);
}
}