2024-02-07 16:38:37 +08:00
|
|
|
package cn.lunadeer.dominion.commands;
|
|
|
|
|
|
|
|
import cn.lunadeer.dominion.controllers.DominionController;
|
|
|
|
import cn.lunadeer.dominion.dtos.DominionDTO;
|
2024-02-17 00:15:57 +08:00
|
|
|
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
2024-02-07 16:38:37 +08:00
|
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import static cn.lunadeer.dominion.commands.Apis.playerOnly;
|
|
|
|
|
|
|
|
public class Helper {
|
|
|
|
|
|
|
|
public static List<String> dominionFlags() {
|
|
|
|
return Arrays.asList(
|
2024-02-15 02:49:28 +08:00
|
|
|
"anchor", "animal_killing", "anvil",
|
|
|
|
"beacon", "bed", "brew", "break", "button",
|
|
|
|
"cake", "container", "craft", "creeper_explode", "comparer",
|
|
|
|
"door", "dye",
|
2024-03-24 19:03:11 +08:00
|
|
|
"egg", "enchant", "ender_man", "ender_pearl",
|
2024-02-15 02:49:28 +08:00
|
|
|
"feed", "fire_spread", "flow_in_protection",
|
|
|
|
"glow",
|
2024-02-17 16:46:59 +08:00
|
|
|
"harvest", "honey", "hook", "hopper",
|
2024-02-15 02:49:28 +08:00
|
|
|
"ignite",
|
|
|
|
"lever",
|
2024-02-26 00:16:56 +08:00
|
|
|
"mob_drop_item", "monster_killing", "move",
|
2024-02-15 02:49:28 +08:00
|
|
|
"place", "pressure",
|
|
|
|
"riding", "repeater",
|
|
|
|
"shear", "shoot",
|
2024-02-23 16:57:01 +08:00
|
|
|
"tnt_explode", "trade", "trample",
|
2024-02-15 02:49:28 +08:00
|
|
|
"vehicle_destroy",
|
2024-02-23 14:56:20 +08:00
|
|
|
"vehicle_spawn",
|
2024-02-15 02:49:28 +08:00
|
|
|
"wither_spawn");
|
2024-02-07 16:38:37 +08:00
|
|
|
}
|
|
|
|
|
2024-02-10 15:35:03 +08:00
|
|
|
public static List<String> playerPrivileges() {
|
2024-02-07 16:38:37 +08:00
|
|
|
return Arrays.asList(
|
2024-02-15 02:49:28 +08:00
|
|
|
"admin", "anchor", "animal_killing", "anvil",
|
|
|
|
"beacon", "bed", "brew", "break", "button",
|
|
|
|
"cake", "container", "craft", "comparer",
|
|
|
|
"door", "dye",
|
|
|
|
"egg", "enchant", "ender_pearl",
|
|
|
|
"feed",
|
|
|
|
"glow",
|
2024-02-17 16:46:59 +08:00
|
|
|
"harvest", "honey", "hook", "hopper",
|
2024-02-15 02:49:28 +08:00
|
|
|
"ignite",
|
|
|
|
"lever",
|
|
|
|
"monster_killing", "move",
|
|
|
|
"place", "pressure", "riding", "repeater",
|
|
|
|
"shear", "shoot",
|
|
|
|
"trade",
|
2024-02-23 14:56:20 +08:00
|
|
|
"vehicle_destroy",
|
|
|
|
"vehicle_spawn");
|
2024-02-07 16:38:37 +08:00
|
|
|
}
|
|
|
|
|
2024-02-17 00:15:57 +08:00
|
|
|
/**
|
|
|
|
* 获取玩家可管理的领地列表
|
|
|
|
*
|
|
|
|
* @param sender 命令发送者
|
|
|
|
* @return 领地列表
|
|
|
|
*/
|
2024-02-07 16:38:37 +08:00
|
|
|
public static List<String> playerDominions(CommandSender sender) {
|
2024-02-17 15:37:44 +08:00
|
|
|
List<String> dominions_name = new ArrayList<>();
|
|
|
|
Player player = playerOnly(sender);
|
|
|
|
if (player == null) return dominions_name;
|
|
|
|
dominions_name.addAll(playerOwnDominions(sender));
|
|
|
|
dominions_name.addAll(playerAdminDominions(sender));
|
|
|
|
return dominions_name;
|
|
|
|
}
|
|
|
|
|
2024-02-17 16:46:59 +08:00
|
|
|
public static List<String> playerOwnDominions(CommandSender sender) {
|
2024-02-07 16:38:37 +08:00
|
|
|
List<String> dominions_name = new ArrayList<>();
|
|
|
|
Player player = playerOnly(sender);
|
|
|
|
if (player == null) return dominions_name;
|
2024-02-17 00:15:57 +08:00
|
|
|
List<DominionDTO> dominions_own = DominionController.all(player);
|
|
|
|
for (DominionDTO dominion : dominions_own) {
|
2024-02-07 16:38:37 +08:00
|
|
|
dominions_name.add(dominion.getName());
|
|
|
|
}
|
2024-02-17 15:37:44 +08:00
|
|
|
return dominions_name;
|
|
|
|
}
|
|
|
|
|
2024-02-17 16:46:59 +08:00
|
|
|
public static List<String> playerAdminDominions(CommandSender sender) {
|
2024-02-17 15:37:44 +08:00
|
|
|
List<String> dominions_name = new ArrayList<>();
|
|
|
|
Player player = playerOnly(sender);
|
|
|
|
if (player == null) return dominions_name;
|
|
|
|
List<PlayerPrivilegeDTO> dominions_admin = PlayerPrivilegeDTO.selectAll(player.getUniqueId());
|
2024-02-17 00:15:57 +08:00
|
|
|
for (PlayerPrivilegeDTO privilege : dominions_admin) {
|
|
|
|
if (privilege.getAdmin()) {
|
|
|
|
DominionDTO dom = DominionDTO.select(privilege.getDomID());
|
|
|
|
if (dom == null) continue;
|
|
|
|
dominions_name.add(dom.getName());
|
|
|
|
}
|
|
|
|
}
|
2024-02-07 16:38:37 +08:00
|
|
|
return dominions_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|