mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-19 00:36:40 +08:00
更新表名、内部变量名,规范项目内部分命名
This commit is contained in:
parent
e690b3f66a
commit
21a5b10a97
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>cn.lunadeer</groupId>
|
||||
<artifactId>Dominion</artifactId>
|
||||
<version>1.34.7-beta</version>
|
||||
<version>1.35.0-beta</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>Dominion</name>
|
||||
|
@ -24,8 +24,8 @@ public class Cache {
|
||||
public Cache() {
|
||||
player_current_dominion_id = new HashMap<>();
|
||||
loadDominions();
|
||||
loadPlayerPrivileges();
|
||||
loadGroup();
|
||||
loadMembers();
|
||||
loadGroups();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,71 +104,71 @@ public class Cache {
|
||||
*
|
||||
* @param player_uuid 玩家UUID
|
||||
*/
|
||||
public void loadPlayerPrivileges(UUID player_uuid) {
|
||||
if (_last_update_privilege.get() + UPDATE_INTERVAL < System.currentTimeMillis()) {
|
||||
XLogger.debug("run loadPlayerPrivilegesExecution directly");
|
||||
loadPlayerPrivilegesExecution(player_uuid);
|
||||
public void loadMembers(UUID player_uuid) {
|
||||
if (_last_update_member.get() + UPDATE_INTERVAL < System.currentTimeMillis()) {
|
||||
XLogger.debug("run loadMembersExecution directly");
|
||||
loadMembersExecution(player_uuid);
|
||||
} else {
|
||||
if (_update_privilege_is_scheduled.get()) return;
|
||||
XLogger.debug("schedule loadPlayerPrivilegesExecution");
|
||||
_update_privilege_is_scheduled.set(true);
|
||||
long delay_tick = (UPDATE_INTERVAL - (System.currentTimeMillis() - _last_update_privilege.get())) / 1000 * 20L;
|
||||
if (_update_member_is_scheduled.get()) return;
|
||||
XLogger.debug("schedule loadMembersExecution");
|
||||
_update_member_is_scheduled.set(true);
|
||||
long delay_tick = (UPDATE_INTERVAL - (System.currentTimeMillis() - _last_update_member.get())) / 1000 * 20L;
|
||||
Scheduler.runTaskLaterAsync(() -> {
|
||||
XLogger.debug("run loadPlayerPrivilegesExecution scheduled");
|
||||
loadPlayerPrivilegesExecution(player_uuid);
|
||||
_update_privilege_is_scheduled.set(false);
|
||||
XLogger.debug("run loadMembersExecution scheduled");
|
||||
loadMembersExecution(player_uuid);
|
||||
_update_member_is_scheduled.set(false);
|
||||
},
|
||||
delay_tick);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadPlayerPrivileges() {
|
||||
loadPlayerPrivileges(null);
|
||||
public void loadMembers() {
|
||||
loadMembers(null);
|
||||
}
|
||||
|
||||
private void loadPlayerPrivilegesExecution(UUID player_to_update) {
|
||||
private void loadMembersExecution(UUID player_to_update) {
|
||||
Scheduler.runTaskAsync(() -> {
|
||||
long start = System.currentTimeMillis();
|
||||
List<PlayerPrivilegeDTO> all_privileges;
|
||||
List<MemberDTO> all_privileges;
|
||||
if (player_to_update == null) {
|
||||
all_privileges = PlayerPrivilegeDTO.selectAll();
|
||||
player_uuid_to_privilege = new ConcurrentHashMap<>();
|
||||
all_privileges = MemberDTO.selectAll();
|
||||
player_uuid_to_member = new ConcurrentHashMap<>();
|
||||
} else {
|
||||
all_privileges = PlayerPrivilegeDTO.selectAll(player_to_update);
|
||||
if (!player_uuid_to_privilege.containsKey(player_to_update)) {
|
||||
player_uuid_to_privilege.put(player_to_update, new ConcurrentHashMap<>());
|
||||
all_privileges = MemberDTO.selectAll(player_to_update);
|
||||
if (!player_uuid_to_member.containsKey(player_to_update)) {
|
||||
player_uuid_to_member.put(player_to_update, new ConcurrentHashMap<>());
|
||||
}
|
||||
player_uuid_to_privilege.get(player_to_update).clear();
|
||||
player_uuid_to_member.get(player_to_update).clear();
|
||||
}
|
||||
for (PlayerPrivilegeDTO privilege : all_privileges) {
|
||||
for (MemberDTO privilege : all_privileges) {
|
||||
UUID player_uuid = privilege.getPlayerUUID();
|
||||
if (!player_uuid_to_privilege.containsKey(player_uuid)) {
|
||||
player_uuid_to_privilege.put(player_uuid, new ConcurrentHashMap<>());
|
||||
if (!player_uuid_to_member.containsKey(player_uuid)) {
|
||||
player_uuid_to_member.put(player_uuid, new ConcurrentHashMap<>());
|
||||
}
|
||||
player_uuid_to_privilege.get(player_uuid).put(privilege.getDomID(), privilege);
|
||||
player_uuid_to_member.get(player_uuid).put(privilege.getDomID(), privilege);
|
||||
}
|
||||
recheckPlayerState = true;
|
||||
_last_update_privilege.set(System.currentTimeMillis());
|
||||
XLogger.debug("loadPlayerPrivilegesExecution cost: %d ms for %d privileges"
|
||||
_last_update_member.set(System.currentTimeMillis());
|
||||
XLogger.debug("loadMembersExecution cost: %d ms for %d privileges"
|
||||
, System.currentTimeMillis() - start, all_privileges.size());
|
||||
});
|
||||
}
|
||||
|
||||
public void loadGroup() {
|
||||
loadGroup(null);
|
||||
public void loadGroups() {
|
||||
loadGroups(null);
|
||||
}
|
||||
|
||||
public void loadGroup(Integer groupId) {
|
||||
public void loadGroups(Integer groupId) {
|
||||
if (_last_update_group.get() + UPDATE_INTERVAL < System.currentTimeMillis()) {
|
||||
XLogger.debug("run loadGroupExecution directly");
|
||||
XLogger.debug("run loadGroupsExecution directly");
|
||||
loadGroupExecution(groupId);
|
||||
} else {
|
||||
if (_update_group_is_scheduled.get()) return;
|
||||
XLogger.debug("schedule loadGroupExecution");
|
||||
XLogger.debug("schedule loadGroupsExecution");
|
||||
_update_group_is_scheduled.set(true);
|
||||
long delay_tick = (UPDATE_INTERVAL - (System.currentTimeMillis() - _last_update_group.get())) / 1000 * 20L;
|
||||
Scheduler.runTaskLaterAsync(() -> {
|
||||
XLogger.debug("run loadGroupExecution scheduled");
|
||||
XLogger.debug("run loadGroupsExecution scheduled");
|
||||
loadGroupExecution(groupId);
|
||||
_update_group_is_scheduled.set(false);
|
||||
},
|
||||
@ -195,7 +195,7 @@ public class Cache {
|
||||
}
|
||||
recheckPlayerState = true;
|
||||
_last_update_group.set(System.currentTimeMillis());
|
||||
XLogger.debug("loadGroupExecution cost: %d ms", System.currentTimeMillis() - start);
|
||||
XLogger.debug("loadGroupsExecution cost: %d ms", System.currentTimeMillis() - start);
|
||||
});
|
||||
}
|
||||
|
||||
@ -283,7 +283,7 @@ public class Cache {
|
||||
player.setGlowing(false);
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = getPlayerPrivilege(player, dominion);
|
||||
MemberDTO privilege = getMember(player, dominion);
|
||||
if (privilege != null) {
|
||||
if (privilege.getGroupId() == -1) {
|
||||
player.setGlowing(privilege.getFlagValue(Flag.GLOW));
|
||||
@ -320,7 +320,7 @@ public class Cache {
|
||||
player.setAllowFlight(false);
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = getPlayerPrivilege(player, dominion);
|
||||
MemberDTO privilege = getMember(player, dominion);
|
||||
if (privilege != null) {
|
||||
if (privilege.getGroupId() == -1) {
|
||||
player.setAllowFlight(privilege.getFlagValue(Flag.FLY));
|
||||
@ -375,14 +375,14 @@ public class Cache {
|
||||
* @param dominion 领地
|
||||
* @return 特权表
|
||||
*/
|
||||
public PlayerPrivilegeDTO getPlayerPrivilege(Player player, DominionDTO dominion) {
|
||||
if (!player_uuid_to_privilege.containsKey(player.getUniqueId())) return null;
|
||||
return player_uuid_to_privilege.get(player.getUniqueId()).get(dominion.getId());
|
||||
public MemberDTO getMember(Player player, DominionDTO dominion) {
|
||||
if (!player_uuid_to_member.containsKey(player.getUniqueId())) return null;
|
||||
return player_uuid_to_member.get(player.getUniqueId()).get(dominion.getId());
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO getPlayerPrivilege(UUID player_uuid, DominionDTO dominion) {
|
||||
if (!player_uuid_to_privilege.containsKey(player_uuid)) return null;
|
||||
return player_uuid_to_privilege.get(player_uuid).get(dominion.getId());
|
||||
public MemberDTO getMember(UUID player_uuid, DominionDTO dominion) {
|
||||
if (!player_uuid_to_member.containsKey(player_uuid)) return null;
|
||||
return player_uuid_to_member.get(player_uuid).get(dominion.getId());
|
||||
}
|
||||
|
||||
private static boolean isInDominion(@Nullable DominionDTO dominion, Player player) {
|
||||
@ -437,13 +437,13 @@ public class Cache {
|
||||
private ConcurrentHashMap<Integer, DominionDTO> id_dominions;
|
||||
private ConcurrentHashMap<String, List<DominionNode>> world_dominion_tree;
|
||||
private ConcurrentHashMap<Integer, GroupDTO> id_groups;
|
||||
private ConcurrentHashMap<UUID, ConcurrentHashMap<Integer, PlayerPrivilegeDTO>> player_uuid_to_privilege; // 玩家所有的特权
|
||||
private ConcurrentHashMap<UUID, ConcurrentHashMap<Integer, MemberDTO>> player_uuid_to_member; // 玩家所有的特权
|
||||
private final Map<UUID, Integer> player_current_dominion_id; // 玩家当前所在领地
|
||||
private ConcurrentHashMap<Integer, List<Integer>> dominion_children;
|
||||
private final AtomicLong _last_update_dominion = new AtomicLong(0);
|
||||
private final AtomicBoolean _update_dominion_is_scheduled = new AtomicBoolean(false);
|
||||
private final AtomicLong _last_update_privilege = new AtomicLong(0);
|
||||
private final AtomicBoolean _update_privilege_is_scheduled = new AtomicBoolean(false);
|
||||
private final AtomicLong _last_update_member = new AtomicLong(0);
|
||||
private final AtomicBoolean _update_member_is_scheduled = new AtomicBoolean(false);
|
||||
private final AtomicLong _last_update_group = new AtomicLong(0);
|
||||
private final AtomicBoolean _update_group_is_scheduled = new AtomicBoolean(false);
|
||||
private static final long UPDATE_INTERVAL = 1000 * 4;
|
||||
|
@ -6,7 +6,7 @@ import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
|
||||
import cn.lunadeer.dominion.controllers.DominionController;
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.Flag;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.Scheduler;
|
||||
import cn.lunadeer.minecraftpluginutils.Teleport;
|
||||
@ -374,7 +374,7 @@ public class DominionOperate {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerPrivilegeDTO privilegeDTO = PlayerPrivilegeDTO.select(player.getUniqueId(), dominionDTO.getId());
|
||||
MemberDTO privilegeDTO = MemberDTO.select(player.getUniqueId(), dominionDTO.getId());
|
||||
if (!player.getUniqueId().equals(dominionDTO.getOwner())) { // 领地所有人可以传送到自己的领地
|
||||
if (privilegeDTO == null) {
|
||||
if (!dominionDTO.getFlagValue(Flag.TELEPORT)) {
|
||||
|
@ -55,8 +55,8 @@ public class Helper {
|
||||
if (dominion == null) return players_name;
|
||||
GroupDTO group = GroupDTO.select(dominion.getId(), groupName);
|
||||
if (group == null) return players_name;
|
||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.selectByDomGroupId(dominion.getId(), group.getId());
|
||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
||||
List<MemberDTO> privileges = MemberDTO.selectByDomGroupId(dominion.getId(), group.getId());
|
||||
for (MemberDTO privilege : privileges) {
|
||||
PlayerDTO player = PlayerDTO.select(privilege.getPlayerUUID());
|
||||
if (player == null) continue;
|
||||
players_name.add(player.getLastKnownName());
|
||||
@ -79,8 +79,8 @@ public class Helper {
|
||||
List<String> dominions_name = new ArrayList<>();
|
||||
Player player = playerOnly(sender);
|
||||
if (player == null) return dominions_name;
|
||||
List<PlayerPrivilegeDTO> dominions_admin = PlayerPrivilegeDTO.selectAll(player.getUniqueId());
|
||||
for (PlayerPrivilegeDTO privilege : dominions_admin) {
|
||||
List<MemberDTO> dominions_admin = MemberDTO.selectAll(player.getUniqueId());
|
||||
for (MemberDTO privilege : dominions_admin) {
|
||||
if (privilege.getAdmin()) {
|
||||
DominionDTO dom = DominionDTO.select(privilege.getDomID());
|
||||
if (dom == null) continue;
|
||||
|
@ -28,12 +28,12 @@ public class Operator {
|
||||
});
|
||||
Scheduler.runTaskAsync(() -> {
|
||||
Notification.info(sender, "正在从数据库重新加载玩家权限缓存...");
|
||||
Cache.instance.loadPlayerPrivileges();
|
||||
Cache.instance.loadMembers();
|
||||
Notification.info(sender, "玩家权限缓存已重新加载");
|
||||
});
|
||||
Scheduler.runTaskAsync(() -> {
|
||||
Notification.info(sender, "正在从数据库重新加载权限组缓存...");
|
||||
Cache.instance.loadGroup();
|
||||
Cache.instance.loadGroups();
|
||||
Notification.info(sender, "权限组缓存已重新加载");
|
||||
});
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package cn.lunadeer.dominion.controllers;
|
||||
|
||||
import cn.lunadeer.dominion.Cache;
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import org.bukkit.Location;
|
||||
|
||||
public class Apis {
|
||||
@ -15,7 +15,7 @@ public class Apis {
|
||||
public static boolean noAuthToChangeFlags(AbstractOperator player, DominionDTO dominion) {
|
||||
if (player.isOp()) return false;
|
||||
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
||||
PlayerPrivilegeDTO privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
||||
MemberDTO privileges = MemberDTO.select(player.getUniqueId(), dominion.getId());
|
||||
if (privileges == null || !privileges.getAdmin()) {
|
||||
player.setResponse(new AbstractOperator.Result(AbstractOperator.Result.FAILURE, "你不是领地 %s 的拥有者或管理员,无权修改权限", dominion.getName()));
|
||||
return true;
|
||||
|
@ -151,7 +151,7 @@ public class GroupController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在", playerName));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员,无法直接加入权限组", playerName, domName));
|
||||
return;
|
||||
@ -198,7 +198,7 @@ public class GroupController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在", playerName));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", playerName, domName));
|
||||
return;
|
||||
|
@ -28,7 +28,7 @@ public class MemberController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", player_name, dominionName));
|
||||
return;
|
||||
@ -37,7 +37,7 @@ public class MemberController {
|
||||
operator.setResponse(FAIL.addMessage("你不是领地 %s 的拥有者,无法移除一个领地管理员", dominionName));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO.delete(player.getUuid(), dominion.getId());
|
||||
MemberDTO.delete(player.getUuid(), dominion.getId());
|
||||
operator.setResponse(SUCCESS);
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ public class MemberController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", player_name, dominionName));
|
||||
return;
|
||||
@ -100,7 +100,12 @@ public class MemberController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", player_name));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.insert(new PlayerPrivilegeDTO(player.getUuid(), dominion));
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege != null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 已经是领地 %s 的成员", player_name, dominionName));
|
||||
return;
|
||||
}
|
||||
privilege = MemberDTO.insert(new MemberDTO(player.getUuid(), dominion));
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL);
|
||||
} else {
|
||||
@ -122,7 +127,7 @@ public class MemberController {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不存在或没有登录过", playerName));
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(player.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(player.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
operator.setResponse(FAIL.addMessage("玩家 %s 不是领地 %s 的成员", playerName, dominionName));
|
||||
return;
|
||||
|
@ -74,7 +74,7 @@ public class GroupDTO {
|
||||
try (ResultSet rs = insertRow.execute()) {
|
||||
List<GroupDTO> groups = getDTOFromRS(rs);
|
||||
if (groups.size() == 0) return null;
|
||||
Cache.instance.loadGroup(groups.get(0).getId());
|
||||
Cache.instance.loadGroups(groups.get(0).getId());
|
||||
return groups.get(0);
|
||||
} catch (Exception e) {
|
||||
DatabaseManager.handleDatabaseError("创建权限组失败: ", e, "");
|
||||
@ -89,9 +89,9 @@ public class GroupDTO {
|
||||
public static void delete(Integer id) {
|
||||
String sql = "DELETE FROM dominion_group WHERE id = ?;";
|
||||
DatabaseManager.instance.query(sql, id);
|
||||
Cache.instance.loadGroup(id);
|
||||
List<PlayerPrivilegeDTO> players = PlayerPrivilegeDTO.selectByGroupId(id);
|
||||
for (PlayerPrivilegeDTO player : players) {
|
||||
Cache.instance.loadGroups(id);
|
||||
List<MemberDTO> players = MemberDTO.selectByGroupId(id);
|
||||
for (MemberDTO player : players) {
|
||||
player.setGroupId(-1);
|
||||
}
|
||||
}
|
||||
@ -168,7 +168,7 @@ public class GroupDTO {
|
||||
try (ResultSet rs = updateRow.execute()) {
|
||||
List<GroupDTO> groups = getDTOFromRS(rs);
|
||||
if (groups.size() == 0) return null;
|
||||
Cache.instance.loadGroup((Integer) id.value);
|
||||
Cache.instance.loadGroups((Integer) id.value);
|
||||
return groups.get(0);
|
||||
} catch (Exception e) {
|
||||
DatabaseManager.handleDatabaseError("更新权限组失败: ", e, "");
|
||||
|
@ -10,10 +10,10 @@ import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.*;
|
||||
|
||||
public class PlayerPrivilegeDTO {
|
||||
public class MemberDTO {
|
||||
|
||||
private static List<PlayerPrivilegeDTO> query(String sql, Object... params) {
|
||||
List<PlayerPrivilegeDTO> players = new ArrayList<>();
|
||||
private static List<MemberDTO> query(String sql, Object... params) {
|
||||
List<MemberDTO> players = new ArrayList<>();
|
||||
try (ResultSet rs = DatabaseManager.instance.query(sql, params)) {
|
||||
return getDTOFromRS(rs);
|
||||
} catch (Exception e) {
|
||||
@ -22,8 +22,8 @@ public class PlayerPrivilegeDTO {
|
||||
return players;
|
||||
}
|
||||
|
||||
private static List<PlayerPrivilegeDTO> getDTOFromRS(ResultSet rs) {
|
||||
List<PlayerPrivilegeDTO> players = new ArrayList<>();
|
||||
private static List<MemberDTO> getDTOFromRS(ResultSet rs) {
|
||||
List<MemberDTO> players = new ArrayList<>();
|
||||
if (rs == null) return players;
|
||||
try {
|
||||
while (rs.next()) {
|
||||
@ -31,7 +31,7 @@ public class PlayerPrivilegeDTO {
|
||||
for (Flag f : Flag.getPrivilegeFlagsEnabled()) {
|
||||
flags.put(f, rs.getBoolean(f.getFlagName()));
|
||||
}
|
||||
PlayerPrivilegeDTO player = new PlayerPrivilegeDTO(
|
||||
MemberDTO player = new MemberDTO(
|
||||
rs.getInt("id"),
|
||||
UUID.fromString(rs.getString("player_uuid")),
|
||||
rs.getBoolean("admin"),
|
||||
@ -47,14 +47,14 @@ public class PlayerPrivilegeDTO {
|
||||
return players;
|
||||
}
|
||||
|
||||
private PlayerPrivilegeDTO doUpdate(UpdateRow updateRow) {
|
||||
private MemberDTO doUpdate(UpdateRow updateRow) {
|
||||
updateRow.returningAll(id)
|
||||
.table("player_privilege")
|
||||
.table("dominion_member")
|
||||
.where("id = ?", id.value);
|
||||
try (ResultSet rs = updateRow.execute()) {
|
||||
List<PlayerPrivilegeDTO> players = getDTOFromRS(rs);
|
||||
List<MemberDTO> players = getDTOFromRS(rs);
|
||||
if (players.size() == 0) return null;
|
||||
Cache.instance.loadPlayerPrivileges(getPlayerUUID());
|
||||
Cache.instance.loadMembers(getPlayerUUID());
|
||||
return players.get(0);
|
||||
} catch (Exception e) {
|
||||
DatabaseManager.handleDatabaseError("更新玩家权限失败: ", e, "");
|
||||
@ -62,9 +62,9 @@ public class PlayerPrivilegeDTO {
|
||||
}
|
||||
}
|
||||
|
||||
public static PlayerPrivilegeDTO insert(PlayerPrivilegeDTO player) {
|
||||
public static MemberDTO insert(MemberDTO player) {
|
||||
InsertRow insertRow = new InsertRow().returningAll().onConflictDoNothing(new Field("id", null))
|
||||
.table("player_privilege")
|
||||
.table("dominion_member")
|
||||
.field(player.playerUUID)
|
||||
.field(player.admin)
|
||||
.field(player.domID);
|
||||
@ -72,8 +72,8 @@ public class PlayerPrivilegeDTO {
|
||||
insertRow.field(new Field(f.getFlagName(), player.getFlagValue(f)));
|
||||
}
|
||||
try (ResultSet rs = insertRow.execute()) {
|
||||
Cache.instance.loadPlayerPrivileges(player.getPlayerUUID());
|
||||
List<PlayerPrivilegeDTO> players = getDTOFromRS(rs);
|
||||
Cache.instance.loadMembers(player.getPlayerUUID());
|
||||
List<MemberDTO> players = getDTOFromRS(rs);
|
||||
if (players.size() == 0) return null;
|
||||
return players.get(0);
|
||||
} catch (Exception e) {
|
||||
@ -82,41 +82,41 @@ public class PlayerPrivilegeDTO {
|
||||
}
|
||||
}
|
||||
|
||||
public static PlayerPrivilegeDTO select(UUID playerUUID, Integer dom_id) {
|
||||
String sql = "SELECT * FROM player_privilege WHERE player_uuid = ? AND dom_id = ?;";
|
||||
List<PlayerPrivilegeDTO> p = query(sql, playerUUID.toString(), dom_id);
|
||||
public static MemberDTO select(UUID playerUUID, Integer dom_id) {
|
||||
String sql = "SELECT * FROM dominion_member WHERE player_uuid = ? AND dom_id = ?;";
|
||||
List<MemberDTO> p = query(sql, playerUUID.toString(), dom_id);
|
||||
if (p.size() == 0) return null;
|
||||
return p.get(0);
|
||||
}
|
||||
|
||||
public static List<PlayerPrivilegeDTO> select(Integer dom_id) {
|
||||
String sql = "SELECT * FROM player_privilege WHERE dom_id = ?;";
|
||||
public static List<MemberDTO> select(Integer dom_id) {
|
||||
String sql = "SELECT * FROM dominion_member WHERE dom_id = ?;";
|
||||
return query(sql, dom_id);
|
||||
}
|
||||
|
||||
public static void delete(UUID player, Integer domID) {
|
||||
String sql = "DELETE FROM player_privilege WHERE player_uuid = ? AND dom_id = ?;";
|
||||
String sql = "DELETE FROM dominion_member WHERE player_uuid = ? AND dom_id = ?;";
|
||||
query(sql, player.toString(), domID);
|
||||
Cache.instance.loadPlayerPrivileges(player);
|
||||
Cache.instance.loadMembers(player);
|
||||
}
|
||||
|
||||
public static List<PlayerPrivilegeDTO> selectAll() {
|
||||
String sql = "SELECT * FROM player_privilege;";
|
||||
public static List<MemberDTO> selectAll() {
|
||||
String sql = "SELECT * FROM dominion_member;";
|
||||
return query(sql);
|
||||
}
|
||||
|
||||
public static List<PlayerPrivilegeDTO> selectAll(UUID player) {
|
||||
String sql = "SELECT * FROM player_privilege WHERE player_uuid = ?;";
|
||||
public static List<MemberDTO> selectAll(UUID player) {
|
||||
String sql = "SELECT * FROM dominion_member WHERE player_uuid = ?;";
|
||||
return query(sql, player.toString());
|
||||
}
|
||||
|
||||
public static List<PlayerPrivilegeDTO> selectByGroupId(Integer groupId) {
|
||||
String sql = "SELECT * FROM player_privilege WHERE group_id = ?;";
|
||||
public static List<MemberDTO> selectByGroupId(Integer groupId) {
|
||||
String sql = "SELECT * FROM dominion_member WHERE group_id = ?;";
|
||||
return query(sql, groupId);
|
||||
}
|
||||
|
||||
public static List<PlayerPrivilegeDTO> selectByDomGroupId(Integer domId, Integer groupId) {
|
||||
String sql = "SELECT * FROM player_privilege WHERE group_id = ? AND dom_id = ?;";
|
||||
public static List<MemberDTO> selectByDomGroupId(Integer domId, Integer groupId) {
|
||||
String sql = "SELECT * FROM dominion_member WHERE group_id = ? AND dom_id = ?;";
|
||||
return query(sql, groupId, domId);
|
||||
}
|
||||
|
||||
@ -153,26 +153,26 @@ public class PlayerPrivilegeDTO {
|
||||
return flags.get(flag);
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO setFlagValue(Flag flag, Boolean value) {
|
||||
public MemberDTO setFlagValue(Flag flag, Boolean value) {
|
||||
flags.put(flag, value);
|
||||
Field f = new Field(flag.getFlagName(), value);
|
||||
UpdateRow updateRow = new UpdateRow().field(f);
|
||||
return doUpdate(updateRow);
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO setAdmin(Boolean admin) {
|
||||
public MemberDTO setAdmin(Boolean admin) {
|
||||
this.admin.value = admin;
|
||||
UpdateRow updateRow = new UpdateRow().field(this.admin);
|
||||
return doUpdate(updateRow);
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO setGroupId(Integer groupId) {
|
||||
public MemberDTO setGroupId(Integer groupId) {
|
||||
this.groupId.value = groupId;
|
||||
UpdateRow updateRow = new UpdateRow().field(this.groupId);
|
||||
return doUpdate(updateRow);
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO applyTemplate(PrivilegeTemplateDTO template) {
|
||||
public MemberDTO applyTemplate(PrivilegeTemplateDTO template) {
|
||||
this.admin.value = template.getAdmin();
|
||||
UpdateRow updateRow = new UpdateRow().field(admin);
|
||||
for (Flag f : Flag.getPrivilegeFlagsEnabled()) {
|
||||
@ -182,7 +182,7 @@ public class PlayerPrivilegeDTO {
|
||||
return doUpdate(updateRow);
|
||||
}
|
||||
|
||||
private PlayerPrivilegeDTO(Integer id, UUID playerUUID, Boolean admin, Integer domID, Map<Flag, Boolean> flags, Integer groupId) {
|
||||
private MemberDTO(Integer id, UUID playerUUID, Boolean admin, Integer domID, Map<Flag, Boolean> flags, Integer groupId) {
|
||||
this.id.value = id;
|
||||
this.playerUUID.value = playerUUID.toString();
|
||||
this.admin.value = admin;
|
||||
@ -191,7 +191,7 @@ public class PlayerPrivilegeDTO {
|
||||
this.flags.putAll(flags);
|
||||
}
|
||||
|
||||
public PlayerPrivilegeDTO(UUID playerUUID, DominionDTO dom) {
|
||||
public MemberDTO(UUID playerUUID, DominionDTO dom) {
|
||||
this.id.value = null;
|
||||
this.playerUUID.value = playerUUID.toString();
|
||||
this.admin.value = false;
|
@ -5,7 +5,7 @@ import cn.lunadeer.dominion.Dominion;
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.Flag;
|
||||
import cn.lunadeer.dominion.dtos.GroupDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
@ -17,7 +17,7 @@ import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class Apis {
|
||||
public static boolean canByPass(Player player, DominionDTO dom, PlayerPrivilegeDTO prev) {
|
||||
public static boolean canByPass(Player player, DominionDTO dom, MemberDTO prev) {
|
||||
if (player.isOp() && Dominion.config.getLimitOpBypass()) {
|
||||
return true;
|
||||
}
|
||||
@ -48,7 +48,7 @@ public class Apis {
|
||||
if (dom == null) {
|
||||
return true;
|
||||
}
|
||||
PlayerPrivilegeDTO prev = Cache.instance.getPlayerPrivilege(player, dom);
|
||||
MemberDTO prev = Cache.instance.getMember(player, dom);
|
||||
if (canByPass(player, dom, prev)) {
|
||||
return true;
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import cn.lunadeer.dominion.dtos.Flag;
|
||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.Teleport;
|
||||
import io.papermc.paper.event.block.DragonEggFormEvent;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
|
@ -1,13 +1,13 @@
|
||||
package cn.lunadeer.dominion.managers;
|
||||
|
||||
import cn.lunadeer.dominion.dtos.Flag;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.Field;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.FieldType;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.TableColumn;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.*;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.AddColumn;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.CreateTable;
|
||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
|
||||
public class DatabaseTables {
|
||||
public static void migrate() {
|
||||
// player name
|
||||
@ -58,23 +58,35 @@ public class DatabaseTables {
|
||||
.foreignKey(dominion_parent_dom_id_fk);
|
||||
dominion.execute();
|
||||
|
||||
for (Flag flag : Flag.getAllDominionFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("dominion").ifNotExists().execute();
|
||||
}
|
||||
|
||||
// player privilege
|
||||
TableColumn player_privilege_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn player_privilege_player_uuid = new TableColumn("player_uuid", FieldType.STRING, false, false, true, false, "''");
|
||||
TableColumn player_privilege_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, -1);
|
||||
TableColumn player_privilege_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||
CreateTable.ForeignKey player_privilege_player_uuid_fk = new CreateTable.ForeignKey(player_privilege_player_uuid, "player_name", player_name_uuid, true);
|
||||
CreateTable.ForeignKey player_privilege_dom_id_fk = new CreateTable.ForeignKey(player_privilege_dom_id, "dominion", dominion_id, true);
|
||||
CreateTable player_privilege = new CreateTable().ifNotExists();
|
||||
player_privilege.table("player_privilege")
|
||||
.field(player_privilege_id)
|
||||
.field(player_privilege_player_uuid)
|
||||
.field(player_privilege_dom_id)
|
||||
.field(player_privilege_admin)
|
||||
.foreignKey(player_privilege_player_uuid_fk)
|
||||
.foreignKey(player_privilege_dom_id_fk)
|
||||
.unique(player_privilege_player_uuid, player_privilege_dom_id);
|
||||
player_privilege.execute();
|
||||
if (!Common.IsTableExist("dominion_member")) {
|
||||
TableColumn player_privilege_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn player_privilege_player_uuid = new TableColumn("player_uuid", FieldType.STRING, false, false, true, false, "''");
|
||||
TableColumn player_privilege_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, -1);
|
||||
TableColumn player_privilege_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||
CreateTable.ForeignKey player_privilege_player_uuid_fk = new CreateTable.ForeignKey(player_privilege_player_uuid, "player_name", player_name_uuid, true);
|
||||
CreateTable.ForeignKey player_privilege_dom_id_fk = new CreateTable.ForeignKey(player_privilege_dom_id, "dominion", dominion_id, true);
|
||||
CreateTable player_privilege = new CreateTable().ifNotExists();
|
||||
player_privilege.table("player_privilege")
|
||||
.field(player_privilege_id)
|
||||
.field(player_privilege_player_uuid)
|
||||
.field(player_privilege_dom_id)
|
||||
.field(player_privilege_admin)
|
||||
.foreignKey(player_privilege_player_uuid_fk)
|
||||
.foreignKey(player_privilege_dom_id_fk)
|
||||
.unique(player_privilege_player_uuid, player_privilege_dom_id);
|
||||
player_privilege.execute();
|
||||
|
||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("player_privilege").ifNotExists().execute();
|
||||
}
|
||||
}
|
||||
|
||||
// server root player name
|
||||
Field server_player_name_id_field = new Field("id", -1);
|
||||
@ -116,21 +128,11 @@ public class DatabaseTables {
|
||||
.field(server_dom_leave_message_field);
|
||||
insert_server_dom.execute();
|
||||
|
||||
for (Flag flag : Flag.getAllDominionFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("dominion").ifNotExists().execute();
|
||||
}
|
||||
|
||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("player_privilege").ifNotExists().execute();
|
||||
}
|
||||
|
||||
// 1.18.0
|
||||
// 1.18.0 dominion add tp_location
|
||||
TableColumn dominion_tp_location = new TableColumn("tp_location", FieldType.STRING, false, false, true, false, "'default'");
|
||||
new AddColumn(dominion_tp_location).table("dominion").ifNotExists().execute();
|
||||
|
||||
// 1.31.0
|
||||
// 1.31.0 add privilege_template
|
||||
TableColumn privilege_template_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn privilege_template_creator = new TableColumn("creator", FieldType.STRING, false, false, true, false, "''");
|
||||
TableColumn privilege_template_name = new TableColumn("name", FieldType.STRING, false, false, true, false, "'未命名'");
|
||||
@ -152,31 +154,82 @@ public class DatabaseTables {
|
||||
new AddColumn(column).table("privilege_template").ifNotExists().execute();
|
||||
}
|
||||
|
||||
// 1.31.6
|
||||
// 1.31.6 dominion add blue-map tile color
|
||||
TableColumn dominion_color = new TableColumn("color", FieldType.STRING, false, false, true, false, "'#00BFFF'");
|
||||
new AddColumn(dominion_color).table("dominion").ifNotExists().execute();
|
||||
|
||||
// 1.34.0
|
||||
TableColumn player_privilege_group_id = new TableColumn("group_id", FieldType.INT, false, false, true, false, -1);
|
||||
new AddColumn(player_privilege_group_id).table("player_privilege").ifNotExists().execute();
|
||||
// 1.34.0 add dominion_group
|
||||
if (!Common.IsTableExist("dominion_member")) {
|
||||
TableColumn player_privilege_group_id = new TableColumn("group_id", FieldType.INT, false, false, true, false, -1);
|
||||
new AddColumn(player_privilege_group_id).table("player_privilege").ifNotExists().execute();
|
||||
}
|
||||
|
||||
TableColumn group_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn group_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, -1);
|
||||
TableColumn group_name = new TableColumn("name", FieldType.STRING, false, false, true, false, "'未命名'");
|
||||
TableColumn group_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||
CreateTable.ForeignKey group_dom_id_fk = new CreateTable.ForeignKey(group_dom_id, "dominion", dominion_id, true);
|
||||
TableColumn dominion_group_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn dominion_group_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, -1);
|
||||
TableColumn dominion_group_name = new TableColumn("name", FieldType.STRING, false, false, true, false, "'未命名'");
|
||||
TableColumn dominion_group_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||
CreateTable.ForeignKey group_dom_id_fk = new CreateTable.ForeignKey(dominion_group_dom_id, "dominion", dominion_id, true);
|
||||
CreateTable group = new CreateTable().ifNotExists();
|
||||
group.table("dominion_group")
|
||||
.field(group_id)
|
||||
.field(group_dom_id)
|
||||
.field(group_name)
|
||||
.field(group_admin)
|
||||
.field(dominion_group_id)
|
||||
.field(dominion_group_dom_id)
|
||||
.field(dominion_group_name)
|
||||
.field(dominion_group_admin)
|
||||
.foreignKey(group_dom_id_fk)
|
||||
.unique(group_dom_id, group_name);
|
||||
.unique(dominion_group_dom_id, dominion_group_name);
|
||||
group.execute();
|
||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("dominion_group").ifNotExists().execute();
|
||||
}
|
||||
|
||||
// 1.35.0 migrate player_privilege -> dominion_member
|
||||
TableColumn dominion_member_id = new TableColumn("id", FieldType.INT, true, true, true, true, 0);
|
||||
TableColumn dominion_member_player_uuid = new TableColumn("player_uuid", FieldType.STRING, false, false, true, false, "''");
|
||||
TableColumn dominion_member_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, -1);
|
||||
TableColumn dominion_member_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||
TableColumn dominion_member_group_id = new TableColumn("group_id", FieldType.INT, false, false, true, false, -1);
|
||||
CreateTable.ForeignKey dominion_member_player_uuid_fk = new CreateTable.ForeignKey(dominion_member_player_uuid, "player_name", player_name_uuid, true);
|
||||
CreateTable.ForeignKey dominion_member_dom_id_fk = new CreateTable.ForeignKey(dominion_member_dom_id, "dominion", dominion_id, true);
|
||||
CreateTable dominion_member = new CreateTable().ifNotExists();
|
||||
dominion_member.table("dominion_member")
|
||||
.field(dominion_member_id)
|
||||
.field(dominion_member_player_uuid)
|
||||
.field(dominion_member_dom_id)
|
||||
.field(dominion_member_admin)
|
||||
.field(dominion_member_group_id)
|
||||
.foreignKey(dominion_member_player_uuid_fk)
|
||||
.foreignKey(dominion_member_dom_id_fk)
|
||||
.unique(dominion_member_player_uuid, dominion_member_dom_id);
|
||||
dominion_member.execute();
|
||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||
new AddColumn(column).table("dominion_member").ifNotExists().execute();
|
||||
}
|
||||
if (Common.IsTableExist("player_privilege")) {
|
||||
// migrate from player_privilege to dominion_member
|
||||
String sql = "SELECT * FROM player_privilege;";
|
||||
try (ResultSet rs = DatabaseManager.instance.query(sql)) {
|
||||
while (rs.next()) {
|
||||
String player_uuid = rs.getString("player_uuid");
|
||||
int dom_id = rs.getInt("dom_id");
|
||||
boolean admin = rs.getBoolean("admin");
|
||||
int group_id = rs.getInt("group_id");
|
||||
InsertRow insert = new InsertRow().table("dominion_member")
|
||||
.field(new Field("player_uuid", player_uuid))
|
||||
.field(new Field("dom_id", dom_id))
|
||||
.field(new Field("group_id", group_id))
|
||||
.field(new Field("admin", admin));
|
||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||
insert.field(new Field(flag.getFlagName(), rs.getBoolean(flag.getFlagName())));
|
||||
}
|
||||
insert.execute();
|
||||
}
|
||||
sql = "DROP TABLE player_privilege;";
|
||||
DatabaseManager.instance.query(sql);
|
||||
} catch (Exception e) {
|
||||
DatabaseManager.handleDatabaseError("迁移 player_privilege 到 dominion_member 失败", e, sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package cn.lunadeer.dominion.tuis;
|
||||
|
||||
import cn.lunadeer.dominion.Cache;
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||
@ -45,7 +45,7 @@ public class Apis {
|
||||
public static boolean noAuthToManage(Player player, DominionDTO dominion) {
|
||||
if (player.isOp()) return false;
|
||||
if (!dominion.getOwner().equals(player.getUniqueId())) {
|
||||
PlayerPrivilegeDTO privileges = PlayerPrivilegeDTO.select(player.getUniqueId(), dominion.getId());
|
||||
MemberDTO privileges = MemberDTO.select(player.getUniqueId(), dominion.getId());
|
||||
if (privileges == null || !privileges.getAdmin()) {
|
||||
Notification.error(player, "你不是领地 %s 的拥有者或管理员,无权访问此页面", dominion.getName());
|
||||
return true;
|
||||
|
@ -2,8 +2,8 @@ package cn.lunadeer.dominion.tuis.dominion.manage.group;
|
||||
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.GroupDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.dominion.tuis.Apis;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
||||
@ -72,9 +72,9 @@ public class GroupList {
|
||||
.setExecuteCommand("/dominion group select_member " + dominion.getName() + " " + group.getName() + " " + page);
|
||||
line.append(del.build()).append(edit.build()).append(group.getName()).append(add.build());
|
||||
view.add(line);
|
||||
List<PlayerPrivilegeDTO> players = PlayerPrivilegeDTO.selectByGroupId(group.getId());
|
||||
List<MemberDTO> players = MemberDTO.selectByGroupId(group.getId());
|
||||
XLogger.debug("players: " + players.size());
|
||||
for (PlayerPrivilegeDTO playerPrivilege : players) {
|
||||
for (MemberDTO playerPrivilege : players) {
|
||||
PlayerDTO p = PlayerDTO.select(playerPrivilege.getPlayerUUID());
|
||||
if (p == null) continue;
|
||||
Button remove = Button.createRed("-")
|
||||
|
@ -2,8 +2,8 @@ package cn.lunadeer.dominion.tuis.dominion.manage.group;
|
||||
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.GroupDTO;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||
@ -43,8 +43,8 @@ public class SelectMember {
|
||||
Line sub = Line.create().append("选择成员添加到权限组 " + group.getName())
|
||||
.append(Button.create("返回").setExecuteCommand("/dominion group list " + dominion.getName() + " " + backPage).build());
|
||||
view.subtitle(sub);
|
||||
List<PlayerPrivilegeDTO> members = PlayerPrivilegeDTO.selectByDomGroupId(dominion.getId(), -1);
|
||||
for (PlayerPrivilegeDTO member : members) {
|
||||
List<MemberDTO> members = MemberDTO.selectByDomGroupId(dominion.getId(), -1);
|
||||
for (MemberDTO member : members) {
|
||||
PlayerDTO p = PlayerDTO.select(member.getPlayerUUID());
|
||||
if (p == null) continue;
|
||||
view.add(Line.create()
|
||||
|
@ -45,7 +45,7 @@ public class MemberList {
|
||||
int page = getPage(args, 3);
|
||||
ListView view = ListView.create(10, "/dominion member list " + dominion.getName());
|
||||
if (noAuthToManage(player, dominion)) return;
|
||||
List<PlayerPrivilegeDTO> privileges = PlayerPrivilegeDTO.select(dominion.getId());
|
||||
List<MemberDTO> privileges = MemberDTO.select(dominion.getId());
|
||||
view.title("领地 " + dominion.getName() + " 成员列表");
|
||||
view.navigator(
|
||||
Line.create()
|
||||
@ -56,7 +56,7 @@ public class MemberList {
|
||||
);
|
||||
view.add(Line.create().append(Button.create("添加成员")
|
||||
.setExecuteCommand(CommandParser("/dominion member select_player %s", dominion.getName())).build()));
|
||||
for (PlayerPrivilegeDTO privilege : privileges) {
|
||||
for (MemberDTO privilege : privileges) {
|
||||
PlayerDTO p_player = PlayerDTO.select(privilege.getPlayerUUID());
|
||||
if (p_player == null) continue;
|
||||
GroupDTO group = Cache.instance.getGroup(privilege.getGroupId());
|
||||
|
@ -2,8 +2,8 @@ package cn.lunadeer.dominion.tuis.dominion.manage.member;
|
||||
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import cn.lunadeer.dominion.dtos.Flag;
|
||||
import cn.lunadeer.dominion.dtos.MemberDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
|
||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.ListView;
|
||||
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
|
||||
@ -46,7 +46,7 @@ public class MemberSetting {
|
||||
Notification.error(sender, "玩家 %s 不存在", playerName);
|
||||
return;
|
||||
}
|
||||
PlayerPrivilegeDTO privilege = PlayerPrivilegeDTO.select(playerDTO.getUuid(), dominion.getId());
|
||||
MemberDTO privilege = MemberDTO.select(playerDTO.getUuid(), dominion.getId());
|
||||
if (privilege == null) {
|
||||
Notification.warn(sender, "玩家 %s 不是领地 %s 的成员", playerName, dominion.getName());
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user