Skip to content

Commit

Permalink
add flag check method in api to support slime-fun etc. #54
Browse files Browse the repository at this point in the history
  • Loading branch information
ColdeZhang committed Jan 26, 2025
1 parent 027ba97 commit 4863413
Show file tree
Hide file tree
Showing 15 changed files with 276 additions and 301 deletions.
2 changes: 1 addition & 1 deletion api
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var libraries = listOf<String>()
libraries = libraries + "cn.lunadeer:MinecraftPluginUtils:2.0.7"

group = "cn.lunadeer"
version = "3.3.4-alpha.3"
version = "3.4.0-beta"

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
Expand Down
15 changes: 14 additions & 1 deletion core/src/main/java/cn/lunadeer/dominion/DominionInterface.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
import cn.lunadeer.dominion.api.dtos.GroupDTO;
import cn.lunadeer.dominion.api.dtos.MemberDTO;
import cn.lunadeer.dominion.api.dtos.PlayerDTO;
import cn.lunadeer.dominion.api.dtos.flag.EnvFlag;
import cn.lunadeer.dominion.api.dtos.flag.PreFlag;
import cn.lunadeer.dominion.controllers.BukkitPlayerOperator;
import cn.lunadeer.dominion.utils.EventUtils;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
Expand All @@ -16,7 +19,7 @@
import java.util.List;
import java.util.UUID;

public class DominionInterface implements DominionAPI {
public class DominionInterface extends DominionAPI {

public static DominionInterface instance;

Expand Down Expand Up @@ -94,4 +97,14 @@ public List<DominionDTO> getPlayerDominions(@NotNull UUID playerUid) {
return new ArrayList<>(cn.lunadeer.dominion.dtos.DominionDTO.selectByOwner(playerUid));
}

@Override
public boolean checkPrivilegeFlag(DominionDTO dom, PreFlag flag, Player player) {
return EventUtils.checkPrivilegeFlag(dom, flag, player, null);
}

@Override
public boolean checkEnvironmentFlag(@Nullable DominionDTO dom, @NotNull EnvFlag flag) {
return EventUtils.checkEnvironmentFlag(dom, flag, null);
}

}
20 changes: 2 additions & 18 deletions core/src/main/java/cn/lunadeer/dominion/utils/EventUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static DominionDTO getInvDominion(Player bukkitPlayer, Inventory inv) {
}
}

