新增权限节点功能

This commit is contained in:
zhangyuheng 2024-07-25 00:08:49 +08:00
parent d348ee76f9
commit ee2cc157d0
16 changed files with 188 additions and 96 deletions

View File

@ -6,7 +6,7 @@
<groupId>cn.lunadeer</groupId>
<artifactId>Dominion</artifactId>
<version>1.41.0-beta</version>
<version>1.42.0-beta</version>
<packaging>jar</packaging>
<name>Dominion</name>

View File

@ -19,6 +19,14 @@ public class Apis {
return (Player) sender;
}
public static boolean hasPermission(CommandSender sender, String permission) {
if (!sender.hasPermission(permission)) {
Notification.error(sender, "你没有 %s 权限执行此命令", permission);
return false;
}
return true;
}
public static void sizeInfo(CommandSender sender, DominionDTO dominionDTO) {
Integer x1 = dominionDTO.getX1();
Integer y1 = dominionDTO.getY1();
@ -52,17 +60,6 @@ public class Apis {
return points;
}
public static boolean notOpOrConsole(CommandSender sender) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (!player.isOp()) {
Notification.warn(player, "你没有权限使用此命令");
return true;
}
}
return false;
}
public static String CommandParser(String command, Object... args) {
return String.format(command, args);
}

View File

