diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..cef8356
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,33 @@
+# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+
+name: Deploy
+
+on:
+ # 支持手动触发构建
+ workflow_dispatch:
+ release:
+ # 创建release的时候触发
+ types: [ published ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: "Set up JDK"
+ uses: actions/setup-java@v2
+ with:
+ java-version: '11'
+ distribution: 'adopt'
+ cache: maven
+ server-id: github
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_TOKEN
+ - name: "Deploy"
+ run: mvn -B deploy --file pom.xml
+ env:
+ MAVEN_USERNAME: ${{ github.repository_owner }}
+ MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
\ No newline at end of file
diff --git a/README.md b/README.md
index 3105ab1..17ac374 100644
--- a/README.md
+++ b/README.md
@@ -52,6 +52,13 @@
- 设置目标玩家的前缀列表为源玩家的前缀列表
```
+## 变量
+
+```text
+# %PlayerPrefix%
+- 获取玩家当前的前缀内容。
+```
+
## [玩家数据文件](https://github.com/CarmJos/PlayerPrefix/blob/master/example/userdata.yml) 示例
```yaml
diff --git a/pom.xml b/pom.xml
index 35a6cbc..2caa287 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,9 +4,9 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.harmoland
+ cc.carm.plugin
PlayerPrefix
- 1.0.0
+ 1.1.0
jar
@@ -78,10 +78,18 @@
github
GitHub Packages
- https://maven.pkg.github.com/CarmJos/PlayerPrefix
+ https://maven.pkg.github.com/CarmJos/${project.artifactId}
+
+
+ github
+ GitHub Packages
+ https://maven.pkg.github.com/CarmJos/${project.artifactId}
+
+
+
@@ -95,6 +103,7 @@
com.github.azbh111
craftbukkit-1.12.2
R
+ provided
diff --git a/src/main/java/cc/carm/plugin/playerprefix/Main.java b/src/main/java/cc/carm/plugin/playerprefix/Main.java
index 2078448..fc2d56b 100644
--- a/src/main/java/cc/carm/plugin/playerprefix/Main.java
+++ b/src/main/java/cc/carm/plugin/playerprefix/Main.java
@@ -1,6 +1,7 @@
package cc.carm.plugin.playerprefix;
import cc.carm.plugin.playerprefix.commands.PlayerPrefixCommand;
+import cc.carm.plugin.playerprefix.hooker.PlayerPrefixExpansion;
import cc.carm.plugin.playerprefix.listeners.PrefixListener;
import cc.carm.plugin.playerprefix.managers.UserPrefixManager;
import cc.carm.plugin.playerprefix.utils.MessageParser;
@@ -33,6 +34,14 @@ public void onEnable() {
log("注册监听器...");
Bukkit.getPluginManager().registerEvents(new PrefixListener(), this);
+ if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
+ log("注册变量...");
+ new PlayerPrefixExpansion(getInstance()).register();
+ } else {
+ log("未安装 PlaceholderAPI 不进行变量注册...");
+ log("若您想使用变量进行前缀的显示,请安装PlaceholderAPI!");
+ }
+
log("加载完成 ,共耗时 " + (System.currentTimeMillis() - startTime) + " ms 。");
}
diff --git a/src/main/java/cc/carm/plugin/playerprefix/hooker/PlayerPrefixExpansion.java b/src/main/java/cc/carm/plugin/playerprefix/hooker/PlayerPrefixExpansion.java
new file mode 100644
index 0000000..f7bea84
--- /dev/null
+++ b/src/main/java/cc/carm/plugin/playerprefix/hooker/PlayerPrefixExpansion.java
@@ -0,0 +1,57 @@
+package cc.carm.plugin.playerprefix.hooker;
+
+import cc.carm.plugin.playerprefix.managers.UserPrefixManager;
+import cc.carm.plugin.playerprefix.models.UserPrefixCache;
+import me.clip.placeholderapi.expansion.PlaceholderExpansion;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PlayerPrefixExpansion extends PlaceholderExpansion {
+
+ JavaPlugin plugin;
+
+ public PlayerPrefixExpansion(JavaPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public @NotNull List getPlaceholders() {
+ List placeholders = new ArrayList<>();
+ placeholders.add("%PlayerPrefix%");
+ return placeholders;
+ }
+
+ @Override
+ public boolean canRegister() {
+ return true;
+ }
+
+ @Override
+ public @NotNull String getAuthor() {
+ return plugin.getDescription().getAuthors().toString();
+ }
+
+ @Override
+ public @NotNull String getIdentifier() {
+ return plugin.getDescription().getName();
+ }
+
+ @Override
+ public @NotNull String getVersion() {
+ return plugin.getDescription().getVersion();
+ }
+
+ @Override
+ public String onPlaceholderRequest(Player player, @NotNull String identifier) {
+ if (player == null) return "加载中...";
+
+ UserPrefixCache cache = UserPrefixManager.getData(player.getUniqueId());
+
+ return cache.getUsingPrefix();
+ }
+
+}