public static boolean checkFlag(DominionDTO dom, PreFlag flag, Player player, Cancellable event) {
public static boolean checkPrivilegeFlag(@Nullable DominionDTO dom, @NotNull PreFlag flag, @NotNull Player player, @Nullable Cancellable event) {
if (!flag.getEnable()) {
return true;
}
Expand Down Expand Up @@ -81,7 +81,7 @@ public static boolean checkFlag(DominionDTO dom, PreFlag flag, Player player, Ca
return false;
}

public static boolean checkFlag(@Nullable DominionDTO dom, @NotNull EnvFlag flag, @Nullable Cancellable event) {
public static boolean checkEnvironmentFlag(@Nullable DominionDTO dom, @NotNull EnvFlag flag, @Nullable Cancellable event) {
if (!flag.getEnable()) {
return true;
}
Expand All @@ -96,20 +96,4 @@ public static boolean checkFlag(@Nullable DominionDTO dom, @NotNull EnvFlag flag
}
return false;
}

public static boolean checkFlag(@Nullable DominionDTO dom, @NotNull PreFlag flag, @Nullable Cancellable event) {
if (!flag.getEnable()) {
return true;
}
if (dom == null) {
return true;
}
if (dom.getGuestPrivilegeFlagValue().get(flag)) {
return true;
}
if (event != null) {
event.setCancelled(true);
}
return false;
}
}
22 changes: 7 additions & 15 deletions docs/en-us/developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ For gradle, you can add the following code to your `build.gradle` file:
```groovy
// build.gradle
repositories {
maven { url = "https://ssl.lunadeer.cn:14454/repository/maven-snapshots/" }
mavenCentral()
}
dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

Expand All @@ -27,30 +27,23 @@ Or if you use kotlin, you can add the following code to your `build.gradle.kts`
```kotlin
// build.gradle.kts
repositories {
maven("https://ssl.lunadeer.cn:14454/repository/maven-snapshots/")
mavenCentral()
}

dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

For maven, you can add the following code to your `pom.xml` file:

```xml
<!-- pom.xml -->
<repositories>
<repository>
<id>lunadeer</id>
<url>https://ssl.lunadeer.cn:14454/repository/maven-snapshots/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>cn.lunadeer</groupId>
<artifactId>DominionAPI</artifactId>
<version>3.2-SNAPSHOT</version>
<version>3.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand All @@ -71,10 +64,9 @@ depend: [ Dominion ]
Get the DominionAPI instance directly as follows:
```java
import cn.lunadeer.dominion.api.Dominion;
import cn.lunadeer.dominion.api.DominionAPI;

DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
```

Then you can use the API, for example, to get the dominion information at a certain location:
Expand All @@ -85,7 +77,7 @@ Then you can use the API, for example, to get the dominion information at a cert
public void onEnable() {
// Plugin startup logic
try {
DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
DominionDTO d = dominionAPI.getDominionByLoc(some_location);
if (d == null) {
this.getLogger().info("no dominion found");
Expand Down
21 changes: 7 additions & 14 deletions docs/zh-cn/developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
```groovy
// build.gradle
repositories {
maven { url = "https://ssl.lunadeer.cn:14454/repository/maven-snapshots/" }
mavenCentral()
}
dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

Expand All @@ -27,30 +27,24 @@ dependencies {
```kotlin
// build.gradle.kts
repositories {
maven("https://ssl.lunadeer.cn:14454/repository/maven-snapshots/")
mavenCentral()
}

dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

再或者您使用 maven,可以在您的 `pom.xml` 文件中添加如下代码:

```xml
<!-- pom.xml -->
<repositories>
<repository>
<id>lunadeer</id>
<url>https://ssl.lunadeer.cn:14454/repository/maven-snapshots/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>cn.lunadeer</groupId>
<artifactId>DominionAPI</artifactId>
<version>3.2-SNAPSHOT</version>
<version>3.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand All @@ -70,10 +64,9 @@ depend: [ Dominion ]
可以通过如下方法直接获取 DominionAPI 实例:
```java
import cn.lunadeer.dominion.api.Dominion;
import cn.lunadeer.dominion.api.DominionAPI;

DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
```

例如,获取某个位置的领地信息:
Expand All @@ -84,7 +77,7 @@ DominionAPI dominionAPI = Dominion.getInstance();
public void onEnable() {
// Plugin startup logic
try {
DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
DominionDTO d = dominionAPI.getDominionByLoc(some_location);
if (d == null) {
this.getLogger().info("no dominion found");
Expand Down
21 changes: 7 additions & 14 deletions docs/zh-hk/developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
```groovy
// build.gradle
repositories {
maven { url = "https://ssl.lunadeer.cn:14454/repository/maven-snapshots/" }
mavenCentral()
}
dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

Expand All @@ -27,30 +27,24 @@ dependencies {
```kotlin
// build.gradle.kts
repositories {
maven("https://ssl.lunadeer.cn:14454/repository/maven-snapshots/")
mavenCentral()
}

dependencies {
compileOnly("cn.lunadeer:DominionAPI:3.2-SNAPSHOT")
compileOnly("cn.lunadeer:DominionAPI:3.5")
}
```

再或者您使用 maven,可以在您的 `pom.xml` 文件中添加如下代码:

```xml
<!-- pom.xml -->
<repositories>
<repository>
<id>lunadeer</id>
<url>https://ssl.lunadeer.cn:14454/repository/maven-snapshots/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>cn.lunadeer</groupId>
<artifactId>DominionAPI</artifactId>
<version>3.2-SNAPSHOT</version>
<version>3.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand All @@ -70,10 +64,9 @@ depend: [ Dominion ]
可以通过如下方法直接获取 DominionAPI 实例:
```java
import cn.lunadeer.dominion.api.Dominion;
import cn.lunadeer.dominion.api.DominionAPI;

DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
```

例如,获取某个位置的领地信息:
Expand All @@ -84,7 +77,7 @@ DominionAPI dominionAPI = Dominion.getInstance();
public void onEnable() {
// Plugin startup logic
try {
DominionAPI dominionAPI = Dominion.getInstance();
DominionAPI dominionAPI = DominionAPI.getInstance();
DominionDTO d = dominionAPI.getDominionByLoc(some_location);
if (d == null) {
this.getLogger().info("no dominion found");
Expand Down
Loading

0 comments on commit 4863413

Please sign in to comment.