@ -7,9 +7,8 @@ import cn.lunadeer.dominion.tuis.dominion.manage.EnvSetting;
import cn.lunadeer.dominion.tuis.dominion.manage.GuestSetting;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
public class DominionFlag {
@ -21,9 +20,10 @@ public class DominionFlag {
* @param args 命令参数
*/
public static void setDominionFlag(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 3) {
FlagsController.setFlag(operator, args[1], Boolean.parseBoolean(args[2]));
} else if (args.length == 4) {

View File

@ -21,8 +21,7 @@ import java.time.LocalDateTime;
import java.util.Map;
import static cn.lunadeer.dominion.DominionNode.isInDominion;
import static cn.lunadeer.dominion.commands.Apis.autoPoints;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Apis.*;
public class DominionOperate {
/**
@ -33,6 +32,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void createDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2) {
@ -57,6 +59,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void createSubDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2 && args.length != 3) {
@ -85,6 +90,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void autoCreateDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2) {
@ -108,6 +116,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void autoCreateSubDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2 && args.length != 3) {
@ -130,6 +141,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void expandDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2 && args.length != 3) {
@ -167,6 +181,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void contractDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2 && args.length != 3) {
@ -204,9 +221,10 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void deleteDominion(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 2) {
String name = args[1];
DominionController.delete(operator, name, false);
@ -230,9 +248,10 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void setEnterMessage(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 2) {
DominionController.setJoinMessage(operator, args[1]);
return;
@ -252,9 +271,10 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void setLeaveMessage(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 2) {
DominionController.setLeaveMessage(operator, args[1]);
return;
@ -274,6 +294,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void setTpLocation(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
@ -299,9 +322,10 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void renameDominion(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length != 3) {
Notification.error(sender, "用法: /dominion rename <原领地名称> <新领地名称>");
return;
@ -317,9 +341,10 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void giveDominion(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
if (!hasPermission(sender, "dominion.default")) {
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 3) {
String dom_name = args[1];
String player_name = args[2];
@ -345,6 +370,9 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void teleportToDominion(CommandSender sender, String[] args) {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;
if (args.length != 2) {
@ -457,13 +485,14 @@ public class DominionOperate {
* @param args 命令参数
*/
public static void setMapColor(CommandSender sender, String[] args) {
Player player = playerOnly(sender);
if (player == null) return;
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 2) {
Notification.error(sender, "用法: /dominion set_map_color <颜色> [领地名称]");
return;
}
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
if (args.length == 2) {
DominionController.setMapColor(operator, args[1]);
} else {

View File

@ -7,7 +7,6 @@ import cn.lunadeer.dominion.tuis.dominion.manage.group.GroupSetting;
import cn.lunadeer.dominion.tuis.dominion.manage.group.SelectMember;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -16,7 +15,7 @@ import java.util.Collections;
import java.util.List;
import static cn.lunadeer.dominion.Commands.boolOptions;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
import static cn.lunadeer.dominion.commands.Helper.*;
import static cn.lunadeer.dominion.tuis.Apis.getPage;
@ -30,13 +29,14 @@ public class Group {
*/
public static void createGroup(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 4) {
Notification.error(sender, "用法: /dominion group create <领地名称> <权限组名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String groupName = args[3];
GroupController.createGroup(operator, dominionName, groupName);
@ -54,13 +54,14 @@ public class Group {
*/
public static void deleteGroup(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 4) {
Notification.error(sender, "用法: /dominion group delete <领地名称> <权限组名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String groupName = args[3];
GroupController.deleteGroup(operator, dominionName, groupName);
@ -78,13 +79,14 @@ public class Group {
*/
public static void renameGroup(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 5) {
Notification.error(sender, "用法: /dominion group rename <领地名称> <权限组旧名称> <新名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String oldGroupName = args[3];
String newGroupName = args[4];
@ -103,13 +105,14 @@ public class Group {
*/
public static void setGroupFlag(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 6) {
Notification.error(sender, "用法: /dominion group set_flag <领地名称> <权限组名称> <权限名称> <true|false>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String groupName = args[3];
String flag = args[4];
@ -130,13 +133,14 @@ public class Group {
*/
public static void addMember(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 5) {
Notification.error(sender, "用法: /dominion group add_member <领地名称> <权限组名称> <玩家名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String groupName = args[3];
String playerName = args[4];
@ -156,13 +160,14 @@ public class Group {
*/
public static void removeMember(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 5) {
Notification.error(sender, "用法: /dominion group remove_member <领地名称> <权限组名称> <玩家名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String groupName = args[3];
String playerName = args[4];

View File

@ -8,7 +8,6 @@ import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectPlayer;
import cn.lunadeer.dominion.tuis.dominion.manage.member.SelectTemplate;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -18,7 +17,7 @@ import java.util.List;
import static cn.lunadeer.dominion.Commands.boolOptions;
import static cn.lunadeer.dominion.Commands.playerNames;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
import static cn.lunadeer.dominion.commands.Helper.*;
public class Member {
@ -32,13 +31,14 @@ public class Member {
*/
public static void member_add(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 4) {
Notification.error(sender, "用法: /dominion member add <领地名称> <玩家名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String playerName = args[3];
MemberController.memberAdd(operator, dominionName, playerName);
@ -57,13 +57,14 @@ public class Member {
*/
public static void member_set_flag(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 6) {
Notification.error(sender, "用法: /dominion member set_flag <领地名称> <玩家名称> <权限名称> <true/false>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String playerName = args[3];
String flagName = args[4];
@ -85,13 +86,14 @@ public class Member {
*/
public static void member_remove(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 4) {
Notification.error(sender, "用法: /dominion member remove <领地名称> <玩家名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String playerName = args[3];
MemberController.memberRemove(operator, dominionName, playerName);
@ -110,13 +112,14 @@ public class Member {
*/
public static void member_apply_template(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 5) {
Notification.error(sender, "用法: /dominion member apply_template <领地名称> <玩家名称> <模板名称>");
return;
}
Player player = playerOnly(sender);
if (player == null) return;
BukkitPlayerOperator operator = BukkitPlayerOperator.create(player);
BukkitPlayerOperator operator = BukkitPlayerOperator.create(sender);
String dominionName = args[2];
String playerName = args[3];
String templateName = args[4];

View File

@ -14,12 +14,16 @@ import org.bukkit.entity.Player;
import java.util.List;
import java.util.Objects;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
public class Migration {
public static void migrate(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
Player player = playerOnly(sender);
if (player == null) return;

View File

@ -15,12 +15,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static cn.lunadeer.dominion.commands.Apis.notOpOrConsole;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
public class Operator {
public static void reloadCache(CommandSender sender, String[] args) {
if (notOpOrConsole(sender)) return;
if (!hasPermission(sender, "dominion.admin")) {
return;
}
Scheduler.runTaskAsync(() -> {
Notification.info(sender, "正在从数据库重新加载领地缓存...");
Cache.instance.loadDominions();
@ -39,7 +42,9 @@ public class Operator {
}
public static void exportMca(CommandSender sender, String[] args) {
if (notOpOrConsole(sender)) return;
if (!hasPermission(sender, "dominion.admin")) {
return;
}
Scheduler.runTaskAsync(() -> {
Notification.info(sender, "正在导出拥有领地的MCA文件列表...");
Map<String, List<String>> mca_cords = new HashMap<>();
@ -110,7 +115,9 @@ public class Operator {
}
public static void reloadConfig(CommandSender sender, String[] args) {
if (notOpOrConsole(sender)) return;
if (!hasPermission(sender, "dominion.admin")) {
return;
}
Scheduler.runTaskAsync(() -> {
Notification.info(sender, "正在重新加载配置文件...");
Dominion.config.reload();

View File

@ -5,12 +5,14 @@ import cn.lunadeer.dominion.tuis.SysConfig;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.command.CommandSender;
import static cn.lunadeer.dominion.commands.Apis.notOpOrConsole;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
public class SetConfig {
public static void handler(CommandSender sender, String[] args) {
if (notOpOrConsole(sender)) return;
if (!hasPermission(sender, "dominion.admin")) {
return;
}
if (args.length < 2) {
Notification.error(sender, "参数错误");
return;

View File

@ -15,6 +15,7 @@ import java.util.Collections;
import java.util.List;
import static cn.lunadeer.dominion.Commands.boolOptions;
import static cn.lunadeer.dominion.commands.Apis.hasPermission;
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
import static cn.lunadeer.dominion.commands.Helper.allTemplates;
import static cn.lunadeer.dominion.commands.Helper.playerPrivileges;
@ -31,6 +32,9 @@ public class Template {
*/
public static void createTemplate(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 3) {
Notification.error(sender, "用法: /dominion template create <模板名称>");
return;
@ -54,6 +58,9 @@ public class Template {
*/
public static void deleteTemplate(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 3) {
Notification.error(sender, "用法: /dominion template delete <模板名称>");
return;
@ -77,6 +84,9 @@ public class Template {
*/
public static void setTemplateFlag(CommandSender sender, String[] args) {
try {
if (!hasPermission(sender, "dominion.default")) {
return;
}
if (args.length < 5) {
Notification.error(sender, "用法: /dominion template set_flag <模板名称> <权限名称> <true/false>");
return;

View File

@ -48,9 +48,9 @@ public interface AbstractOperator {
public @Nullable Location getLocation();
public Player getPlayer();
public @Nullable Player getPlayer();
public BlockFace getDirection();
public @Nullable BlockFace getDirection();
public CompletableFuture<Result> getResponse();
}

View File

@ -1,6 +1,7 @@
package cn.lunadeer.dominion.controllers;
import cn.lunadeer.dominion.Cache;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.MemberDTO;
import org.bukkit.Location;
@ -8,12 +9,12 @@ import org.bukkit.Location;
public class Apis {
public static boolean notOwner(AbstractOperator player, DominionDTO dominion) {
if (player.isOp()) return false;
if (player.isOp() && Dominion.config.getLimitOpBypass()) return false;
return !dominion.getOwner().equals(player.getUniqueId());
}
public static boolean noAuthToChangeFlags(AbstractOperator player, DominionDTO dominion) {
if (player.isOp()) return false;
if (player.isOp() && Dominion.config.getLimitOpBypass()) return false;
if (!dominion.getOwner().equals(player.getUniqueId())) {
MemberDTO privileges = MemberDTO.select(player.getUniqueId(), dominion.getId());
if (privileges == null || !privileges.getAdmin()) {

View File

@ -3,29 +3,43 @@ package cn.lunadeer.dominion.controllers;
import cn.lunadeer.minecraftpluginutils.Notification;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import javax.annotation.Nullable;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
public class BukkitPlayerOperator implements AbstractOperator {
private final org.bukkit.entity.Player player;
private final CommandSender player;
private final CompletableFuture<Result> response = new CompletableFuture<>();
public BukkitPlayerOperator(org.bukkit.entity.Player player) {
public BukkitPlayerOperator(CommandSender player) {
this.player = player;
}
public boolean isConsole() {
return !(player instanceof Player);
}
@Override
public UUID getUniqueId() {
return player.getUniqueId();
if (isConsole()) {
return UUID.randomUUID();
} else {
return ((Player) player).getUniqueId();
}
}
@Override
public boolean isOp() {
return player.isOp();
if (isConsole()) {
return true;
} else {
return ((Player) player).isOp();
}
}
@Override
@ -34,19 +48,30 @@ public class BukkitPlayerOperator implements AbstractOperator {
}
@Override
public Location getLocation() {
return player.getLocation();
public @Nullable Location getLocation() {
if (isConsole()) {
return null;
} else {
return ((Player) player).getLocation();
}
}
@Override
public Player getPlayer() {
return player;
public @Nullable Player getPlayer() {
if (isConsole()) {
return null;
} else {
return (Player) player;
}
}
@Override
public BlockFace getDirection() {
float yaw = player.getLocation().getYaw();
float pitch = player.getLocation().getPitch();
public @Nullable BlockFace getDirection() {
if (isConsole() || getLocation() == null) {
return null;
}
float yaw = getLocation().getYaw();
float pitch = getLocation().getPitch();
if (pitch > -45 && pitch < 45) {
if (yaw > -45 && yaw < 45) {
return BlockFace.SOUTH;
@ -69,7 +94,7 @@ public class BukkitPlayerOperator implements AbstractOperator {
return response;
}
public static BukkitPlayerOperator create(org.bukkit.entity.Player player) {
public static BukkitPlayerOperator create(CommandSender player) {
BukkitPlayerOperator operator = new BukkitPlayerOperator(player);
operator.getResponse().thenAccept(result -> {
if (Objects.equals(result.getStatus(), BukkitPlayerOperator.Result.SUCCESS)) {

View File

@ -859,6 +859,10 @@ public class DominionController {
private static int[] expandContractSizeChange(AbstractOperator operator, @NotNull DominionDTO dominion, boolean expand, int size, AbstractOperator.Result FAIL) {
BlockFace face = operator.getDirection();
if (face == null) {
operator.setResponse(FAIL.addMessage("无法获取你的方向"));
return null;
}
int[] result = new int[6];
result[0] = dominion.getX1();
result[1] = dominion.getY1();

View File

@ -13,7 +13,6 @@ public class FlagsController {
* @param operator 操作者
* @param flag 权限名称
* @param value 权限值
* @return 设置后的领地信息
*/
public static void setFlag(AbstractOperator operator, String flag, boolean value) {
DominionDTO dominion = Apis.getPlayerCurrentDominion(operator);
@ -29,7 +28,6 @@ public class FlagsController {
* @param flag 权限名称
* @param value 权限值
* @param dominionName 领地名称
* @return 设置后的领地信息
*/
public static void setFlag(AbstractOperator operator, String flag, boolean value, String dominionName) {
DominionDTO dominion = DominionDTO.select(dominionName);

View File

@ -11,4 +11,11 @@ commands:
Dominion:
description: 领地插件命令
usage: /dominion <cmd>
aliases: [dominion, dom]
aliases: [ dominion, dom ]
permission:
dominion.admin:
description: 领地插件管理员权限
default: op
dominion.default:
description: 领地插件用户权限
default: true