From 2d2fb9a233c8bb1039bc7af98cc53ba481a913a6 Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Thu, 17 Oct 2024 15:25:27 +0800 Subject: [PATCH] Enforce some api capabilities. --- .../dominion/api/dtos/DominionDTO.java | 2 +- .../lunadeer/dominion/api/dtos/GroupDTO.java | 26 +++++++++++++++++++ .../lunadeer/dominion/api/dtos/MemberDTO.java | 18 +++++++++++++ .../lunadeer/dominion/dtos/DominionDTO.java | 2 +- .../cn/lunadeer/dominion/dtos/GroupDTO.java | 13 +++++++--- .../cn/lunadeer/dominion/dtos/MemberDTO.java | 10 +++++-- 6 files changed, 64 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/cn/lunadeer/dominion/api/dtos/DominionDTO.java b/api/src/main/java/cn/lunadeer/dominion/api/dtos/DominionDTO.java index a57b4e6..4659198 100644 --- a/api/src/main/java/cn/lunadeer/dominion/api/dtos/DominionDTO.java +++ b/api/src/main/java/cn/lunadeer/dominion/api/dtos/DominionDTO.java @@ -226,7 +226,7 @@ public interface DominionDTO { * @param value 权限值 * @return 领地对象 */ - @Nullable DominionDTO setFlagValue(Flag flag, Boolean value); + @Nullable DominionDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value); /** * 获取领地传送点坐标 diff --git a/api/src/main/java/cn/lunadeer/dominion/api/dtos/GroupDTO.java b/api/src/main/java/cn/lunadeer/dominion/api/dtos/GroupDTO.java index 7b47b44..194a838 100644 --- a/api/src/main/java/cn/lunadeer/dominion/api/dtos/GroupDTO.java +++ b/api/src/main/java/cn/lunadeer/dominion/api/dtos/GroupDTO.java @@ -2,6 +2,7 @@ package cn.lunadeer.dominion.api.dtos; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Map; @@ -20,6 +21,14 @@ public interface GroupDTO { */ @NotNull Integer getDomID(); + /** + * 设置权限组名称,可以包含颜色代码,设置成功后返回权限组对象,设置失败返回null + * + * @param name 权限组名称 + * @return 权限组对象 + */ + @Nullable GroupDTO setName(@NotNull String name); + /** * 获取权限组名称(普通字符,不含颜色代码) * 绝大多数情况下应该使用该方法获取权限组名称 @@ -49,6 +58,14 @@ public interface GroupDTO { */ @NotNull String getNameColoredBukkit(); + /** + * 设置权限组是否为管理员组,设置成功后返回权限组对象,设置失败返回null + * + * @param admin 是否为管理员组 + * @return 权限组对象 + */ + @Nullable GroupDTO setAdmin(@NotNull Boolean admin); + /** * 获取权限组是否为管理员组 * @@ -70,4 +87,13 @@ public interface GroupDTO { * @return 权限配置 */ @NotNull Map getFlagsValue(); + + /** + * 设置权限组某个权限配置,设置成功后返回权限组对象,设置失败返回null + * + * @param flag 权限 + * @param value 权限值 + * @return 权限组对象 + */ + @Nullable GroupDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value); } diff --git a/api/src/main/java/cn/lunadeer/dominion/api/dtos/MemberDTO.java b/api/src/main/java/cn/lunadeer/dominion/api/dtos/MemberDTO.java index 19ca498..bd9fce9 100644 --- a/api/src/main/java/cn/lunadeer/dominion/api/dtos/MemberDTO.java +++ b/api/src/main/java/cn/lunadeer/dominion/api/dtos/MemberDTO.java @@ -1,6 +1,7 @@ package cn.lunadeer.dominion.api.dtos; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Map; import java.util.UUID; @@ -20,6 +21,14 @@ public interface MemberDTO { */ UUID getPlayerUUID(); + /** + * 设置成员是否为管理员,设置成功后返回权限组对象,设置失败返回null + * + * @param admin 是否为管理员 + * @return 成员对象 + */ + @Nullable MemberDTO setAdmin(@NotNull Boolean admin); + /** * 成员是否为管理员 * @@ -55,4 +64,13 @@ public interface MemberDTO { * @return 权限配置值 */ @NotNull Map getFlagsValue(); + + /** + * 设置成员某个权限配置,设置成功后返回成员对象,设置失败返回null + * + * @param flag 权限 + * @param value 权限配置值 + * @return 成员对象 + */ + @Nullable MemberDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value); } diff --git a/core/src/main/java/cn/lunadeer/dominion/dtos/DominionDTO.java b/core/src/main/java/cn/lunadeer/dominion/dtos/DominionDTO.java index 77c1875..8e9a81f 100644 --- a/core/src/main/java/cn/lunadeer/dominion/dtos/DominionDTO.java +++ b/core/src/main/java/cn/lunadeer/dominion/dtos/DominionDTO.java @@ -410,7 +410,7 @@ public class DominionDTO implements cn.lunadeer.dominion.api.dtos.DominionDTO { } @Override - public DominionDTO setFlagValue(Flag flag, Boolean value) { + public DominionDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value) { flags.put(flag, value); Field flagField = new Field(flag.getFlagName(), value); return doUpdate(new UpdateRow().field(flagField)); diff --git a/core/src/main/java/cn/lunadeer/dominion/dtos/GroupDTO.java b/core/src/main/java/cn/lunadeer/dominion/dtos/GroupDTO.java index 28f223e..474b4da 100644 --- a/core/src/main/java/cn/lunadeer/dominion/dtos/GroupDTO.java +++ b/core/src/main/java/cn/lunadeer/dominion/dtos/GroupDTO.java @@ -11,6 +11,7 @@ import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow; import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.sql.ResultSet; import java.util.ArrayList; @@ -84,20 +85,26 @@ public class GroupDTO implements cn.lunadeer.dominion.api.dtos.GroupDTO { return flags; } - public GroupDTO setName(String name) { + @Override + public @Nullable GroupDTO setName(@NotNull String name) { this.name_color.value = name; this.name_raw.value = ColorParser.getPlainText(name); UpdateRow updateRow = new UpdateRow().field(this.name_raw).field(this.name_color); return doUpdate(updateRow); } - public GroupDTO setAdmin(Boolean admin) { + @Override + public @Nullable GroupDTO setAdmin(@NotNull Boolean admin) { this.admin.value = admin; UpdateRow updateRow = new UpdateRow().field(this.admin); return doUpdate(updateRow); } - public GroupDTO setFlagValue(Flag flag, Boolean value) { + @Override + public GroupDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value) { + if (flag.isEnvironmentFlag()) { + return null; + } flags.put(flag, value); Field f = new Field(flag.getFlagName(), value); UpdateRow updateRow = new UpdateRow().field(f); diff --git a/core/src/main/java/cn/lunadeer/dominion/dtos/MemberDTO.java b/core/src/main/java/cn/lunadeer/dominion/dtos/MemberDTO.java index bf656cb..9595939 100644 --- a/core/src/main/java/cn/lunadeer/dominion/dtos/MemberDTO.java +++ b/core/src/main/java/cn/lunadeer/dominion/dtos/MemberDTO.java @@ -8,6 +8,7 @@ import cn.lunadeer.minecraftpluginutils.databse.FieldType; import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow; import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.sql.ResultSet; import java.util.*; @@ -166,14 +167,19 @@ public class MemberDTO implements cn.lunadeer.dominion.api.dtos.MemberDTO { return flags; } - public MemberDTO setFlagValue(Flag flag, Boolean value) { + @Override + public MemberDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value) { + if (flag.isEnvironmentFlag()) { + return null; + } flags.put(flag, value); Field f = new Field(flag.getFlagName(), value); UpdateRow updateRow = new UpdateRow().field(f); return doUpdate(updateRow); } - public MemberDTO setAdmin(Boolean admin) { + @Override + public @Nullable MemberDTO setAdmin(@NotNull Boolean admin) { this.admin.value = admin; UpdateRow updateRow = new UpdateRow().field(this.admin); return doUpdate(updateRow);