mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-18 19:08:40 +08:00
Compare commits
5 Commits
v2.14.0-be
...
master
Author | SHA1 | Date | |
---|---|---|---|
11123822e4 | |||
3f6b7c8a92 | |||
3b09e6c885 | |||
2d2fb9a233 | |||
8e490ec57a |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "api"]
|
||||||
|
path = api
|
||||||
|
url = https://github.com/ColdeZhang/DominionAPI.git
|
1
api
Submodule
1
api
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9a22a3e453ef0391741b6282a5b7f7219bfbbb0c
|
@ -1,51 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id("java")
|
|
||||||
id("maven-publish")
|
|
||||||
}
|
|
||||||
|
|
||||||
java {
|
|
||||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
|
||||||
withJavadocJar()
|
|
||||||
withSourcesJar()
|
|
||||||
}
|
|
||||||
|
|
||||||
// utf-8
|
|
||||||
tasks.withType<JavaCompile> {
|
|
||||||
options.encoding = "UTF-8"
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<Javadoc> {
|
|
||||||
options.encoding = "UTF-8"
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT")
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
create<MavenPublication>("mavenJava") {
|
|
||||||
groupId = "cn.lunadeer"
|
|
||||||
artifactId = "DominionAPI"
|
|
||||||
version = "2.1-SNAPSHOT"
|
|
||||||
// Add only the necessary artifacts manually to avoid conflicts
|
|
||||||
artifact(tasks.jar.get()) // The main JAR file without classifier
|
|
||||||
artifact(tasks.named<Jar>("sourcesJar").get()) {
|
|
||||||
classifier = "sources"
|
|
||||||
}
|
|
||||||
artifact(tasks.named<Jar>("javadocJar").get()) {
|
|
||||||
classifier = "javadoc"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url = uri("https://ssl.lunadeer.cn:14454/repository/maven-snapshots/")
|
|
||||||
credentials {
|
|
||||||
// from m2 settings.xml
|
|
||||||
username = project.findProperty("nexusUsername")?.toString()
|
|
||||||
password = project.findProperty("nexusPassword")?.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
|
|
||||||
public class Dominion {
|
|
||||||
|
|
||||||
private final static int[] requiredDominionVersion = new int[]{2, 12, 0};
|
|
||||||
|
|
||||||
public static DominionAPI getInstance() throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException {
|
|
||||||
if (!isDominionEnabled()) {
|
|
||||||
throw new IllegalStateException("Dominion is not installed.");
|
|
||||||
}
|
|
||||||
if (!isVersionCompatible(requiredDominionVersion)) {
|
|
||||||
throw new IllegalStateException("DominionAPI is not compatible with the current version of Dominion."
|
|
||||||
+ " Required Dominion version: " + requiredDominionVersion[0] + "." + requiredDominionVersion[1] + "." + requiredDominionVersion[2]);
|
|
||||||
}
|
|
||||||
// 通过反射获取 Cache 类中的 instance 字段
|
|
||||||
var instanceField = Class.forName("cn.lunadeer.dominion.DominionInterface").getDeclaredField("instance");
|
|
||||||
// 设置可访问
|
|
||||||
instanceField.setAccessible(true);
|
|
||||||
// 返回 Cache 的实例
|
|
||||||
return (DominionAPI) instanceField.get(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isDominionEnabled() {
|
|
||||||
return Bukkit.getPluginManager().isPluginEnabled("Dominion");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int[] getDominionVersion() {
|
|
||||||
var plugin = Bukkit.getPluginManager().getPlugin("Dominion");
|
|
||||||
if (plugin == null) {
|
|
||||||
return new int[]{0, 0, 0};
|
|
||||||
}
|
|
||||||
var version = plugin.getDescription().getVersion().replaceAll("[^0-9.]", "");
|
|
||||||
var versionSplit = version.split("\\.");
|
|
||||||
var versionInt = new int[versionSplit.length];
|
|
||||||
for (int i = 0; i < versionSplit.length; i++) {
|
|
||||||
versionInt[i] = Integer.parseInt(versionSplit[i]);
|
|
||||||
}
|
|
||||||
return versionInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isVersionCompatible(int[] requiredVersion) {
|
|
||||||
var version = getDominionVersion();
|
|
||||||
for (int i = 0; i < requiredVersion.length; i++) {
|
|
||||||
if (version[i] < requiredVersion[i]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,103 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api;
|
|
||||||
|
|
||||||
import cn.lunadeer.dominion.api.dtos.DominionDTO;
|
|
||||||
import cn.lunadeer.dominion.api.dtos.Flag;
|
|
||||||
import cn.lunadeer.dominion.api.dtos.GroupDTO;
|
|
||||||
import cn.lunadeer.dominion.api.dtos.MemberDTO;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public interface DominionAPI {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取所有领地信息
|
|
||||||
*
|
|
||||||
* @return 所有领地信息
|
|
||||||
*/
|
|
||||||
@NotNull List<DominionDTO> getAllDominions();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取玩家当前所在领地
|
|
||||||
*
|
|
||||||
* @param player 玩家
|
|
||||||
* @return 玩家当前所在领地 如果玩家不在任何领地内,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO getPlayerCurrentDominion(@NotNull Player player);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取指定位置的领地信息
|
|
||||||
*
|
|
||||||
* @param loc 位置
|
|
||||||
* @return 领地信息 如果位置不在任何领地内,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO getDominionByLoc(@NotNull Location loc);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存根据 ID 获取权限组对象
|
|
||||||
*
|
|
||||||
* @param id 权限组 ID
|
|
||||||
* @return 权限组对象 如果权限组不存在,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable GroupDTO getGroup(@NotNull Integer id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取玩家在指定领地的成员信息
|
|
||||||
*
|
|
||||||
* @param player 玩家
|
|
||||||
* @param dominion 领地
|
|
||||||
* @return 玩家在指定领地的成员信息 如果玩家不属于领地成员,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable MemberDTO getMember(@NotNull Player player, @NotNull DominionDTO dominion);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取玩家在指定领地的成员信息
|
|
||||||
*
|
|
||||||
* @param player_uuid 玩家 UUID
|
|
||||||
* @param dominion 领地
|
|
||||||
* @return 玩家在指定领地的成员信息 如果玩家不属于领地成员,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable MemberDTO getMember(@NotNull UUID player_uuid, @NotNull DominionDTO dominion);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取指定 ID 的领地信息
|
|
||||||
*
|
|
||||||
* @param id 领地 ID
|
|
||||||
* @return 领地信息 如果领地不存在,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO getDominion(@NotNull Integer id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从缓存获取玩家当前正在使用的权限组称号
|
|
||||||
*
|
|
||||||
* @param uuid 玩家 UUID
|
|
||||||
* @return 权限组对象 如果玩家没有使用任何权限组,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable GroupDTO getPlayerUsingGroupTitle(@NotNull UUID uuid);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 flags.yml 中启用的所有环境权限对象(environment部分)
|
|
||||||
*
|
|
||||||
* @return 环境权限列表
|
|
||||||
*/
|
|
||||||
@NotNull List<Flag> getEnvironmentFlagsEnabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取 flags.yml 中启用的所有玩家权限对象(privilege部分)
|
|
||||||
*
|
|
||||||
* @return 玩家权限列表
|
|
||||||
*/
|
|
||||||
@NotNull List<Flag> getPrivilegeFlagsEnabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过权限名称获取权限对象,即使权限没有启用此方法也会返回权限对象
|
|
||||||
*
|
|
||||||
* @param flagName 权限名称 (非 displayName)
|
|
||||||
* @return 权限对象 如果权限不存在,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable Flag getFlagByName(@NotNull String flagName);
|
|
||||||
}
|
|
@ -1,261 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api.dtos;
|
|
||||||
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public interface DominionDTO {
|
|
||||||
/**
|
|
||||||
* 获取领地 ID
|
|
||||||
*
|
|
||||||
* @return 领地 ID
|
|
||||||
*/
|
|
||||||
@NotNull Integer getId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地所有者 UUID
|
|
||||||
*
|
|
||||||
* @return 领地所有者 UUID
|
|
||||||
*/
|
|
||||||
@NotNull UUID getOwner();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地所有者,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param owner 领地所有者 UUID
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setOwner(UUID owner);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地所有者,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param owner 领地所有者
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setOwner(Player owner);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地名称
|
|
||||||
*
|
|
||||||
* @return 领地名称
|
|
||||||
*/
|
|
||||||
@NotNull String getName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地名称,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param name 领地名称
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setName(String name);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地所在世界,如果世界不存在,则返回null
|
|
||||||
*
|
|
||||||
* @return 领地所在世界
|
|
||||||
*/
|
|
||||||
@Nullable World getWorld();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地所在世界 UUID,该接口返回的 UUID 一定不为 null,但是不保证世界一定存在。
|
|
||||||
* 如果需要判断世界是否存在,请使用 {@link #getWorld()} 方法。
|
|
||||||
*
|
|
||||||
* @return 领地所在世界 UUID
|
|
||||||
*/
|
|
||||||
@NotNull UUID getWorldUid();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标1(小角点)的X坐标,X1 < X2
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标1(小角点)的X坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getX1();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标1(小角点)的Y坐标,Y1 < Y2
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标1(小角点)的Y坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getY1();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标1(小角点)的Z坐标,Z1 < Z2
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标1(小角点)的Z坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getZ1();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标2(大角点)的X坐标,X2 > X1
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标2(大角点)的X坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getX2();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标2(大角点)的Y坐标,Y2 > Y1
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标2(大角点)的Y坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getY2();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地角点坐标2(大角点)的Z坐标,Z2 > Z1
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标2(大角点)的Z坐标
|
|
||||||
*/
|
|
||||||
@NotNull Integer getZ2();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地角点坐标,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param x1 小角点X坐标
|
|
||||||
* @param y1 小角点Y坐标
|
|
||||||
* @param z1 小角点Z坐标
|
|
||||||
* @param x2 大角点X坐标
|
|
||||||
* @param y2 大角点Y坐标
|
|
||||||
* @param z2 大角点Z坐标
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setXYZ(Integer x1, Integer y1, Integer z1, Integer x2, Integer y2, Integer z2);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地角点坐标,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param cords 领地角点坐标数组,长度为6,依次为 x1, y1, z1, x2, y2, z2
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setXYZ(int[] cords);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地面积
|
|
||||||
*
|
|
||||||
* @return 领地面积
|
|
||||||
*/
|
|
||||||
@NotNull Integer getSquare();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地体积
|
|
||||||
*
|
|
||||||
* @return 领地体积
|
|
||||||
*/
|
|
||||||
@NotNull Integer getVolume();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地X轴向(东西向)宽度
|
|
||||||
*
|
|
||||||
* @return 领地X轴向(东西向)宽度
|
|
||||||
*/
|
|
||||||
@NotNull Integer getWidthX();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地Y轴向(上下向)高度
|
|
||||||
*
|
|
||||||
* @return 领地Y轴向(上下向)高度
|
|
||||||
*/
|
|
||||||
@NotNull Integer getHeight();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地Z轴向(南北向)宽度
|
|
||||||
*
|
|
||||||
* @return 领地Z轴向(南北向)宽度
|
|
||||||
*/
|
|
||||||
@NotNull Integer getWidthZ();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取父领地 ID
|
|
||||||
*
|
|
||||||
* @return 父领地 ID 如果没有父领地,则返回 -1
|
|
||||||
*/
|
|
||||||
@NotNull Integer getParentDomId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地欢迎提示语
|
|
||||||
*
|
|
||||||
* @return 领地欢迎提示语
|
|
||||||
*/
|
|
||||||
@NotNull String getJoinMessage();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地欢迎提示语,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param joinMessage 领地欢迎提示语
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setJoinMessage(String joinMessage);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地离开提示语
|
|
||||||
*
|
|
||||||
* @return 领地离开提示语
|
|
||||||
*/
|
|
||||||
@NotNull String getLeaveMessage();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地离开提示语,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param leaveMessage 领地离开提示语
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setLeaveMessage(String leaveMessage);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地所有环境配置
|
|
||||||
*
|
|
||||||
* @return 领地环境权限配置
|
|
||||||
*/
|
|
||||||
@NotNull Map<Flag, Boolean> getEnvironmentFlagValue();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地访客所有权限配置
|
|
||||||
*
|
|
||||||
* @return 领地访客权限配置
|
|
||||||
*/
|
|
||||||
@NotNull Map<Flag, Boolean> getGuestPrivilegeFlagValue();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置领地某个环境配置或访客权限的值,设置成功后返回领地对象,设置失败返回null
|
|
||||||
*
|
|
||||||
* @param flag 权限
|
|
||||||
* @param value 权限值
|
|
||||||
* @return 领地对象
|
|
||||||
*/
|
|
||||||
@Nullable DominionDTO setFlagValue(Flag flag, Boolean value);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取领地传送点坐标
|
|
||||||
*
|
|
||||||
* @return 领地传送点坐标 如果没有设置传送点,则返回null
|
|
||||||
*/
|
|
||||||
@Nullable Location getTpLocation();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 领地角点坐标1,小角点(小角点的xyz小于大角点的xyz)
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标1
|
|
||||||
*/
|
|
||||||
@NotNull Location getLocation1();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 领地角点坐标2,大角点(大角点的xyz大于小角点的xyz)
|
|
||||||
*
|
|
||||||
* @return 领地角点坐标2
|
|
||||||
*/
|
|
||||||
@NotNull Location getLocation2();
|
|
||||||
|
|
||||||
int getColorR();
|
|
||||||
|
|
||||||
int getColorG();
|
|
||||||
|
|
||||||
int getColorB();
|
|
||||||
|
|
||||||
@NotNull String getColor();
|
|
||||||
|
|
||||||
int getColorHex();
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api.dtos;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public interface Flag {
|
|
||||||
/**
|
|
||||||
* 权限名称(英文)
|
|
||||||
*
|
|
||||||
* @return 权限名称
|
|
||||||
*/
|
|
||||||
@NotNull String getFlagName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限显示名称(中文)
|
|
||||||
* 该名称从languages文件中加载
|
|
||||||
*
|
|
||||||
* @return 权限显示名称
|
|
||||||
*/
|
|
||||||
@NotNull String getDisplayName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限描述
|
|
||||||
* 该描述从languages文件中加载
|
|
||||||
*
|
|
||||||
* @return 权限描述
|
|
||||||
*/
|
|
||||||
@NotNull String getDescription();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限默认值
|
|
||||||
*
|
|
||||||
* @return 权限默认值
|
|
||||||
*/
|
|
||||||
@NotNull Boolean getDefaultValue();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限是否启用
|
|
||||||
*
|
|
||||||
* @return 权限是否启用
|
|
||||||
*/
|
|
||||||
@NotNull Boolean getEnable();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限是否为环境设置
|
|
||||||
*
|
|
||||||
* @return 权限是否为环境设置
|
|
||||||
*/
|
|
||||||
@NotNull Boolean isEnvironmentFlag();
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api.dtos;
|
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public interface GroupDTO {
|
|
||||||
/**
|
|
||||||
* 获取权限组 ID
|
|
||||||
*
|
|
||||||
* @return 权限组 ID
|
|
||||||
*/
|
|
||||||
@NotNull Integer getId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组所属领地 ID
|
|
||||||
*
|
|
||||||
* @return 权限组所属领地 ID
|
|
||||||
*/
|
|
||||||
@NotNull Integer getDomID();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组名称(普通字符,不含颜色代码)
|
|
||||||
* 绝大多数情况下应该使用该方法获取权限组名称
|
|
||||||
*
|
|
||||||
* @return 权限组名称
|
|
||||||
*/
|
|
||||||
@NotNull String getNamePlain();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组名称(原始字符,包含颜色代码)
|
|
||||||
*
|
|
||||||
* @return 权限组名称
|
|
||||||
*/
|
|
||||||
@NotNull String getNameRaw();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组名称(带颜色) kyori.adventure.text.Component 类型
|
|
||||||
*
|
|
||||||
* @return 权限组名称(带颜色)
|
|
||||||
*/
|
|
||||||
@NotNull Component getNameColoredComponent();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组名称(带颜色) Bukkit类型
|
|
||||||
*
|
|
||||||
* @return 权限组名称(带颜色)
|
|
||||||
*/
|
|
||||||
@NotNull String getNameColoredBukkit();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组是否为管理员组
|
|
||||||
*
|
|
||||||
* @return 是否为管理员组
|
|
||||||
*/
|
|
||||||
@NotNull Boolean getAdmin();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组某个权限配置
|
|
||||||
*
|
|
||||||
* @param flag 权限
|
|
||||||
* @return 权限配置值,如果权限不存在则返回默认值
|
|
||||||
*/
|
|
||||||
@NotNull Boolean getFlagValue(@NotNull Flag flag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取权限组所有权限配置
|
|
||||||
*
|
|
||||||
* @return 权限配置
|
|
||||||
*/
|
|
||||||
@NotNull Map<Flag, Boolean> getFlagsValue();
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.api.dtos;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public interface MemberDTO {
|
|
||||||
/**
|
|
||||||
* 获取成员 ID
|
|
||||||
*
|
|
||||||
* @return 成员 ID
|
|
||||||
*/
|
|
||||||
Integer getId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取成员 UUID
|
|
||||||
*
|
|
||||||
* @return 成员 UUID
|
|
||||||
*/
|
|
||||||
UUID getPlayerUUID();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 成员是否为管理员
|
|
||||||
*
|
|
||||||
* @return 是否为管理员
|
|
||||||
*/
|
|
||||||
Boolean getAdmin();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取成员所属领地 ID
|
|
||||||
*
|
|
||||||
* @return 领地 ID
|
|
||||||
*/
|
|
||||||
Integer getDomID();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取成员所属权限组 ID
|
|
||||||
*
|
|
||||||
* @return 权限组 ID 如果成员不属于任何权限组,则返回-1
|
|
||||||
*/
|
|
||||||
Integer getGroupId();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取成员某个权限配置
|
|
||||||
*
|
|
||||||
* @param flag 权限
|
|
||||||
* @return 权限配置值,如果权限不存在则返回默认值
|
|
||||||
*/
|
|
||||||
@NotNull Boolean getFlagValue(Flag flag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取成员所有权限配置
|
|
||||||
*
|
|
||||||
* @return 权限配置值
|
|
||||||
*/
|
|
||||||
@NotNull Map<Flag, Boolean> getFlagsValue();
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package cn.lunadeer.dominion.events;
|
|
||||||
|
|
||||||
import org.bukkit.event.Cancellable;
|
|
||||||
import org.bukkit.event.Event;
|
|
||||||
import org.bukkit.event.HandlerList;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public class DominionCreateEvent extends Event implements Cancellable {
|
|
||||||
@Override
|
|
||||||
public boolean isCancelled() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCancelled(boolean cancel) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull HandlerList getHandlers() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@ -11,7 +11,7 @@ var libraries = listOf<String>()
|
|||||||
libraries = libraries + "cn.lunadeer:MinecraftPluginUtils:2.0.7"
|
libraries = libraries + "cn.lunadeer:MinecraftPluginUtils:2.0.7"
|
||||||
|
|
||||||
group = "cn.lunadeer"
|
group = "cn.lunadeer"
|
||||||
version = "2.14.0-beta"
|
version = "2.14.1-beta"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||||||
|
@ -410,7 +410,7 @@ public class DominionDTO implements cn.lunadeer.dominion.api.dtos.DominionDTO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DominionDTO setFlagValue(Flag flag, Boolean value) {
|
public DominionDTO setFlagValue(@NotNull Flag flag, @NotNull Boolean value) {
|
||||||
flags.put(flag, value);
|
flags.put(flag, value);
|
||||||
Field flagField = new Field(flag.getFlagName(), value);
|
Field flagField = new Field(flag.getFlagName(), value);
|
||||||
return doUpdate(new UpdateRow().field(flagField));
|
return doUpdate(new UpdateRow().field(flagField));
|
||||||
|
@ -11,6 +11,7 @@ import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
|||||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -84,20 +85,26 @@ public class GroupDTO implements cn.lunadeer.dominion.api.dtos.GroupDTO {
|
|||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupDTO setName(String name) {
|
@Override
|
||||||
|
public @Nullable GroupDTO setName(@NotNull String name) {
|
||||||
this.name_color.value = name;
|
this.name_color.value = name;
|
||||||
this.name_raw.value = ColorParser.getPlainText(name);
|
this.name_raw.value = ColorParser.getPlainText(name);
|
||||||
UpdateRow updateRow = new UpdateRow().field(this.name_raw).field(this.name_color);
|
UpdateRow updateRow = new UpdateRow().field(this.name_raw).field(this.name_color);
|
||||||
return doUpdate(updateRow);
|
return doUpdate(updateRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupDTO setAdmin(Boolean admin) {
|
@Override
|
||||||
|
public @Nullable GroupDTO setAdmin(@NotNull Boolean admin) {
|
||||||
this.admin.value = admin;
|
this.admin.value = admin;
|
||||||
UpdateRow updateRow = new UpdateRow().field(this.admin);
|
UpdateRow updateRow = new UpdateRow().field(this.admin);
|
||||||
return doUpdate(updateRow);
|
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);
|
flags.put(flag, value);
|
||||||
Field f = new Field(flag.getFlagName(), value);
|
Field f = new Field(flag.getFlagName(), value);
|
||||||
UpdateRow updateRow = new UpdateRow().field(f);
|
UpdateRow updateRow = new UpdateRow().field(f);
|
||||||
|
@ -8,6 +8,7 @@ import cn.lunadeer.minecraftpluginutils.databse.FieldType;
|
|||||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
||||||
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.UpdateRow;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -166,14 +167,19 @@ public class MemberDTO implements cn.lunadeer.dominion.api.dtos.MemberDTO {
|
|||||||
return flags;
|
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);
|
flags.put(flag, value);
|
||||||
Field f = new Field(flag.getFlagName(), value);
|
Field f = new Field(flag.getFlagName(), value);
|
||||||
UpdateRow updateRow = new UpdateRow().field(f);
|
UpdateRow updateRow = new UpdateRow().field(f);
|
||||||
return doUpdate(updateRow);
|
return doUpdate(updateRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MemberDTO setAdmin(Boolean admin) {
|
@Override
|
||||||
|
public @Nullable MemberDTO setAdmin(@NotNull Boolean admin) {
|
||||||
this.admin.value = admin;
|
this.admin.value = admin;
|
||||||
UpdateRow updateRow = new UpdateRow().field(this.admin);
|
UpdateRow updateRow = new UpdateRow().field(this.admin);
|
||||||
return doUpdate(updateRow);
|
return doUpdate(updateRow);
|
||||||
|
@ -8,6 +8,7 @@ softdepend:
|
|||||||
- Vault
|
- Vault
|
||||||
- dynmap
|
- dynmap
|
||||||
- PlaceholderAPI
|
- PlaceholderAPI
|
||||||
|
- BlueMap
|
||||||
commands:
|
commands:
|
||||||
Dominion:
|
Dominion:
|
||||||
description: 领地插件命令
|
description: 领地插件命令
|
||||||
|
@ -95,3 +95,5 @@ public void onEnable() {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
||||||
|
|
||||||
|
[Javadoc地址](https://coldezhang.github.io/DominionAPI/)。
|
||||||
|
@ -95,3 +95,5 @@ public void onEnable() {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
||||||
|
|
||||||
|
[Javadoc地址](https://coldezhang.github.io/DominionAPI/)。
|
||||||
|
@ -95,3 +95,5 @@ public void onEnable() {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
[示例项目地址](https://github.com/ColdeZhang/DominionAddonExample)。
|
||||||
|
|
||||||
|
[Javadoc地址](https://coldezhang.github.io/DominionAPI/)。
|
||||||
|
Loading…
Reference in New Issue
Block a user