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(); + } + +}