From 1198c3200a29b6db13027f5563ad2488d0ca9687 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Mon, 25 Mar 2024 11:56:45 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E6=94=B9=E5=8A=A8=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AD=98=E6=94=BE=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tagpush.yml | 4 ++-- {changelogs => docs/changelogs}/1.0.0-beta1.md | 0 {changelogs => docs/changelogs}/1.0.0-beta2.md | 0 {changelogs => docs/changelogs}/1.0.0-beta3.md | 0 {changelogs => docs/changelogs}/1.0.0-beta6.md | 0 {changelogs => docs/changelogs}/1.0.0-beta7.md | 0 6 files changed, 2 insertions(+), 2 deletions(-) rename {changelogs => docs/changelogs}/1.0.0-beta1.md (100%) rename {changelogs => docs/changelogs}/1.0.0-beta2.md (100%) rename {changelogs => docs/changelogs}/1.0.0-beta3.md (100%) rename {changelogs => docs/changelogs}/1.0.0-beta6.md (100%) rename {changelogs => docs/changelogs}/1.0.0-beta7.md (100%) diff --git a/.github/workflows/tagpush.yml b/.github/workflows/tagpush.yml index 6e42344..6dec3a0 100644 --- a/.github/workflows/tagpush.yml +++ b/.github/workflows/tagpush.yml @@ -35,7 +35,7 @@ jobs: tag: ${{ steps.get_info.outputs.VERSION }} name: ${{ steps.get_info.outputs.VERSION }} token: ${{ secrets.GITHUB_TOKEN }} - bodyFile: ./changelogs/${{ steps.get_info.outputs.VERSION }}.md + bodyFile: ./docs/changelogs/${{ steps.get_info.outputs.VERSION }}.md artifacts: ./target/${{ steps.get_info.outputs.repository_name }}-${{ steps.get_info.outputs.VERSION }}.jar # 这个暂时没有用 # - name: 发布至minebbs @@ -45,5 +45,5 @@ jobs: # token: ${{ secrets.MINEBBSKEY }} # title: ${{ steps.get_info.outputs.VERSION }} # new_version: ${{ steps.get_info.outputs.VERSION }} - # description_file: ./changelogs/${{ steps.get_info.outputs.VERSION }}.md + # description_file: ./docs/changelogs/${{ steps.get_info.outputs.VERSION }}.md # file_url: 'https://github.com/${{ github.repository }}/releases/latest' \ No newline at end of file diff --git a/changelogs/1.0.0-beta1.md b/docs/changelogs/1.0.0-beta1.md similarity index 100% rename from changelogs/1.0.0-beta1.md rename to docs/changelogs/1.0.0-beta1.md diff --git a/changelogs/1.0.0-beta2.md b/docs/changelogs/1.0.0-beta2.md similarity index 100% rename from changelogs/1.0.0-beta2.md rename to docs/changelogs/1.0.0-beta2.md diff --git a/changelogs/1.0.0-beta3.md b/docs/changelogs/1.0.0-beta3.md similarity index 100% rename from changelogs/1.0.0-beta3.md rename to docs/changelogs/1.0.0-beta3.md diff --git a/changelogs/1.0.0-beta6.md b/docs/changelogs/1.0.0-beta6.md similarity index 100% rename from changelogs/1.0.0-beta6.md rename to docs/changelogs/1.0.0-beta6.md diff --git a/changelogs/1.0.0-beta7.md b/docs/changelogs/1.0.0-beta7.md similarity index 100% rename from changelogs/1.0.0-beta7.md rename to docs/changelogs/1.0.0-beta7.md From 3c39e10a5ec3afa31d9ece597d4e93509cd691d8 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Mon, 25 Mar 2024 12:05:07 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=8D=E8=BD=BD?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E5=92=8C=E9=85=8D=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +- pom.xml | 2 +- .../cn/stevei5mc/NewTipsVariables/Main.java | 14 +++ .../NewTipsVariables/command/BaseCommand.java | 87 +++++++++++++++++++ .../command/BaseSubCommand.java | 55 ++++++++++++ .../command/NewTipsVariablesCommand.java | 24 +++++ .../newTipsVariables/ReloadCommand.java | 37 ++++++++ .../NewTipsVariables/utils/configUtils.java | 37 ++++++++ src/main/resources/plugin.yml | 12 ++- 9 files changed, 272 insertions(+), 5 deletions(-) create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/utils/configUtils.java diff --git a/README.md b/README.md index 57d81e2..c76e2dc 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,15 @@ ![GitHub issues](https://img.shields.io/github/issues/stevei5mc/NewTipsVariables?style=plastic&color=linkGreen) ![GitHub pull requests](https://img.shields.io/github/issues-pr/stevei5mc/NewTipsVariables?style=plastic) > **该插件可以为Tips添加更多的变量内容,更多变量敬请期待** -## 使用方法 +## **使用方法** > **1、将插件放进`plugins`文件夹** > **2、需确保安装`Tips`插件后重启服务器** > **3、在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** ### **[配置文件使用说明](./docs/config-info.md)** ### **变量介绍** -**[文字相关变量](./docs/text-variables.md) [玩家相关变量](./docs/player-variables.md) [服务器相关变量](./docs/server-variables.md) [支持的插件](./docs/SupportPluginsVariables.md)** \ No newline at end of file +**[文字相关变量](./docs/text-variables.md) [玩家相关变量](./docs/player-variables.md) [服务器相关变量](./docs/server-variables.md) [支持的插件](./docs/SupportPluginsVariables.md)** +## **权限与权限节点** +|权限节点|权限介绍|默认权限| +|:-:|:-:|:-:| +|newtipsariables.admin|管理员权限|OP| +|newtipsariables.admin.reload|重载权限|OP| \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4caf469..1f8d12d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.stevei5mc NewTipsVariables - 1.0.0-beta7 + 1.0.0-beta8 diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java index 4365071..9369bec 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java @@ -11,6 +11,8 @@ import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.loadSupportPlugins; import cn.nukkit.Player; import cn.nukkit.utils.Config; +import cn.stevei5mc.NewTipsVariables.command.NewTipsVariablesCommand; +import cn.stevei5mc.NewTipsVariables.utils.configUtils; public class Main extends PluginBase { public static Player player; @@ -20,6 +22,11 @@ public class Main extends PluginBase { private Config configInPlayer; private Config worldName; private Config language; + //定义配置文件的一些信息 + public static int config1Version = 1; //config.yml + public static int config2Version = 1; //player.yml + public static int config3Version = 1; //server.yml + public static Main getInstance() { return instance; } @@ -34,6 +41,8 @@ public void onEnable() { //判断需要的前置插件是否存在 if (this.getServer().getPluginManager().getPlugin("Tips") != null) { //存在则加载该插件 + this.getServer().getCommandMap().register("", new NewTipsVariablesCommand()); + configUtils.configUtils(); this.deBugMode();//用于加载debug信息 this.tipsvariables();//加载变量部分 this.loadover();//加载完成显示的内容 @@ -113,4 +122,9 @@ public Config getWorldName() { public Config getLanguage() { return this.language; } + + //重载配置 + public void reload() { + loadConfigRes(); + } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java new file mode 100644 index 0000000..a1c0859 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java @@ -0,0 +1,87 @@ +package cn.stevei5mc.NewTipsVariables.command; + +import cn.stevei5mc.NewTipsVariables.Main; +import cn.nukkit.command.Command; +import cn.nukkit.command.CommandSender; +import cn.nukkit.command.data.CommandParameter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author SmallasWater + */ +public abstract class BaseCommand extends Command { + + private final ArrayList subCommand = new ArrayList<>(); + private final ConcurrentHashMap subCommands = new ConcurrentHashMap<>(); + protected final Main main = Main.getInstance(); + + public BaseCommand(String name, String description) { + super(name.toLowerCase(), description); + } + + /** + * 判断权限 + * @param sender 玩家 + * @return 是否拥有权限 + */ + public boolean hasPermission(CommandSender sender) { + return sender.hasPermission(this.getPermission()); + } + + @Override + public boolean execute(CommandSender sender, String s, String[] args) { + if(this.hasPermission(sender)) { + if(args.length > 0) { + String subCommand = args[0].toLowerCase(); + if (subCommands.containsKey(subCommand)) { + BaseSubCommand command = this.subCommand.get(this.subCommands.get(subCommand)); + if (command.canUser(sender)) { + return command.execute(sender, s, args); + }else if (sender.isPlayer()) { + sender.sendMessage("你没有权限使用此命令!"); + }else { + sender.sendMessage("请在游戏内使用此命令!"); + } + }else { + this.sendHelp(sender); + } + }else { + this.sendHelp(sender); + } + return true; + }else { + sender.sendMessage("你没有权限使用此命令!"); + } + return true; + } + + /** + * 发送帮助 + * @param sender 玩家 + * */ + public abstract void sendHelp(CommandSender sender); + + protected void addSubCommand(BaseSubCommand cmd) { + this.subCommand.add(cmd); + int commandId = (this.subCommand.size()) - 1; + this.subCommands.put(cmd.getName().toLowerCase(), commandId); + for (String alias : cmd.getAliases()) { + this.subCommands.put(alias.toLowerCase(), commandId); + } + } + + protected void loadCommandBase() { + this.commandParameters.clear(); + for(BaseSubCommand subCommand : this.subCommand) { + LinkedList parameters = new LinkedList<>(); + parameters.add(CommandParameter.newEnum(subCommand.getName(), new String[]{subCommand.getName()})); + parameters.addAll(Arrays.asList(subCommand.getParameters())); + this.commandParameters.put(subCommand.getName(), parameters.toArray(new CommandParameter[0])); + } + } + +} diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java new file mode 100644 index 0000000..8f064ca --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java @@ -0,0 +1,55 @@ +package cn.stevei5mc.NewTipsVariables.command; + +import cn.stevei5mc.NewTipsVariables.Main; +import cn.nukkit.command.CommandSender; +import cn.nukkit.command.data.CommandParameter; + + +/** + * @author SmallasWater + */ +public abstract class BaseSubCommand { + + private final String name; + protected final Main main = Main.getInstance(); + + protected BaseSubCommand(String name) { + this.name = name.toLowerCase(); + } + + /** + * @param sender CommandSender + * @return boolean + */ + public abstract boolean canUser(CommandSender sender); + + /** + * 获取名称 + * @return string + */ + public String getName(){ + return name; + } + + /** + * 获取别名 + * @return string[] + */ + public abstract String[] getAliases(); + + /** + * 命令响应 + * @param sender the sender - CommandSender + * @param args The arrugements - String[] + * @param label label.. + * @return true if true + */ + public abstract boolean execute(CommandSender sender, String label, String[] args); + + /** + * 指令参数. + * @return 提示参数 + * */ + public abstract CommandParameter[] getParameters(); + +} diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java new file mode 100644 index 0000000..6abf323 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java @@ -0,0 +1,24 @@ +package cn.stevei5mc.NewTipsVariables.command; + +import cn.stevei5mc.NewTipsVariables.command.newTipsVariables.ReloadCommand; +import cn.nukkit.Player; +import cn.nukkit.command.CommandSender; + +/** + * @author lt_name + */ +public class NewTipsVariablesCommand extends BaseCommand { + + public NewTipsVariablesCommand() { + super("NewTipsVariables", "NewTipsVariables管理命令"); + this.setPermission("newtipsariables.admin"); + this.addSubCommand(new ReloadCommand("reload")); + + this.loadCommandBase(); + } + + @Override + public void sendHelp(CommandSender sender) { + sender.sendMessage("§a/newtipsariables reload §e重载配置文件"); + } +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java new file mode 100644 index 0000000..0b8cae6 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java @@ -0,0 +1,37 @@ +package cn.stevei5mc.NewTipsVariables.command.newTipsVariables; + +import cn.stevei5mc.NewTipsVariables.command.BaseSubCommand; +import cn.nukkit.command.CommandSender; +import cn.nukkit.command.data.CommandParameter; + +/** + * @author LT_Name + */ +public class ReloadCommand extends BaseSubCommand { + + public ReloadCommand(String name) { + super(name); + } + + @Override + public boolean canUser(CommandSender sender) { + return sender.hasPermission("newtipsariables.admin.reload"); + } + + @Override + public String[] getAliases() { + return new String[0]; + } + + @Override + public boolean execute(CommandSender sender, String label, String[] args) { + this.main.reload(); + sender.sendMessage("重载配置完成!"); + return true; + } + + @Override + public CommandParameter[] getParameters() { + return new CommandParameter[0]; + } +} diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/configUtils.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/configUtils.java new file mode 100644 index 0000000..242c619 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/configUtils.java @@ -0,0 +1,37 @@ +package cn.stevei5mc.NewTipsVariables.utils; + +import cn.stevei5mc.NewTipsVariables.Main; + +public class configUtils { + public static void configUtils() { + int cv1 = Main.getInstance().getConfig().getInt("version"); + int cv2 = Main.getInstance().getConfigInPlayer().getInt("version"); + int cv3 = Main.getInstance().getConfigInServer().getInt("version"); + boolean checkConfig = Main.getInstance().getConfig().getBoolean("updata.in-config.check"); + if (checkConfig) { + if (Main.config1Version > cv1) { + Main.getInstance().getLogger().warning("§econfig.yml 版本不是最新版"); + } else if (Main.config1Version < cv1) { + Main.getInstance().getLogger().error("§cconfig.yml 版本出现了错误"); + } else { + Main.getInstance().getLogger().info("§aconfig.yml 版本是最新版"); + } + + if (Main.config2Version > cv2) { + Main.getInstance().getLogger().warning("§eplayer.yml 版本不是最新版"); + } else if (Main.config2Version < cv2) { + Main.getInstance().getLogger().error("§cplayer.yml 版本出现了错误"); + } else { + Main.getInstance().getLogger().info("§aplayer.yml 版本是最新版"); + } + + if (Main.config3Version > cv3) { + Main.getInstance().getLogger().warning("§eserver.yml 版本不是最新版"); + } else if (Main.config3Version < cv3) { + Main.getInstance().getLogger().error("§cserver.yml 版本出现了错误"); + } else { + Main.getInstance().getLogger().info("§aserver.yml 版本是最新版"); + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8cbc5e5..1377c74 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,13 @@ name: NewTipsVariables main: cn.stevei5mc.NewTipsVariables.Main -version: '1.0.0-beta7' +version: '1.0.0-beta8' author: stevei5mc -api: ["1.0.14"] \ No newline at end of file +api: ["1.0.14"] + +permissions: + newtipsariables.admin: + description: "NewTipsVariables插件管理员权限" + default: op + newtipsariables.admin.reload: + description: "NewTipsVariables插件重载权限" + default: op \ No newline at end of file From 1f9d95e44d5b7f098002766a0fec82b99ab40953 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Wed, 3 Apr 2024 21:37:33 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E6=94=B9=E5=8A=A8=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pr-check.yml | 4 +++- README.md | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index d4a8ce3..7752e56 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -24,4 +24,6 @@ jobs: uses: actions/upload-artifact@v1 with: name: ${{ steps.get_info.outputs.repository_name }}-Pr_check-Build-${{ github.run_number}} - path: staging \ No newline at end of file + path: staging + - name: 批准PR + uses: hmarr/auto-approve-action@v4.0.0 \ No newline at end of file diff --git a/README.md b/README.md index c76e2dc..a3627bc 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ ### **[配置文件使用说明](./docs/config-info.md)** ### **变量介绍** **[文字相关变量](./docs/text-variables.md) [玩家相关变量](./docs/player-variables.md) [服务器相关变量](./docs/server-variables.md) [支持的插件](./docs/SupportPluginsVariables.md)** -## **权限与权限节点** -|权限节点|权限介绍|默认权限| -|:-:|:-:|:-:| -|newtipsariables.admin|管理员权限|OP| -|newtipsariables.admin.reload|重载权限|OP| \ No newline at end of file +## **命令与权限节点** +|命令|权限节点|权限介绍|默认权限| +|:-:|:-:|:-:|:-:| +|/newtipsariables|newtipsariables.admin|主命令|OP| +|/newtipsariables reload|newtipsariables.admin.reload|重载配置文件|OP| \ No newline at end of file From b531259309bee23e689ec556d999ed52c255b132 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Thu, 4 Apr 2024 11:36:57 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=86=85=E5=AE=B9=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 + .github/workflows/pr-check.yml | 56 +++++++++---------- README.md | 5 +- .../NewTipsVariables/command/BaseCommand.java | 8 +-- .../command/BaseSubCommand.java | 2 +- .../command/NewTipsVariablesCommand.java | 2 +- .../newTipsVariables/ReloadCommand.java | 2 +- .../supportPlugins/loadSupportPlugins.java | 4 +- src/main/resources/language.yml | 4 +- 9 files changed, 44 insertions(+), 42 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..cc892c2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.java text eol=lf +*.yml text eol=crlf +*.txt text eol=crlf \ No newline at end of file diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 7752e56..281aa1c 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -1,29 +1,27 @@ -name: pr-check -on: - pull_request: -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: 获取信息 - id: get_info - run: echo "repository_name=${GITHUB_REPOSITORY/${{ github.repository_owner }}\//}" >> $GITHUB_OUTPUT - - name: 拉取代码 - uses: actions/checkout@v3 - - name: 安装java8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - name: 构建 - run: | - mvn -B package --file pom.xml - mkdir staging && cp target/*.jar staging - - name: 收集构建文件 - uses: actions/upload-artifact@v1 - with: - name: ${{ steps.get_info.outputs.repository_name }}-Pr_check-Build-${{ github.run_number}} - path: staging - - name: 批准PR - uses: hmarr/auto-approve-action@v4.0.0 \ No newline at end of file +name: pr-check +on: + pull_request: +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: 获取信息 + id: get_info + run: echo "repository_name=${GITHUB_REPOSITORY/${{ github.repository_owner }}\//}" >> $GITHUB_OUTPUT + - name: 拉取代码 + uses: actions/checkout@v3 + - name: 安装java8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + cache: maven + - name: 构建 + run: | + mvn -B package --file pom.xml + mkdir staging && cp target/*.jar staging + - name: 收集构建文件 + uses: actions/upload-artifact@v1 + with: + name: ${{ steps.get_info.outputs.repository_name }}-Pr_check-Build-${{ github.run_number}} + path: staging \ No newline at end of file diff --git a/README.md b/README.md index a3627bc..43c274d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,10 @@ ![GitHub forks](https://img.shields.io/github/forks/stevei5mc/NewTipsVariables?style=plastic) ![GitHub issues](https://img.shields.io/github/issues/stevei5mc/NewTipsVariables?style=plastic&color=linkGreen) ![GitHub pull requests](https://img.shields.io/github/issues-pr/stevei5mc/NewTipsVariables?style=plastic) -> **该插件可以为Tips添加更多的变量内容,更多变量敬请期待** +- **该插件可以为Tips提供更多的变量内容** +- **目前该插件正处于`beta`测试阶段如果有问题请及时提交[issues](https://github.com/stevei5mc/NewTipsVariables/issues)** +- **如果你有开发能力可以为其提供[PR](https://github.com/stevei5mc/NewTipsVariables/pulls)来增加更多变量或修复问题** + ## **使用方法** > **1、将插件放进`plugins`文件夹** > **2、需确保安装`Tips`插件后重启服务器** diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java index a1c0859..1d000bd 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java @@ -42,9 +42,9 @@ public boolean execute(CommandSender sender, String s, String[] args) { if (command.canUser(sender)) { return command.execute(sender, s, args); }else if (sender.isPlayer()) { - sender.sendMessage("你没有权限使用此命令!"); + sender.sendMessage("§c你没有权限使用此命令!"); }else { - sender.sendMessage("请在游戏内使用此命令!"); + sender.sendMessage("§c请在游戏内使用此命令!"); } }else { this.sendHelp(sender); @@ -54,7 +54,7 @@ public boolean execute(CommandSender sender, String s, String[] args) { } return true; }else { - sender.sendMessage("你没有权限使用此命令!"); + sender.sendMessage("§c你没有权限使用此命令!"); } return true; } @@ -84,4 +84,4 @@ protected void loadCommandBase() { } } -} +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java index 8f064ca..807f850 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java @@ -52,4 +52,4 @@ public String getName(){ * */ public abstract CommandParameter[] getParameters(); -} +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java index 6abf323..5c96a55 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java @@ -13,12 +13,12 @@ public NewTipsVariablesCommand() { super("NewTipsVariables", "NewTipsVariables管理命令"); this.setPermission("newtipsariables.admin"); this.addSubCommand(new ReloadCommand("reload")); - this.loadCommandBase(); } @Override public void sendHelp(CommandSender sender) { + sender.sendMessage("§b=== NewTipsVariables ==="); sender.sendMessage("§a/newtipsariables reload §e重载配置文件"); } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java index 0b8cae6..60ab74f 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java @@ -26,7 +26,7 @@ public String[] getAliases() { @Override public boolean execute(CommandSender sender, String label, String[] args) { this.main.reload(); - sender.sendMessage("重载配置完成!"); + sender.sendMessage("§a重载配置完成!"); return true; } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java index 7fe3ce2..02e14e6 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java @@ -16,8 +16,8 @@ public static void loadSupportVariables(Player player) { //加载相关插件的变量时的提示 String debugPerfix = "§7[§cDEBUG§7] "; String loadPlugin; - String loadSuccessMsg = Main.getInstance().getLanguage().getString("debug_plugins_found"); - String loadFailureMsg = Main.getInstance().getLanguage().getString("debug_plugins_not_found"); + String loadSuccessMsg = "§a找到插件§e【§b{0}§e】§a相关变量已加载"; + String loadFailureMsg = "§c无法找到插件§e【§b{0}§e】§c相关变量加载失败,请安装相关插件再试"; //需要加载的变量的插件 loadPlugin = "playerPoints"; if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { diff --git a/src/main/resources/language.yml b/src/main/resources/language.yml index 18a246c..d5c8aec 100644 --- a/src/main/resources/language.yml +++ b/src/main/resources/language.yml @@ -1,6 +1,4 @@ Unknown_World: §c未知世界§6{0}§c,请检查是否在§6world_name.yml§c中填写! Unknown_Device_OS: §c未知的系统 Unknown_Device_controls: §c未知的操作方式 -Unknown_Device_UIProfile: §cUnknown ui -debug_plugins_found: §a找到插件§e【§b{0}§e】§a相关变量已加载 -debug_plugins_not_found: §c无法找到插件§e【§b{0}§e】§c相关变量加载失败,请安装相关插件再试 \ No newline at end of file +Unknown_Device_UIProfile: §cUnknown ui \ No newline at end of file From 9d4ff7cec5b3a74667c48bb2aa9ab548efd1f97b Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Thu, 4 Apr 2024 21:07:19 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9HealthAPI?= =?UTF-8?q?=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/healthapi_v1.2.9.jar | Bin 0 -> 27401 bytes pom.xml | 15 ++++--- .../supportPlugins/loadSupportPlugins.java | 41 +++++++----------- .../smallasWater/HealthAPIVariable.java | 22 ++++++++++ 4 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 lib/healthapi_v1.2.9.jar create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java diff --git a/lib/healthapi_v1.2.9.jar b/lib/healthapi_v1.2.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..482d4341c192e5ad88191207921be075f8e2b921 GIT binary patch literal 27401 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://repo.lanink.cn/repository/maven-public/ - + cn.nukkit @@ -58,19 +58,26 @@ 2.0.3 - com.smallaswater.orearea + com.smallaswater OreArea 1.3.8 system ${project.basedir}/lib/OreArea_v1.3.8.jar - com.smallaswater.rstask + com.smallaswater RsTask 1.8.4 system ${project.basedir}/lib/RsTask_v1.8.4.jar + + com.samllaswater + healthapi + 1.2.9 + system + ${project.basedir}/lib/healthapi_v1.2.9.jar + @@ -80,7 +87,6 @@ - org.apache.maven.plugins maven-compiler-plugin @@ -91,7 +97,6 @@ UTF-8 - diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java index 02e14e6..cee5b3f 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java @@ -8,6 +8,7 @@ import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.OreAreaVariable; import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.RsTaskVariable; import cn.stevei5mc.NewTipsVariables.Main; +import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.HealthAPIVariable; public class loadSupportPlugins { @@ -23,49 +24,39 @@ public static void loadSupportVariables(Player player) { if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { //存在 Api.registerVariables("playerPointsVariable", playerPointsVariable.class); - if (debug) { - Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin)); - } - + if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} } else { - if (debug) { - Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} } loadPlugin = "EconomyAPI"; if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { //存在 Api.registerVariables("economyApiVariable", economyApiVariable.class); - if (debug) { - Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} } else { - if (debug) { - Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} } loadPlugin = "OreArea"; if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { //存在 Api.registerVariables("OreAreaVariable", OreAreaVariable.class); - if (debug) { - Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} } else { - if (debug) { - Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} } loadPlugin = "RSTask"; if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { Api.registerVariables("RsTaskVariable", RsTaskVariable.class); - if (debug) { - Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} } else { - if (debug) { - Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin)); - } + if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} } + loadPlugin = "HealthAPI"; + if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + Api.registerVariables("HealthAPIVariable", HealthAPIVariable.class); + if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} + } else { + if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} + } } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java new file mode 100644 index 0000000..b38f697 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java @@ -0,0 +1,22 @@ +package cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater; + +import cn.nukkit.Player; +import tip.utils.variables.BaseVariable; +import healthapi.PlayerHealth; + +public class HealthAPIVariable extends BaseVariable { + public HealthAPIVariable(Player player) { + super(player); + } + + public void strReplace() { + HealthAPIVar(); + } + + public void HealthAPIVar() { + PlayerHealth health = PlayerHealth.getPlayerHealth(this.player); + this.addStrReplaceString("{h}", String.format("%.1f", health.getHealth())); + this.addStrReplaceString("{mh}", health.getMaxHealth() + ""); + this.addStrReplaceString("{hb}", String.format("%.2f", health.getHealthPercentage() * 100.0D)); + } +} \ No newline at end of file From 2a9656e5ea9a77a1c9344edf00163ab8a188ce55 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Sun, 7 Apr 2024 21:43:09 +0800 Subject: [PATCH 06/14] =?UTF-8?q?dev=201=E3=80=81=E8=A1=A5=E5=85=A8?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=96=87=E6=A1=A3=202=E3=80=81=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=B8=80=E4=B8=8B=E7=A9=BA=E8=A1=8C=203=E3=80=81?= =?UTF-8?q?=E5=AF=B9=E5=8A=A0=E8=BD=BD=E7=9B=B8=E5=AF=B9=E5=BA=94=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=8F=98=E9=87=8F=E7=9A=84=E4=BB=A3=E7=A0=81=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +- docs/SupportPluginsVariables.md | 10 +++ .../cn/stevei5mc/NewTipsVariables/Main.java | 8 ++- .../NewTipsVariables/command/BaseCommand.java | 1 - .../command/BaseSubCommand.java | 2 - .../newTipsVariables/ReloadCommand.java | 2 +- .../supportPlugins/loadSupportPlugins.java | 69 +++++++++---------- .../smallasWater/OreAreaVariable.java | 1 - .../smallasWater/RsTaskVariable.java | 1 - .../resources/SupportPluginsVariables.txt | 7 ++ 10 files changed, 60 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 43c274d..03c7515 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ - **如果你有开发能力可以为其提供[PR](https://github.com/stevei5mc/NewTipsVariables/pulls)来增加更多变量或修复问题** ## **使用方法** -> **1、将插件放进`plugins`文件夹** -> **2、需确保安装`Tips`插件后重启服务器** -> **3、在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** +1. **将插件放进`plugins`文件夹** +2. **需确保安装`Tips`插件后重启服务器** +3. **在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** ### **[配置文件使用说明](./docs/config-info.md)** ### **变量介绍** **[文字相关变量](./docs/text-variables.md) [玩家相关变量](./docs/player-variables.md) [服务器相关变量](./docs/server-variables.md) [支持的插件](./docs/SupportPluginsVariables.md)** diff --git a/docs/SupportPluginsVariables.md b/docs/SupportPluginsVariables.md index b986da2..5913681 100644 --- a/docs/SupportPluginsVariables.md +++ b/docs/SupportPluginsVariables.md @@ -33,6 +33,16 @@ ## G --- ## H +### **[HealthAPI](https://github.com/SmallasWater/HealthAPI)** +**注意** +- 现在列出的变量是临时的,之后会将变量改为`{Player-Health}` +- 变量`{hb}`除外,并且移除变量`{mh}` + +|变量名|变量介绍| +|-|-| +|{h}|玩家血量| +|{mh}|玩家血量上限| +|{hb}|玩家血量百分比| --- ## I --- diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java index 9369bec..2629077 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java @@ -22,6 +22,7 @@ public class Main extends PluginBase { private Config configInPlayer; private Config worldName; private Config language; + public static boolean debug = false; //定义配置文件的一些信息 public static int config1Version = 1; //config.yml public static int config2Version = 1; //player.yml @@ -41,7 +42,7 @@ public void onEnable() { //判断需要的前置插件是否存在 if (this.getServer().getPluginManager().getPlugin("Tips") != null) { //存在则加载该插件 - this.getServer().getCommandMap().register("", new NewTipsVariablesCommand()); + this.getServer().getCommandMap().register("", new NewTipsVariablesCommand());//注册命令 configUtils.configUtils(); this.deBugMode();//用于加载debug信息 this.tipsvariables();//加载变量部分 @@ -86,8 +87,8 @@ public void loadVarRes() { public void deBugMode() { boolean deBug = this.config.getBoolean("debug", false); //这个功能默认关闭,不在config.yml中,需手动加上 if (deBug) { - String debugPerfix = "§7[§cDEBUG§7] "; - this.getLogger().warning(debugPerfix + "§cdebug模式已开启"); + debug = true; + this.getLogger().warning("§7[§cDEBUG§7] §cdebug模式已开启"); } } @@ -126,5 +127,6 @@ public Config getLanguage() { //重载配置 public void reload() { loadConfigRes(); + configUtils.configUtils(); } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java index 1d000bd..aa0c91c 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseCommand.java @@ -83,5 +83,4 @@ protected void loadCommandBase() { this.commandParameters.put(subCommand.getName(), parameters.toArray(new CommandParameter[0])); } } - } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java index 807f850..9a849a9 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/BaseSubCommand.java @@ -4,7 +4,6 @@ import cn.nukkit.command.CommandSender; import cn.nukkit.command.data.CommandParameter; - /** * @author SmallasWater */ @@ -51,5 +50,4 @@ public String getName(){ * @return 提示参数 * */ public abstract CommandParameter[] getParameters(); - } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java index 60ab74f..4d25e2e 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/newTipsVariables/ReloadCommand.java @@ -34,4 +34,4 @@ public boolean execute(CommandSender sender, String label, String[] args) { public CommandParameter[] getParameters() { return new CommandParameter[0]; } -} +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java index cee5b3f..f90a4dc 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java @@ -10,53 +10,52 @@ import cn.stevei5mc.NewTipsVariables.Main; import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.HealthAPIVariable; -public class loadSupportPlugins { - +public class loadSupportPlugins{ + //加载相关插件的变量时的提示 + public static String debugPerfix = "§7[§cDEBUG§7] "; + public static String successMsg = debugPerfix+"§a找到插件§e【§b{0}§e】§a相关变量已加载"; + public static String failureMsg = debugPerfix+"§c无法找到插件§e【§b{0}§e】§c相关变量加载失败,请安装相关插件再试"; public static void loadSupportVariables(Player player) { - boolean debug = Main.getInstance().getConfig().getBoolean("debug", false); - //加载相关插件的变量时的提示 - String debugPerfix = "§7[§cDEBUG§7] "; - String loadPlugin; - String loadSuccessMsg = "§a找到插件§e【§b{0}§e】§a相关变量已加载"; - String loadFailureMsg = "§c无法找到插件§e【§b{0}§e】§c相关变量加载失败,请安装相关插件再试"; + boolean debug = Main.debug; + String plugin; //需要加载的变量的插件 - loadPlugin = "playerPoints"; - if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + plugin = "playerPoints"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { //存在 Api.registerVariables("playerPointsVariable", playerPointsVariable.class); - if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} - } else { - if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); } - loadPlugin = "EconomyAPI"; - if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + plugin = "EconomyAPI"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { //存在 Api.registerVariables("economyApiVariable", economyApiVariable.class); - if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} - } else { - if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} - } - loadPlugin = "OreArea"; - if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); + } + plugin = "OreArea"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { //存在 Api.registerVariables("OreAreaVariable", OreAreaVariable.class); - if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} - } else { - if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); } - loadPlugin = "RSTask"; - if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + plugin = "RSTask"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { Api.registerVariables("RsTaskVariable", RsTaskVariable.class); - if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} - } else { - if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); } - loadPlugin = "HealthAPI"; - if (Server.getInstance().getPluginManager().getPlugin(loadPlugin) != null) { + plugin = "HealthAPI"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { Api.registerVariables("HealthAPIVariable", HealthAPIVariable.class); - if (debug) {Main.getInstance().getLogger().info(loadSuccessMsg.replace("{0}",loadPlugin));} - } else { - if (debug) {Main.getInstance().getLogger().info(loadFailureMsg.replace("{0}",loadPlugin));} - } + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); + } } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/OreAreaVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/OreAreaVariable.java index 13087a3..9d22fc7 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/OreAreaVariable.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/OreAreaVariable.java @@ -62,7 +62,6 @@ public void OreAreaVarArea() { time = "§c未解锁矿区"; } } - } if(AreaMainClass.timer.containsKey(areaClass.getName())) { reset = String.valueOf(AreaMainClass.timer.get(areaClass.getName())); diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RsTaskVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RsTaskVariable.java index c3a42d7..504de87 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RsTaskVariable.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RsTaskVariable.java @@ -26,7 +26,6 @@ public void RsTaskVar() { taskName = task.getTaskName(); } } - this.addStrReplaceString("{task-name}", taskName); this.addStrReplaceString("{task-count}", file.getCount() + ""); } diff --git a/src/main/resources/SupportPluginsVariables.txt b/src/main/resources/SupportPluginsVariables.txt index ffacb6d..de2fb85 100644 --- a/src/main/resources/SupportPluginsVariables.txt +++ b/src/main/resources/SupportPluginsVariables.txt @@ -4,6 +4,13 @@ NewTipsVariables(变量文档) E EconomyAPI {economyApi-money} 玩家金钱数量 +H + HealthAPI + 现在列出的变量是临时的,之后会将变量改为{Player-Health} + 变量{hb}除外,并且移除变量{mh} + {h} 玩家血量 + {mh} 玩家血量上限 + {hb} 玩家血量百分比 O OreArea {orearea-level-this} 获取玩家的矿区等级 From 8501ec72afe61edf22d375c9ec64fde57c9fc4c5 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Mon, 8 Apr 2024 23:35:45 +0800 Subject: [PATCH 07/14] =?UTF-8?q?dev=201=E3=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=98=E9=87=8F=20{Player-Yaw}=20=20=20{Player-Pitch}=202?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E6=94=B9doc=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/SupportPluginsVariables.md | 23 +++++----- docs/config-info.md | 42 +++++++++++-------- docs/player-variables.md | 17 ++++---- docs/server-variables.md | 13 +++--- docs/text-variables.md | 15 +++---- .../variables/tipsPlayer.java | 5 ++- src/main/resources/base-variables.txt | 2 + 7 files changed, 67 insertions(+), 50 deletions(-) diff --git a/docs/SupportPluginsVariables.md b/docs/SupportPluginsVariables.md index 5913681..08a7e72 100644 --- a/docs/SupportPluginsVariables.md +++ b/docs/SupportPluginsVariables.md @@ -1,14 +1,15 @@ -[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) [![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue) +[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) +[![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue) ](./config-info.md) -# **变量文档(支持的插件)** -[![1](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) +[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) ](./text-variables.md) -[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) +[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) ](./player-variables.md) -[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) +[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue) ](./server-variables.md) -[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic) +[![5](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic) ](./SupportPluginsVariables.md) +# **变量文档(支持的插件)** --- > **按插件的英文字母排序** @@ -25,7 +26,7 @@ ## **E** ### **[EconomyAPI](https://github.com/Nukkit-coders/EconomyAPI)** |变量名|变量介绍| -|-|-| +|:-:|:-:| |{economyApi-money}|玩家金钱数量| --- ## F @@ -39,7 +40,7 @@ - 变量`{hb}`除外,并且移除变量`{mh}` |变量名|变量介绍| -|-|-| +|:-:|:-:| |{h}|玩家血量| |{mh}|玩家血量上限| |{hb}|玩家血量百分比| @@ -60,7 +61,7 @@ ### **[OreArea](https://github.com/SmallasWater/OreArea)** **注意: 变量`{orearea-time-use}`在有限时的矿区会有BUG(到秒就不动了)** |变量名|变量介绍| -|-|-| +|:-:|:-:| |{orearea-level-this}|获取玩家的矿区等级| |{orearea-level-next}|获取玩家的矿区下一等级| |{orearea-time-use}|获取玩家所在的矿区可以使用的时间| @@ -70,7 +71,7 @@ ## **P** ### **[playerPoints](https://github.com/SmallasWater/PlayerPoints)** |变量名|变量介绍| -|-|-| +|:-:|:-:| |{point}|获取玩家的点券数量| --- ## Q @@ -78,7 +79,7 @@ ## R ### **[RsTask](https://github.com/MemoriesOfTime/RSTask)** |变量名|变量介绍| -|-|-| +|:-:|:-:| |{task-name}|正在进行中的任务 (显示第一个)| |{task-count}|玩家任务积分| --- diff --git a/docs/config-info.md b/docs/config-info.md index cfde430..64cdaad 100644 --- a/docs/config-info.md +++ b/docs/config-info.md @@ -12,15 +12,15 @@ ```yml save-variables-doc: true ``` -> **1、该配置项启用后,服务器每次启动后都会生成新的变量文档** -> **2、若关闭后,就算删除变量文档也不会生成新的变量文档** -> **3、该配置项默认启用** +1. 该配置项启用后,服务器每次启动后都会生成新的变量文档 +2. 若关闭后,就算删除变量文档也不会生成新的变量文档 +3. 该配置项默认启用 ### **debug功能** ```yml debug: false ``` -> 1、这个功能默认关闭并不在配置文件中,需要手动填写 -> 2、把`debug: true`复制进`config.yml`即可启用 +1. 这个功能默认关闭并不在配置文件中,需要手动填写 +2. 把`debug: true`复制进`config.yml`即可启用 ## **[server.yml](../src/main/resources/server.yml)** > **服务器相关变量配置文件** ```yml @@ -31,18 +31,18 @@ TPS: high_value: 15 high_color: "§a" ``` -> **1、```color```设置显示的颜色,```low```、```medium```、```high```为显示的范围** -> **2、```value```是一个范围值,```medium```、```high```为可设置的范围值,```low```值只能为```0```** +1. ```color```设置显示的颜色,```low```、```medium```、```high```为显示的范围 +2. ```value```是一个范围值,```medium```、```high```为可设置的范围值,```low```值只能为```0``` ## **[player.yml](../src/main/resources/player.yml)** > **玩家相关变量配置文件** ```yml Device: OS: - Android: "安卓" - iOS: "苹果" - macOS: "苹果但是电脑" - Fire_OS: "Fire_OS" - Gear_VR: "Gear_VR" + Android: "Android" + iOS: "iOS" + macOS: "macOS" + Fire_OS: "Fire OS" + Gear_VR: "Gear VR" HoloLens: "HoloLens" Windows_10: "Windows 10" Windows: "Windows" @@ -51,13 +51,19 @@ Device: PlayStation: "PlayStation" Switch: "Switch" Xbox: "Xbox" - Windows_Phone: "windows但是手机" + Windows_Phone: "Windows Phone" + Controls: + Keyboard: Keyboard + Touch: Touch + pad: pad + motion_controller: motion_controller UIProfile: classic: "classic ui" pocket: "pocket ui" ``` -> 1、**```OS```玩家的设备系统** -> 2、**```UIProfile```玩家的设备UI** +- **```OS```玩家的设备系统** +- **```Controls```获取玩家设备的操作方式** +- **```UIProfile```玩家的设备UI** ```yml ping: low_color: "§a" @@ -79,6 +85,6 @@ Food: high_value: 15 high_color: "§a{0}§7/§a{1}" ``` -> **1、```color```设置显示的颜色,```low```、```medium```、```high```为显示的范围** -> **2、```value```是一个范围值,```medium```、```high```为可设置的范围值,```low```值只能为```0```** -> **3、```symbols```是用来设置分割符号的,例如: ```HP: 20/20```** \ No newline at end of file +1. ```color```设置显示的颜色,```low```、```medium```、```high```为显示的范围 +1. ```value```是一个范围值,```medium```、```high```为可设置的范围值,```low```值只能为```0``` +1. ```symbols```是用来设置分割符号的,例如: ```HP: 20/20``` \ No newline at end of file diff --git a/docs/player-variables.md b/docs/player-variables.md index f1398d5..1d74eec 100644 --- a/docs/player-variables.md +++ b/docs/player-variables.md @@ -1,13 +1,14 @@ -[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) [![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) +[![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./text-variables.md) +[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic)](./player-variables.md) +[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./server-variables.md) +[![5](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) # **变量文档(玩家相关)** -[![1](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./text-variables.md) -[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic)](./player-variables.md) -[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./server-variables.md) -[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) --- |变量|介绍|备注| -|-|-|-| +|:-:|:-:|:-:| |{Player-Xp}|获取玩家在游戏中的经验等级|| |{Device-Model}|获取玩家使用的设备型号|| |{XUID}|获取玩家的xuid|| @@ -19,4 +20,6 @@ |{Player-Food}|获取玩家当前的饥饿度|| |{Player-Health}|获取玩家当前的血量|| |{Player-World}|获取玩家所在的世界|**需在world_name.yml配置**| -|{Player-Controls}|获取玩家设备的操作方式|| \ No newline at end of file +|{Player-Controls}|获取玩家设备的操作方式|| +|{Player-Yaw}|获取玩家的Yaw值|| +|{Player-Pitch}|获取玩家的Pitch值|| \ No newline at end of file diff --git a/docs/server-variables.md b/docs/server-variables.md index 48f4b58..e74f140 100644 --- a/docs/server-variables.md +++ b/docs/server-variables.md @@ -1,13 +1,14 @@ -[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) [![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) +[![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./text-variables.md) +[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./player-variables.md) +[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic)](./server-variables.md) +[![5](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) # **变量文档(服务器相关)** -[![1](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./text-variables.md) -[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./player-variables.md) -[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic)](./server-variables.md) -[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) --- |变量|介绍|备注| -|-|-|-| +|:-:|:-:|:-:| |{Server-Motd}|获取服务器主motd|| |{Server-SubMotd}|获取服务器副motd|| |{Server-Ip}|获取服务器IP|| diff --git a/docs/text-variables.md b/docs/text-variables.md index f86376f..e771e0f 100644 --- a/docs/text-variables.md +++ b/docs/text-variables.md @@ -1,16 +1,17 @@ -[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) [![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![0](https://img.shields.io/badge/%3C%3D-%E8%BF%94%E5%9B%9E-a?style=plastic&color=yellow)](.././README.md) +[![1](https://img.shields.io/badge/doc-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E-a?style=plastic&color=blue)](./config-info.md) +[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic)](./text-variables.md) +[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./player-variables.md) +[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./server-variables.md) +[![5](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) # **变量文档(文字相关)** -[![1](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%96%87%E5%AD%97%E7%9B%B8%E5%85%B3-a?style=plastic)](./text-variables.md) -[![2](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E7%8E%A9%E5%AE%B6%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./player-variables.md) -[![3](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%B8%E5%85%B3-a?style=plastic&color=blue)](./server-variables.md) -[![4](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic&color=blue)](./SupportPluginsVariables.md) --- |变量名|对应内容|变量名|对应内容|变量名|对应内容|变量名|对应内容| -|-|-|-|-|-|-|-|-| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |{text-s0}|§0|{text-s1}|§1|{text-s2}|§2|{text-s3}|§3| |{text-s4}|§4|{text-s5}|§5|{text-s6}|§6|{text-s7}|§7| |{text-s8}|§8|{text-s9}|§9|{text-sa}|§a|{text-sb}|§b| |{text-sc}|§c|{text-sd}|§d|{text-se}|§e|{text-sf}|§f| |{text-bold}|§l|{text-italic}|§o|{text-reset}|§r|{text-mess}|§k| -|{text-next}|\n|---|---|---|---|---|---| \ No newline at end of file +|{text-next}|\n||||||| \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java index 13dd852..bf48a91 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java @@ -7,7 +7,6 @@ public class tipsPlayer extends BaseVariable { public tipsPlayer(Player player) { super(player); } - public void strReplace() { playerVar(); } @@ -18,5 +17,9 @@ public void playerVar() { addStrReplaceString("{XUID}", String.valueOf(player.getLoginChainData().getXUID())); addStrReplaceString("{Player-Lang}", player.getLoginChainData().getLanguageCode()); addStrReplaceString("{Player-Uuid}", String.valueOf(player.getLoginChainData().getClientUUID())); + int yaw = (int) player.getYaw(); + addStrReplaceString("{Player-Yaw}",String.valueOf(yaw)); + int pitch = (int) player.getPitch(); + addStrReplaceString("{Player-Pitch}",String.valueOf(pitch)); } } \ No newline at end of file diff --git a/src/main/resources/base-variables.txt b/src/main/resources/base-variables.txt index d35561b..ecdedbb 100644 --- a/src/main/resources/base-variables.txt +++ b/src/main/resources/base-variables.txt @@ -12,6 +12,8 @@ {Player-Health} 玩家当前的血量 {Player-World} 获取玩家所在的世界(需在world_name.yml配置) {Player-Controls} 获取玩家设备的操作方式 +|{Player-Yaw} 获取玩家的Yaw值 +|{Player-Pitch} 获取玩家的Pitch值 服务器相关变量: {Server-Ip} 获取服务器IP {Server-Tps} 获取服务器当前TPS From dce4443c8f8f5dc59f2508cb107926d2ee19d4fa Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Tue, 9 Apr 2024 20:11:08 +0800 Subject: [PATCH 08/14] =?UTF-8?q?dev=201=E3=80=81=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=96=87=E6=A1=A3=E4=B8=AD=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E7=AC=A6=202=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=8F=90=E7=A4=BA=203=E3=80=81=E8=BF=9B?= =?UTF-8?q?=E4=B8=80=E6=AD=A5=E5=AE=8C=E5=96=84HealthAPI=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/SupportPluginsVariables.md | 4 --- .../command/NewTipsVariablesCommand.java | 2 +- .../smallasWater/HealthAPIVariable.java | 32 ++++++++++++++++--- .../resources/SupportPluginsVariables.txt | 2 -- src/main/resources/base-variables.txt | 6 ++-- 5 files changed, 32 insertions(+), 14 deletions(-) diff --git a/docs/SupportPluginsVariables.md b/docs/SupportPluginsVariables.md index 08a7e72..278041c 100644 --- a/docs/SupportPluginsVariables.md +++ b/docs/SupportPluginsVariables.md @@ -35,10 +35,6 @@ --- ## H ### **[HealthAPI](https://github.com/SmallasWater/HealthAPI)** -**注意** -- 现在列出的变量是临时的,之后会将变量改为`{Player-Health}` -- 变量`{hb}`除外,并且移除变量`{mh}` - |变量名|变量介绍| |:-:|:-:| |{h}|玩家血量| diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java index 5c96a55..9906de3 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java @@ -10,7 +10,7 @@ public class NewTipsVariablesCommand extends BaseCommand { public NewTipsVariablesCommand() { - super("NewTipsVariables", "NewTipsVariables管理命令"); + super("NewTipsVariables", "NewTipsVariables 命令"); this.setPermission("newtipsariables.admin"); this.addSubCommand(new ReloadCommand("reload")); this.loadCommandBase(); diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java index b38f697..59f3f28 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java @@ -3,8 +3,9 @@ import cn.nukkit.Player; import tip.utils.variables.BaseVariable; import healthapi.PlayerHealth; +import cn.stevei5mc.NewTipsVariables.Main; -public class HealthAPIVariable extends BaseVariable { +public class HealthAPIVariable extends BaseVariable { public HealthAPIVariable(Player player) { super(player); } @@ -15,8 +16,31 @@ public void strReplace() { public void HealthAPIVar() { PlayerHealth health = PlayerHealth.getPlayerHealth(this.player); - this.addStrReplaceString("{h}", String.format("%.1f", health.getHealth())); - this.addStrReplaceString("{mh}", health.getMaxHealth() + ""); - this.addStrReplaceString("{hb}", String.format("%.2f", health.getHealthPercentage() * 100.0D)); + addStrReplaceString("{h}", String.format("%.1f", health.getHealth())); + addStrReplaceString("{mh}", health.getMaxHealth() + ""); + addStrReplaceString("{hb}", String.format("%.2f", health.getHealthPercentage() * 100.0D)); + addStrReplaceString("{Player-Health}", this.getPlayerHealth(player)); + } + + public String getPlayerHealth(Player player) { + PlayerHealth health = PlayerHealth.getPlayerHealth(this.player); + String playerHealthLowColor = Main.getInstance().getConfigInPlayer().getString("HP.low_color");//low值 + int playerHealthMediumValue = Main.getInstance().getConfigInPlayer().getInt("HP.medium_value");//medium值 + String playerHealthMediumColor = Main.getInstance().getConfigInPlayer().getString("HP.medium_color"); + int playerHealthHgihValue = Main.getInstance().getConfigInPlayer().getInt("HP.high_value");//hgih值 + String playerHealthHgihColor = Main.getInstance().getConfigInPlayer().getString("HP.high_color"); + String playerHealth; + double healthValue = health.getHealth(); + String healthValue2 = String.valueOf(healthValue); + String healthMaxValue = String.valueOf(health.getMaxHealth()); + //low=1 + if (healthValue >= playerHealthHgihValue) { + playerHealth = playerHealthHgihColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + }else if (healthValue >= playerHealthMediumValue) { + playerHealth = playerHealthMediumColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + }else { + playerHealth = playerHealthLowColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + } + return playerHealth; } } \ No newline at end of file diff --git a/src/main/resources/SupportPluginsVariables.txt b/src/main/resources/SupportPluginsVariables.txt index de2fb85..5511200 100644 --- a/src/main/resources/SupportPluginsVariables.txt +++ b/src/main/resources/SupportPluginsVariables.txt @@ -6,8 +6,6 @@ E {economyApi-money} 玩家金钱数量 H HealthAPI - 现在列出的变量是临时的,之后会将变量改为{Player-Health} - 变量{hb}除外,并且移除变量{mh} {h} 玩家血量 {mh} 玩家血量上限 {hb} 玩家血量百分比 diff --git a/src/main/resources/base-variables.txt b/src/main/resources/base-variables.txt index ecdedbb..c997435 100644 --- a/src/main/resources/base-variables.txt +++ b/src/main/resources/base-variables.txt @@ -1,4 +1,4 @@ -变量名 变量说明 +变量名 变量说明 玩家相关的变量: {XUID} 获取玩家的xuid {Player-Ui} 获取玩家客户端使用的UI @@ -12,8 +12,8 @@ {Player-Health} 玩家当前的血量 {Player-World} 获取玩家所在的世界(需在world_name.yml配置) {Player-Controls} 获取玩家设备的操作方式 -|{Player-Yaw} 获取玩家的Yaw值 -|{Player-Pitch} 获取玩家的Pitch值 +{Player-Yaw} 获取玩家的Yaw值 +{Player-Pitch} 获取玩家的Pitch值 服务器相关变量: {Server-Ip} 获取服务器IP {Server-Tps} 获取服务器当前TPS From 3e97dd8c1c90592275c59c53b004a8fd9c0af3ff Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Tue, 9 Apr 2024 23:51:43 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9A=84=E5=8F=98=E9=87=8F=E6=94=AF=E6=8C=81?= =?UTF-8?q?=20LevelAwakenSystem=20=E5=92=8C=20RSWeapon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/LevelAwakenSystem.jar | Bin 0 -> 106232 bytes lib/RSWeapon.jar | Bin 0 -> 150780 bytes pom.xml | 102 +++++++++-------- .../supportPlugins/loadSupportPlugins.java | 16 +++ .../smallasWater/HealthAPIVariable.java | 5 +- .../LevelAwakenSystemVariable.java | 44 ++++++++ .../smallasWater/RSWeaponVariable.java | 105 ++++++++++++++++++ .../resources/SupportPluginsVariables.txt | 36 +++++- 8 files changed, 259 insertions(+), 49 deletions(-) create mode 100644 lib/LevelAwakenSystem.jar create mode 100644 lib/RSWeapon.jar create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/LevelAwakenSystemVariable.java create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java diff --git a/lib/LevelAwakenSystem.jar b/lib/LevelAwakenSystem.jar new file mode 100644 index 0000000000000000000000000000000000000000..3b35e0a70bcf6c7d0231d914bd7e6f29e171d0a9 GIT binary patch literal 106232 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 J05DPl{XYlXAb literal 0 HcmV?d00001 diff --git a/lib/RSWeapon.jar b/lib/RSWeapon.jar new file mode 100644 index 0000000000000000000000000000000000000000..b59149d29154429f86146897bcd24639cd15d132 GIT binary patch literal 150780 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 z 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%0A?ybLXMsrJ*~2XLvqgfNs!h+x>mb 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 4.0.0 - cn.stevei5mc NewTipsVariables 1.0.0-beta8 - - opencollab-repo-release - https://repo.opencollab.dev/maven-releases/ - - true - - - false - - - - opencollab-repo-snapshot - https://repo.opencollab.dev/maven-snapshots/ - - false - - - true - - - - repo-lanink-cn - https://repo.lanink.cn/repository/maven-public/ - + opencollab-repo-release + https://repo.opencollab.dev/maven-releases/ + + true + + + false + + + + opencollab-repo-snapshot + https://repo.opencollab.dev/maven-snapshots/ + + false + + + true + + + + repo-lanink-cn + https://repo.lanink.cn/repository/maven-public/ + - cn.nukkit @@ -78,26 +75,37 @@ system ${project.basedir}/lib/healthapi_v1.2.9.jar + + com.samllaswater + LevelAwakenSystem + 80.5.9.5 + system + ${project.basedir}/lib/LevelAwakenSystem.jar + + + com.samllaswater + RSWeapon + 1.9.5 + system + ${project.basedir}/lib/RSWeapon.jar + - - - 8 - 8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - 1.8 - 1.8 - UTF-8 - - - - - + + 8 + 8 + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + 1.8 + 1.8 + UTF-8 + + + + \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java index f90a4dc..3110969 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/loadSupportPlugins.java @@ -9,6 +9,8 @@ import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.RsTaskVariable; import cn.stevei5mc.NewTipsVariables.Main; import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.HealthAPIVariable; +import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.LevelAwakenSystemVariable; +import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater.RSWeaponVariable; public class loadSupportPlugins{ //加载相关插件的变量时的提示 @@ -57,5 +59,19 @@ public static void loadSupportVariables(Player player) { } else if (debug) { Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); } + plugin = "LevelAwakenSystem"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { + Api.registerVariables("LevelAwakenSystemVariable", LevelAwakenSystemVariable.class); + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); + } + plugin = "RSWeapon"; + if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { + Api.registerVariables("RSWeaponVariable", RSWeaponVariable.class); + if (debug) {Main.getInstance().getLogger().info(successMsg.replace("{0}",plugin));} + } else if (debug) { + Main.getInstance().getLogger().info(failureMsg.replace("{0}",plugin)); + } } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java index 59f3f28..1cf176f 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/HealthAPIVariable.java @@ -14,12 +14,15 @@ public void strReplace() { HealthAPIVar(); } +/** + * @author SmallasWater + */ public void HealthAPIVar() { PlayerHealth health = PlayerHealth.getPlayerHealth(this.player); addStrReplaceString("{h}", String.format("%.1f", health.getHealth())); addStrReplaceString("{mh}", health.getMaxHealth() + ""); addStrReplaceString("{hb}", String.format("%.2f", health.getHealthPercentage() * 100.0D)); - addStrReplaceString("{Player-Health}", this.getPlayerHealth(player)); + addStrReplaceString("{Player-Health}", this.getPlayerHealth(player));//这个除外 } public String getPlayerHealth(Player player) { diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/LevelAwakenSystemVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/LevelAwakenSystemVariable.java new file mode 100644 index 0000000..c69d406 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/LevelAwakenSystemVariable.java @@ -0,0 +1,44 @@ +package cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater; + +import cn.nukkit.Player; +import tip.utils.variables.BaseVariable; +import AwakenSystem.data.DamageMath; +import AwakenSystem.data.defaultAPI; +import AwakenSystem.data.baseAPI; +import AwakenSystem.utils.nbtItems; +import cn.nukkit.item.Item; + +public class LevelAwakenSystemVariable extends BaseVariable { + public LevelAwakenSystemVariable(Player player) { + super(player); + } + + public void strReplace() { + LevelAwakenSystem(); + } + +/** + * @author SmallasWater + */ + public void LevelAwakenSystem() { + Item item = this.player.getInventory().getItem(35); + String add = null; + if (nbtItems.can_use(this.player, item)) { + add = nbtItems.getName(item); + } + this.addStrReplaceString("{天赋}", defaultAPI.getChatBySetting(this.player.getName())); + this.addStrReplaceString("{level}", String.valueOf(defaultAPI.getPlayerAttributeInt(this.player.getName(), baseAPI.PlayerConfigType.LEVEL))); + this.addStrReplaceString("{exp}", String.valueOf(defaultAPI.getPlayerAttributeInt(this.player.getName(), baseAPI.PlayerConfigType.EXP))); + this.addStrReplaceString("{mexp}", String.valueOf(DamageMath.getUpDataEXP(this.player))); + this.addStrReplaceString("{dw}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.DAMAGE_W))); + this.addStrReplaceString("{df}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.DAMAGE_F))); + this.addStrReplaceString("{dlw}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.DEFENSE_W))); + this.addStrReplaceString("{dlf}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.DEFENSE_F))); + this.addStrReplaceString("{b}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.CRriT))); + this.addStrReplaceString("{kb}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.ANTI_RIOT))); + this.addStrReplaceString("{kx}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.RESISTANCE))); + this.addStrReplaceString("{c}", String.valueOf(defaultAPI.getPlayerFinalAttributeInt(this.player, baseAPI.ItemADDType.PENETRATION))); + this.addStrReplaceString("{饰品}", add != null ? add : "无"); + this.addStrReplaceString("{属性}", "null".equals(defaultAPI.getPlayerAttributeString(this.player.getName(), baseAPI.PlayerConfigType.ATTRIBUTE)) ? "无属性" : defaultAPI.getPlayerAttributeString(this.player.getName(), baseAPI.PlayerConfigType.ATTRIBUTE)); + } +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java new file mode 100644 index 0000000..40d3943 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java @@ -0,0 +1,105 @@ +package cn.stevei5mc.NewTipsVariables.variables.supportPlugins.smallasWater; + +import cn.nukkit.Player; +import tip.utils.variables.BaseVariable; +import weapon.items.Armor; +import weapon.items.Weapon; +import weapon.utils.PlayerAddAttributes; +import cn.nukkit.item.Item; +import cn.nukkit.utils.TextFormat; +import cn.nukkit.Server; + +public class RSWeaponVariable extends BaseVariable { + public RSWeaponVariable(Player player) { + super(player); + } + + public void strReplace() { + RSWeapon(); + } + +/** + * @author SmallasWater + */ + public void RSWeapon() { + try { + Item item = this.player.getInventory().getItemInHand(); + if (Server.getInstance().getPluginManager().getPlugin("RSWeapon") != null) { + Weapon weapon = Weapon.getInstance(item); + String name = TextFormat.RED + "无神器"; + int c = 0; + if (weapon != null) { + name = weapon.getName(); + if (!weapon.canUse(this.player)) { + name = name + TextFormat.RED + " (无法使用)"; + } + c = weapon.getGemStones().size(); + } + Item het = this.player.getInventory().getHelmet(); + Item chest = this.player.getInventory().getChestplate(); + Item legging = this.player.getInventory().getLeggings(); + Item boot = this.player.getInventory().getBoots(); + int hSize = 0; + int cSize = 0; + int lSize = 0; + int bSize = 0; + String hetName = TextFormat.RED + "无头盔"; + String chestName = TextFormat.RED + "无胸凯"; + String leggingName = TextFormat.RED + "无护腿"; + String bootName = TextFormat.RED + "无靴子"; + Armor armorHet = Armor.getInstance(het); + Armor armorChest = Armor.getInstance(chest); + Armor armorLegging = Armor.getInstance(legging); + Armor armorBoot = Armor.getInstance(boot); + if (armorHet != null) { + hetName = armorHet.getName(); + if (!armorHet.canUse(this.player)) { + hetName = hetName + TextFormat.RED + " (无法使用)"; + } + hSize = armorHet.getGemStones().size(); + } + if (armorChest != null) { + chestName = armorChest.getName(); + if (!armorChest.canUse(this.player)) { + chestName = chestName + TextFormat.RED + " (无法使用)"; + } + cSize = armorChest.getGemStones().size(); + } + if (armorLegging != null) { + leggingName = armorLegging.getName(); + if (!armorLegging.canUse(this.player)) { + leggingName = leggingName + TextFormat.RED + " (无法使用)"; + } + lSize = armorLegging.getGemStones().size(); + } + if (armorBoot != null) { + bootName = armorBoot.getName(); + if (!armorBoot.canUse(this.player)) { + bootName = bootName + TextFormat.RED + " (无法使用)"; + } + bSize = armorBoot.getGemStones().size(); + } + try { + PlayerAddAttributes playerAddAttributes = new PlayerAddAttributes(); + this.string = playerAddAttributes.getStrReplace(this.player, this.string); + } catch (Exception var22) {} + this.addStrReplaceString("{头盔}", hetName); + this.addStrReplaceString("{头盔宝石}", hSize + ""); + this.addStrReplaceString("{胸甲}", chestName); + this.addStrReplaceString("{胸甲宝石}", cSize + ""); + this.addStrReplaceString("{护腿}", leggingName); + this.addStrReplaceString("{护腿宝石}", lSize + ""); + this.addStrReplaceString("{靴子}", bootName); + this.addStrReplaceString("{靴子宝石}", bSize + ""); + this.addStrReplaceString("{武器名称}", name); + this.addStrReplaceString("{宝石个数}", c + ""); + this.addStrReplaceString("{we-damage}", PlayerAddAttributes.getDamage(this.player) + ""); + this.addStrReplaceString("{we-armor}", PlayerAddAttributes.getArmor(this.player) + ""); + this.addStrReplaceString("{we-health}", PlayerAddAttributes.getHealth(this.player) + ""); + this.addStrReplaceString("{we-kick}", String.format("%.2f", PlayerAddAttributes.getKick(this.player))); + this.addStrReplaceString("{we-dkick}", String.format("%.2f", PlayerAddAttributes.getDKick(this.player))); + this.addStrReplaceString("{we-todamage}", PlayerAddAttributes.getToDamage(this.player) + ""); + } + } catch (Exception var23) {} + } +} \ No newline at end of file diff --git a/src/main/resources/SupportPluginsVariables.txt b/src/main/resources/SupportPluginsVariables.txt index 5511200..4ea35d9 100644 --- a/src/main/resources/SupportPluginsVariables.txt +++ b/src/main/resources/SupportPluginsVariables.txt @@ -9,6 +9,23 @@ H {h} 玩家血量 {mh} 玩家血量上限 {hb} 玩家血量百分比 +L + LevelAwakenSystem + {属性} 玩家的RPG属性 + {天赋} 玩家评分 + {level} 玩家等级 + {exp} 玩家当前经验 + {mexp} 玩家当前经验最大值 + {dw} 玩家物理攻击 + {df} 玩家法术攻击 + {dlw} 玩家物理防御 + {dlf} 玩家法术防御 + {b} 玩家暴击 + {kb} 玩家抗暴 + {kx} 玩家抗性 + {c} 玩家穿透 + {饰品} 玩家当前装备的饰品 + {pvp} 玩家PVP 状态 (暂时不可用) O OreArea {orearea-level-this} 获取玩家的矿区等级 @@ -22,4 +39,21 @@ P R RsTask {task-name} 正在进行中的任务 (显示第一个) - {task-count} 玩家任务积分 \ No newline at end of file + {task-count} 玩家任务积分 + RSWeapon + {武器名称} : 玩家手持武器的名称 + {宝石个数} : 玩家手持武器的宝石个数 + {头盔} : 玩家装备的头盔 + {胸甲} : 玩家装备的胸甲 + {护腿} : 玩家装备的护腿 + {靴子} : 玩家装备的靴子 + {头盔宝石} : 玩家装备的头盔宝石个数 + {胸甲宝石} : 玩家装备的胸甲宝石个数 + {护腿宝石} : 玩家装备的护腿宝石个数 + {靴子宝石} : 玩家装备的靴子宝石个数 + {we-damage}: 玩家武器攻击力 + {we-armor}: 玩家盔甲护甲值 + {we-health}: 玩家盔甲生命值 + {we-kick}: 玩家武器击退值 + {we-dkick}: 玩家盔甲抗击退值 + {we-todamage}: 玩家盔甲反伤百分比 \ No newline at end of file From f423e01c11d267fd90949e35f06da233f7be9826 Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Wed, 10 Apr 2024 22:18:03 +0800 Subject: [PATCH 10/14] =?UTF-8?q?dev=201=E3=80=81=E8=A1=A5=E5=85=A8?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=96=87=E6=A1=A3=202=E3=80=81=E5=AF=B9?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=96=87=E6=A1=A3=E8=BF=9B=E8=A1=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=203=E3=80=81=E5=AF=B9=E4=BB=A3=E7=A0=81=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 +++-- docs/SupportPluginsVariables.md | 70 ++++++++--- .../smallasWater/RSWeaponVariable.java | 21 ++-- .../resources/SupportPluginsVariables.txt | 111 +++++++++--------- 4 files changed, 136 insertions(+), 94 deletions(-) diff --git a/README.md b/README.md index 03c7515..a2b85a1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # NewTipsVariables -## 插件介绍 [![GitHub License](https://img.shields.io/github/license/stevei5mc/NewTipsVariables?style=plastic)](LICENSE) ![GitHub top language](https://img.shields.io/github/languages/top/stevei5mc/NewTipsVariables?style=plastic) [![GitHub Release](https://img.shields.io/github/v/release/stevei5mc/NewTipsVariables?style=plastic&color=drak%20green)](https://github.com/stevei5mc/NewTipsVariables/releases) @@ -7,19 +6,28 @@ ![GitHub forks](https://img.shields.io/github/forks/stevei5mc/NewTipsVariables?style=plastic) ![GitHub issues](https://img.shields.io/github/issues/stevei5mc/NewTipsVariables?style=plastic&color=linkGreen) ![GitHub pull requests](https://img.shields.io/github/issues-pr/stevei5mc/NewTipsVariables?style=plastic) +## **插件介绍** +### **前言** - **该插件可以为Tips提供更多的变量内容** - **目前该插件正处于`beta`测试阶段如果有问题请及时提交[issues](https://github.com/stevei5mc/NewTipsVariables/issues)** - **如果你有开发能力可以为其提供[PR](https://github.com/stevei5mc/NewTipsVariables/pulls)来增加更多变量或修复问题** - +### **支持下列插件的** +**[EconomyAPI][i1] [HealthAPI][i1] [LevelAwakenSystem][i1] [OreArea][i1] [playerPoints][i1] [RsTask][i1] [RsWeapon][i1]** +### **命令与权限节点** +|命令|权限节点|权限介绍|默认权限| +|:-|:-:|:-|:-:| +|/newtipsariables|newtipsariables.admin|主命令|OP| +|/newtipsariables reload|newtipsariables.admin.reload|重载配置文件|OP| +### **变量介绍** +**[文字相关变量][i2] [玩家相关变量][i3] [服务器相关变量][i4] [支持的插件][i1]** ## **使用方法** 1. **将插件放进`plugins`文件夹** 2. **需确保安装`Tips`插件后重启服务器** 3. **在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** -### **[配置文件使用说明](./docs/config-info.md)** -### **变量介绍** -**[文字相关变量](./docs/text-variables.md) [玩家相关变量](./docs/player-variables.md) [服务器相关变量](./docs/server-variables.md) [支持的插件](./docs/SupportPluginsVariables.md)** -## **命令与权限节点** -|命令|权限节点|权限介绍|默认权限| -|:-:|:-:|:-:|:-:| -|/newtipsariables|newtipsariables.admin|主命令|OP| -|/newtipsariables reload|newtipsariables.admin.reload|重载配置文件|OP| \ No newline at end of file +### **[配置文件使用说明][i5]** + +[i1]: ./docs/SupportPluginsVariables.md "点击查看变量文档" +[i2]: ./docs/text-variables.md "点击查看变量文档" +[i3]: ./docs/player-variables.md "点击查看变量文档" +[i4]: ./docs/server-variables.md "点击查看变量文档" +[i5]: ./docs/config-info.md "点击查看配置文件相关介绍" \ No newline at end of file diff --git a/docs/SupportPluginsVariables.md b/docs/SupportPluginsVariables.md index 278041c..f5de7c2 100644 --- a/docs/SupportPluginsVariables.md +++ b/docs/SupportPluginsVariables.md @@ -10,30 +10,29 @@ [![5](https://img.shields.io/badge/%E5%8F%98%E9%87%8F-%E6%94%AF%E6%8C%81%E7%9A%84%E6%8F%92%E4%BB%B6-a?style=plastic) ](./SupportPluginsVariables.md) # **变量文档(支持的插件)** - --- > **按插件的英文字母排序** > **TipsVeriable 相关变量移值中,部分变量名有改动** -## A + ## **E** ### **[EconomyAPI](https://github.com/Nukkit-coders/EconomyAPI)** |变量名|变量介绍| |:-:|:-:| |{economyApi-money}|玩家金钱数量| --- -## F + +## **H** ### **[HealthAPI](https://github.com/SmallasWater/HealthAPI)** |变量名|变量介绍| |:-:|:-:| @@ -41,18 +40,36 @@ |{mh}|玩家血量上限| |{hb}|玩家血量百分比| --- -## I + +## **L** +### **[LevelAwakenSystem](https://github.com/SmallasWater/LevelAwakenSystem)** +|变量名|变量介绍| +|:-:|:-:| +|{属性}|玩家的RPG属性| +|{天赋}|玩家评分| +|{level}|玩家等级| +|{exp}|玩家当前经验| +|{mexp}|玩家当前经验最大值| +|{dw}|玩家物理攻击| +|{df}|玩家法术攻击| +|{dlw}|玩家物理防御| +|{dlf}|玩家法术防御| +|{b}|玩家暴击| +|{kb}|玩家抗暴| +|{kx}|玩家抗性| +|{c}|玩家穿透| +|{饰品}|玩家当前装备的饰品| +|{pvp}|玩家PVP 状态 (暂时不可用)| +--- + ## **O** ### **[OreArea](https://github.com/SmallasWater/OreArea)** **注意: 变量`{orearea-time-use}`在有限时的矿区会有BUG(到秒就不动了)** @@ -70,16 +87,35 @@ |:-:|:-:| |{point}|获取玩家的点券数量| --- -## Q ---- + ## R ### **[RsTask](https://github.com/MemoriesOfTime/RSTask)** |变量名|变量介绍| |:-:|:-:| |{task-name}|正在进行中的任务 (显示第一个)| |{task-count}|玩家任务积分| ---- -## S +### **[RsWeapon](https://github.com/SmallasWater/RsWeapon)** +|变量名|变量介绍| +|:-:|:-:| +|{武器名称}|玩家手持武器的名称| +|{宝石个数}|玩家手持武器的宝石个数| +|{头盔}|玩家装备的头盔| +|{胸甲}|玩家装备的胸甲| +|{护腿}|玩家装备的护腿| +|{靴子}|玩家装备的靴子| +|{头盔宝石}|玩家装备的头盔宝石个数| +|{胸甲宝石}|玩家装备的胸甲宝石个数| +|{护腿宝石}|玩家装备的护腿宝石个数| +|{靴子宝石}|玩家装备的靴子宝石个数| +|{we-damage}|玩家武器攻击力| +|{we-armor}|玩家盔甲护甲值| +|{we-health}|玩家盔甲生命值| +|{we-kick}|玩家武器击退值| +|{we-dkick}|玩家盔甲抗击退值| +|{we-todamage}|玩家盔甲反伤百分比| +--- + \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java index 40d3943..e584790 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/supportPlugins/smallasWater/RSWeaponVariable.java @@ -6,7 +6,6 @@ import weapon.items.Weapon; import weapon.utils.PlayerAddAttributes; import cn.nukkit.item.Item; -import cn.nukkit.utils.TextFormat; import cn.nukkit.Server; public class RSWeaponVariable extends BaseVariable { @@ -26,12 +25,12 @@ public void RSWeapon() { Item item = this.player.getInventory().getItemInHand(); if (Server.getInstance().getPluginManager().getPlugin("RSWeapon") != null) { Weapon weapon = Weapon.getInstance(item); - String name = TextFormat.RED + "无神器"; + String name = "§c无神器"; int c = 0; if (weapon != null) { name = weapon.getName(); if (!weapon.canUse(this.player)) { - name = name + TextFormat.RED + " (无法使用)"; + name = name + " §c(无法使用)"; } c = weapon.getGemStones().size(); } @@ -43,10 +42,10 @@ public void RSWeapon() { int cSize = 0; int lSize = 0; int bSize = 0; - String hetName = TextFormat.RED + "无头盔"; - String chestName = TextFormat.RED + "无胸凯"; - String leggingName = TextFormat.RED + "无护腿"; - String bootName = TextFormat.RED + "无靴子"; + String hetName = "§c无头盔"; + String chestName = "§c无胸凯"; + String leggingName = "§c无护腿"; + String bootName = "§c无靴子"; Armor armorHet = Armor.getInstance(het); Armor armorChest = Armor.getInstance(chest); Armor armorLegging = Armor.getInstance(legging); @@ -54,28 +53,28 @@ public void RSWeapon() { if (armorHet != null) { hetName = armorHet.getName(); if (!armorHet.canUse(this.player)) { - hetName = hetName + TextFormat.RED + " (无法使用)"; + hetName = hetName + " §c(无法使用)"; } hSize = armorHet.getGemStones().size(); } if (armorChest != null) { chestName = armorChest.getName(); if (!armorChest.canUse(this.player)) { - chestName = chestName + TextFormat.RED + " (无法使用)"; + chestName = chestName + " §c(无法使用)"; } cSize = armorChest.getGemStones().size(); } if (armorLegging != null) { leggingName = armorLegging.getName(); if (!armorLegging.canUse(this.player)) { - leggingName = leggingName + TextFormat.RED + " (无法使用)"; + leggingName = leggingName + " §c(无法使用)"; } lSize = armorLegging.getGemStones().size(); } if (armorBoot != null) { bootName = armorBoot.getName(); if (!armorBoot.canUse(this.player)) { - bootName = bootName + TextFormat.RED + " (无法使用)"; + bootName = bootName + " §c(无法使用)"; } bSize = armorBoot.getGemStones().size(); } diff --git a/src/main/resources/SupportPluginsVariables.txt b/src/main/resources/SupportPluginsVariables.txt index 4ea35d9..e416217 100644 --- a/src/main/resources/SupportPluginsVariables.txt +++ b/src/main/resources/SupportPluginsVariables.txt @@ -1,59 +1,58 @@ NewTipsVariables(变量文档) 本文档内容为支持的插件变量 变量内容排序按插件的英文字母排序 -E - EconomyAPI - {economyApi-money} 玩家金钱数量 -H - HealthAPI - {h} 玩家血量 - {mh} 玩家血量上限 - {hb} 玩家血量百分比 -L - LevelAwakenSystem - {属性} 玩家的RPG属性 - {天赋} 玩家评分 - {level} 玩家等级 - {exp} 玩家当前经验 - {mexp} 玩家当前经验最大值 - {dw} 玩家物理攻击 - {df} 玩家法术攻击 - {dlw} 玩家物理防御 - {dlf} 玩家法术防御 - {b} 玩家暴击 - {kb} 玩家抗暴 - {kx} 玩家抗性 - {c} 玩家穿透 - {饰品} 玩家当前装备的饰品 - {pvp} 玩家PVP 状态 (暂时不可用) -O - OreArea - {orearea-level-this} 获取玩家的矿区等级 - {orearea-level-next} 获取玩家的矿区下一等级 - {orearea-time-use} 获取玩家所在的矿区可以使用的时间(在有限时的矿区会有BUG,是到秒就不动了) - {orearea-time-reset} 获取玩家所在的刷新时间 - {orearea-name} 获取玩家所在的矿区等级 -P - playerPoints - {point} 获取玩家的点券数量 -R - RsTask - {task-name} 正在进行中的任务 (显示第一个) - {task-count} 玩家任务积分 - RSWeapon - {武器名称} : 玩家手持武器的名称 - {宝石个数} : 玩家手持武器的宝石个数 - {头盔} : 玩家装备的头盔 - {胸甲} : 玩家装备的胸甲 - {护腿} : 玩家装备的护腿 - {靴子} : 玩家装备的靴子 - {头盔宝石} : 玩家装备的头盔宝石个数 - {胸甲宝石} : 玩家装备的胸甲宝石个数 - {护腿宝石} : 玩家装备的护腿宝石个数 - {靴子宝石} : 玩家装备的靴子宝石个数 - {we-damage}: 玩家武器攻击力 - {we-armor}: 玩家盔甲护甲值 - {we-health}: 玩家盔甲生命值 - {we-kick}: 玩家武器击退值 - {we-dkick}: 玩家盔甲抗击退值 - {we-todamage}: 玩家盔甲反伤百分比 \ No newline at end of file + +EconomyAPI +{economyApi-money} 玩家金钱数量 + +HealthAPI +{h} 玩家血量 +{mh} 玩家血量上限 +{hb} 玩家血量百分比 + +LevelAwakenSystem +{属性} 玩家的RPG属性 +{天赋} 玩家评分 +{level} 玩家等级 +{exp} 玩家当前经验 +{mexp} 玩家当前经验最大值 +{dw} 玩家物理攻击 +{df} 玩家法术攻击 +{dlw} 玩家物理防御 +{dlf} 玩家法术防御 +{b} 玩家暴击 +{kb} 玩家抗暴 +{kx} 玩家抗性 +{c} 玩家穿透 +{饰品} 玩家当前装备的饰品 +{pvp} 玩家PVP 状态 (暂时不可用) + +OreArea +{orearea-level-this} 获取玩家的矿区等级 +{orearea-level-next} 获取玩家的矿区下一等级 +{orearea-time-use} 获取玩家所在的矿区可以使用的时间(在有限时的矿区会有BUG,是到秒就不动了) +{orearea-time-reset} 获取玩家所在的刷新时间 +{orearea-name} 获取玩家所在的矿区等级 +playerPoints +{point} 获取玩家的点券数量 + +RsTask +{task-name} 正在进行中的任务 (显示第一个) +{task-count} 玩家任务积分 +RSWeapon +{武器名称} : 玩家手持武器的名称 +{宝石个数} : 玩家手持武器的宝石个数 +{头盔} : 玩家装备的头盔 +{胸甲} : 玩家装备的胸甲 +{护腿} : 玩家装备的护腿 +{靴子} : 玩家装备的靴子 +{头盔宝石} : 玩家装备的头盔宝石个数 +{胸甲宝石} : 玩家装备的胸甲宝石个数 +{护腿宝石} : 玩家装备的护腿宝石个数 +{靴子宝石} : 玩家装备的靴子宝石个数 +{we-damage}: 玩家武器攻击力 +{we-armor}: 玩家盔甲护甲值 +{we-health}: 玩家盔甲生命值 +{we-kick}: 玩家武器击退值 +{we-dkick}: 玩家盔甲抗击退值 +{we-todamage}: 玩家盔甲反伤百分比 \ No newline at end of file From 84cc577048a23f3894ebde1dba99398c713d1ced Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Thu, 11 Apr 2024 23:43:15 +0800 Subject: [PATCH 11/14] =?UTF-8?q?dev=201=E3=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=98=E9=87=8F{Player-HeadYaw}=202=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=BB=A3=E7=A0=81=20=E5=B0=86tipsPlayerConfig.java?= =?UTF-8?q?=E5=92=8CserverVarConfig.java=E8=BF=99=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E7=B1=BB=E8=8E=B7=E5=8F=96=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95=E7=A7=BB=E5=8A=A8=E5=88=B0GetConfig?= =?UTF-8?q?Info.java=E4=B8=AD=EF=BC=8C=E6=8A=8A=E6=B7=BB=E5=8A=A0=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E7=9A=84=E6=96=B9=E6=B3=95=E7=A7=BB=E5=8A=A8=E5=88=B0?= =?UTF-8?q?=E5=90=84=E8=87=AA=E7=9A=84=E7=B1=BB=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pr-check.yml | 2 +- README.md | 4 +- .../cn/stevei5mc/NewTipsVariables/Main.java | 4 - .../GetConfigInfo.java} | 193 +++++++++--------- .../variables/tipsPlayer.java | 10 + .../variables/tipsServer.java | 2 + .../variables/tipsServerConfig.java | 39 ---- 7 files changed, 108 insertions(+), 146 deletions(-) rename src/main/java/cn/stevei5mc/NewTipsVariables/{variables/tipsPlayerConfig.java => utils/GetConfigInfo.java} (84%) delete mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServerConfig.java diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 281aa1c..093145c 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -23,5 +23,5 @@ jobs: - name: 收集构建文件 uses: actions/upload-artifact@v1 with: - name: ${{ steps.get_info.outputs.repository_name }}-Pr_check-Build-${{ github.run_number}} + name: ${{ steps.get_info.outputs.repository_name }}-PR_${{ github.event.pull_request.number }}-Build-${{ github.run_number}} path: staging \ No newline at end of file diff --git a/README.md b/README.md index a2b85a1..027d254 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,16 @@ **[EconomyAPI][i1] [HealthAPI][i1] [LevelAwakenSystem][i1] [OreArea][i1] [playerPoints][i1] [RsTask][i1] [RsWeapon][i1]** ### **命令与权限节点** |命令|权限节点|权限介绍|默认权限| -|:-|:-:|:-|:-:| +|:-:|:-:|:-:|:-:| |/newtipsariables|newtipsariables.admin|主命令|OP| |/newtipsariables reload|newtipsariables.admin.reload|重载配置文件|OP| ### **变量介绍** **[文字相关变量][i2] [玩家相关变量][i3] [服务器相关变量][i4] [支持的插件][i1]** +### **[配置文件使用说明][i5]** ## **使用方法** 1. **将插件放进`plugins`文件夹** 2. **需确保安装`Tips`插件后重启服务器** 3. **在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** -### **[配置文件使用说明][i5]** [i1]: ./docs/SupportPluginsVariables.md "点击查看变量文档" [i2]: ./docs/text-variables.md "点击查看变量文档" diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java index 2629077..24a45dc 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java @@ -6,8 +6,6 @@ import cn.stevei5mc.NewTipsVariables.variables.tipsText; import cn.stevei5mc.NewTipsVariables.variables.tipsServer; import cn.stevei5mc.NewTipsVariables.variables.tipsPlayer; -import cn.stevei5mc.NewTipsVariables.variables.tipsPlayerConfig; -import cn.stevei5mc.NewTipsVariables.variables.tipsServerConfig; import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.loadSupportPlugins; import cn.nukkit.Player; import cn.nukkit.utils.Config; @@ -96,8 +94,6 @@ public void tipsvariables() { Api.registerVariables("tipsText", tipsText.class); Api.registerVariables("tipsServer", tipsServer.class); Api.registerVariables("tipsPlayer", tipsPlayer.class); - Api.registerVariables("tipsPlayerConfig", tipsPlayerConfig.class); - Api.registerVariables("tipsServerConfig", tipsServerConfig.class); loadSupportPlugins.loadSupportVariables(player); } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayerConfig.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java similarity index 84% rename from src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayerConfig.java rename to src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java index 7302c1f..e7f974b 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayerConfig.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java @@ -1,41 +1,78 @@ -package cn.stevei5mc.NewTipsVariables.variables; +package cn.stevei5mc.NewTipsVariables.utils; -import cn.nukkit.Player; -import tip.utils.variables.BaseVariable; import cn.stevei5mc.NewTipsVariables.Main; - -public class tipsPlayerConfig extends BaseVariable { - public tipsPlayerConfig(Player player) { - super(player); +import cn.nukkit.Player; +import cn.nukkit.Server; +public class GetConfigInfo { + //获取服务器TPS + public static String getServerTps(Player player) { + String serverTpslowColor = Main.getInstance().getConfigInServer().getString("TPS.low_color");//low值 + int serverTpsMediumValue = Main.getInstance().getConfigInServer().getInt("TPS.medium_value");//medium值 + String serverTpsMediumColor = Main.getInstance().getConfigInServer().getString("TPS.medium_color"); + int serverTpsHgihValue = Main.getInstance().getConfigInServer().getInt("TPS.high_value");//hgih值 + String serverTpsHgihColor = Main.getInstance().getConfigInServer().getString("TPS.high_color"); + String serverTps; + float tpsValue = Server.getInstance().getTicksPerSecond(); + //low=0 + if (tpsValue >= serverTpsHgihValue) { + serverTps = serverTpsHgihColor + tpsValue; + }else if (tpsValue >= serverTpsMediumValue) { + serverTps = serverTpsMediumColor + tpsValue; + }else { + serverTps = serverTpslowColor + tpsValue; + } + return serverTps; } - - public void strReplace() { - playerVarConfig(); + //获取玩家所在的世界名 + public static String getPlayerWorld(Player player) { + String worldName = player.getLevel().getFolderName(); + String levelName = Main.getInstance().getWorldName().getString(worldName); + String unknownWorld = Main.getInstance().getLanguage().getString("Unknown_World").replace("{0}", worldName); + if (levelName == "") { + levelName = unknownWorld; + } + return levelName; } - - public void playerVarConfig() { - addStrReplaceString("{Device-Os}", this.getDeviceOS(player.getLoginChainData().getDeviceOS())); - addStrReplaceString("{Player-Ui}", getPlayerUi(player.getLoginChainData().getUIProfile())); - addStrReplaceString("{Player-Ping}", this.getPlayerPing(player)); - addStrReplaceString("{Player-Food}", this.getPlayerFood(player)); - addStrReplaceString("{Player-Health}", this.getPlayerHealth(player)); - addStrReplaceString("{Player-World}", this.getPlayerWorld(player)); - addStrReplaceString("{Player-Controls}",getDeviceControls(player.getLoginChainData().getCurrentInputMode())); + //获取玩家的延迟 + public static String getPlayerPing(Player player) { + String playerPingLowColor = Main.getInstance().getConfigInPlayer().getString("ping.low_color");//low值 + int playerPingMediumValue = Main.getInstance().getConfigInPlayer().getInt("ping.medium_value");//medium值 + String playerPingMediumColor = Main.getInstance().getConfigInPlayer().getString("ping.medium_color"); + int playerPingHgihValue = Main.getInstance().getConfigInPlayer().getInt("ping.high_value");//hgih值 + String playerPingHgihColor = Main.getInstance().getConfigInPlayer().getString("ping.high_color"); + String playerMS; + int pingValue = player.getPing(); + //low=0 + if (pingValue >= playerPingHgihValue) { + playerMS = playerPingHgihColor + pingValue; + }else if (pingValue >= playerPingMediumValue) { + playerMS = playerPingMediumColor + pingValue; + }else { + playerMS = playerPingLowColor + pingValue; + } + return playerMS; } - - /*这ui档案应该只有classic ui和pocket ui这两种UI(测试出来的) - Unknown UI是为了保险起见加上去的*/ - public String getPlayerUi(int ui) { - String classicUi = Main.getInstance().getConfigInPlayer().getString("Device.UIProfile.classic"); - String pocketUi = Main.getInstance().getConfigInPlayer().getString("Device.UIProfile.pocket"); - String unknownUi = Main.getInstance().getLanguage().getString("Unknown_Device_UIProfile"); - switch (ui) { - case 0: return classicUi; - case 1: return pocketUi; - default: return unknownUi; + //获取玩家的生命值状态 + public static String getPlayerHealth(Player player) { + String playerHealthLowColor = Main.getInstance().getConfigInPlayer().getString("HP.low_color");//low值 + int playerHealthMediumValue = Main.getInstance().getConfigInPlayer().getInt("HP.medium_value");//medium值 + String playerHealthMediumColor = Main.getInstance().getConfigInPlayer().getString("HP.medium_color"); + int playerHealthHgihValue = Main.getInstance().getConfigInPlayer().getInt("HP.high_value");//hgih值 + String playerHealthHgihColor = Main.getInstance().getConfigInPlayer().getString("HP.high_color"); + String playerHealth; + float healthValue = player.getHealth(); + String healthValue2 = String.valueOf(healthValue); + String healthMaxValue = String.valueOf(player.getMaxHealth()); + //low=1 + if (healthValue >= playerHealthHgihValue) { + playerHealth = playerHealthHgihColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + }else if (healthValue >= playerHealthMediumValue) { + playerHealth = playerHealthMediumColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + }else { + playerHealth = playerHealthLowColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); } + return playerHealth; } - //获取玩家的饱食度状态 public static String getPlayerFood(Player player) { String playerFoodEmptyColor = Main.getInstance().getConfigInPlayer().getString("Food.empty_color");//empty值 @@ -60,31 +97,34 @@ public static String getPlayerFood(Player player) { } return playerFood; } - - //获取玩家的生命值状态 - public static String getPlayerHealth(Player player) { - String playerHealthLowColor = Main.getInstance().getConfigInPlayer().getString("HP.low_color");//low值 - int playerHealthMediumValue = Main.getInstance().getConfigInPlayer().getInt("HP.medium_value");//medium值 - String playerHealthMediumColor = Main.getInstance().getConfigInPlayer().getString("HP.medium_color"); - int playerHealthHgihValue = Main.getInstance().getConfigInPlayer().getInt("HP.high_value");//hgih值 - String playerHealthHgihColor = Main.getInstance().getConfigInPlayer().getString("HP.high_color"); - String playerHealth; - float healthValue = player.getHealth(); - String healthValue2 = String.valueOf(healthValue); - String healthMaxValue = String.valueOf(player.getMaxHealth()); - //low=1 - if (healthValue >= playerHealthHgihValue) { - playerHealth = playerHealthHgihColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); - }else if (healthValue >= playerHealthMediumValue) { - playerHealth = playerHealthMediumColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); - }else { - playerHealth = playerHealthLowColor.replace("{0}",healthValue2).replace("{1}",healthMaxValue); + //获取玩家的UI Profile + public static String getPlayerUi(int ui) { + String classicUi = Main.getInstance().getConfigInPlayer().getString("Device.UIProfile.classic"); + String pocketUi = Main.getInstance().getConfigInPlayer().getString("Device.UIProfile.pocket"); + String unknownUi = Main.getInstance().getLanguage().getString("Unknown_Device_UIProfile"); + switch (ui) { + case 0: return classicUi; + case 1: return pocketUi; + default: return unknownUi; } - return playerHealth; } - + //获取玩家的操作方式 + public static String getDeviceControls(int ctrl) { + String keyboard = Main.getInstance().getConfigInPlayer().getString("Device.Controls.Keyboard"); + String touch = Main.getInstance().getConfigInPlayer().getString("Device.Controls.Touch"); + String pad = Main.getInstance().getConfigInPlayer().getString("Device.Controls.pad"); + String motionController = Main.getInstance().getConfigInPlayer().getString("Device.Controls.motion_controller"); + String unknownCtrl = Main.getInstance().getLanguage().getString("Unknown_Device_controls"); + switch (ctrl) { + case 1: return keyboard; + case 2: return touch; + case 3: return pad; + case 4: return motionController; + default: return unknownCtrl; + } + } //获取玩家设备的系统 - public String getDeviceOS(int os) { + public static String getDeviceOS(int os) { String android = Main.getInstance().getConfigInPlayer().getString("Device.OS.Android"); String iOS = Main.getInstance().getConfigInPlayer().getString("Device.OS.iOS"); String macOS = Main.getInstance().getConfigInPlayer().getString("Device.OS.macOS"); @@ -118,51 +158,4 @@ public String getDeviceOS(int os) { default: return unknownOs; } } - - //获取玩家的延迟 - public static String getPlayerPing(Player player) { - String playerPingLowColor = Main.getInstance().getConfigInPlayer().getString("ping.low_color");//low值 - int playerPingMediumValue = Main.getInstance().getConfigInPlayer().getInt("ping.medium_value");//medium值 - String playerPingMediumColor = Main.getInstance().getConfigInPlayer().getString("ping.medium_color"); - int playerPingHgihValue = Main.getInstance().getConfigInPlayer().getInt("ping.high_value");//hgih值 - String playerPingHgihColor = Main.getInstance().getConfigInPlayer().getString("ping.high_color"); - String playerMS; - int pingValue = player.getPing(); - //low=0 - if (pingValue >= playerPingHgihValue) { - playerMS = playerPingHgihColor + pingValue; - }else if (pingValue >= playerPingMediumValue) { - playerMS = playerPingMediumColor + pingValue; - }else { - playerMS = playerPingLowColor + pingValue; - } - return playerMS; - } - - //获取玩家所在的世界名 - public static String getPlayerWorld(Player player) { - String worldName = player.getLevel().getFolderName(); - String levelName = Main.getInstance().getWorldName().getString(worldName); - String unknownWorld = Main.getInstance().getLanguage().getString("Unknown_World").replace("{0}", worldName); - if (levelName == "") { - levelName = unknownWorld; - } - return levelName; - } - - //获取玩家的操作方式 - public static String getDeviceControls(int ctrl) { - String keyboard = Main.getInstance().getConfigInPlayer().getString("Device.Controls.Keyboard"); - String touch = Main.getInstance().getConfigInPlayer().getString("Device.Controls.Touch"); - String pad = Main.getInstance().getConfigInPlayer().getString("Device.Controls.pad"); - String motionController = Main.getInstance().getConfigInPlayer().getString("Device.Controls.motion_controller"); - String unknownCtrl = Main.getInstance().getLanguage().getString("Unknown_Device_controls"); - switch (ctrl) { - case 1: return keyboard; - case 2: return touch; - case 3: return pad; - case 4: return motionController; - default: return unknownCtrl; - } - } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java index bf48a91..8ca25f0 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java @@ -2,6 +2,7 @@ import cn.nukkit.Player; import tip.utils.variables.BaseVariable; +import cn.stevei5mc.NewTipsVariables.utils.GetConfigInfo; public class tipsPlayer extends BaseVariable { public tipsPlayer(Player player) { @@ -21,5 +22,14 @@ public void playerVar() { addStrReplaceString("{Player-Yaw}",String.valueOf(yaw)); int pitch = (int) player.getPitch(); addStrReplaceString("{Player-Pitch}",String.valueOf(pitch)); + int headYaw = (int) player.getHeadYaw(); + addStrReplaceString("{Player-HeadYaw}",String.valueOf(headYaw)); + addStrReplaceString("{Player-World}", GetConfigInfo.getPlayerWorld(player)); + addStrReplaceString("{Player-Ping}", GetConfigInfo.getPlayerPing(player)); + addStrReplaceString("{Player-Health}", GetConfigInfo.getPlayerHealth(player)); + addStrReplaceString("{Player-Food}", GetConfigInfo.getPlayerFood(player)); + addStrReplaceString("{Player-Ui}", GetConfigInfo.getPlayerUi(player.getLoginChainData().getUIProfile())); + addStrReplaceString("{Player-Controls}",GetConfigInfo.getDeviceControls(player.getLoginChainData().getCurrentInputMode())); + addStrReplaceString("{Device-Os}", GetConfigInfo.getDeviceOS(player.getLoginChainData().getDeviceOS())); } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java index 1ca1937..caafe19 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java @@ -4,6 +4,7 @@ import cn.nukkit.Server; import tip.utils.variables.BaseVariable; import cn.nukkit.level.Level; +import cn.stevei5mc.NewTipsVariables.utils.GetConfigInfo; public class tipsServer extends BaseVariable { public tipsServer(Player player) { @@ -23,5 +24,6 @@ public void serverVar() { for (Level level : Server.getInstance().getLevels().values()) { addStrReplaceString("{WorldOnline@"+ level.getFolderName() +"}", String.valueOf(level.getPlayers().size())); } + addStrReplaceString("{Server-Tps}", GetConfigInfo.getServerTps(player)); } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServerConfig.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServerConfig.java deleted file mode 100644 index 521a26c..0000000 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServerConfig.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.stevei5mc.NewTipsVariables.variables; - -import cn.nukkit.Player; -import cn.nukkit.Server; -import tip.utils.variables.BaseVariable; -import cn.stevei5mc.NewTipsVariables.Main; - -public class tipsServerConfig extends BaseVariable { - public tipsServerConfig(Player player) { - super(player); - } - - public void strReplace() { - serverVarConfig(); - } - - public void serverVarConfig() { - addStrReplaceString("{Server-Tps}", this.getServerTps(player)); - } - - public static String getServerTps(Player player) { - String serverTpslowColor = Main.getInstance().getConfigInServer().getString("TPS.low_color");//low值 - int serverTpsMediumValue = Main.getInstance().getConfigInServer().getInt("TPS.medium_value");//medium值 - String serverTpsMediumColor = Main.getInstance().getConfigInServer().getString("TPS.medium_color"); - int serverTpsHgihValue = Main.getInstance().getConfigInServer().getInt("TPS.high_value");//hgih值 - String serverTpsHgihColor = Main.getInstance().getConfigInServer().getString("TPS.high_color"); - String serverTps; - float tpsValue = Server.getInstance().getTicksPerSecond(); - //low=0 - if (tpsValue >= serverTpsHgihValue) { - serverTps = serverTpsHgihColor + tpsValue; - }else if (tpsValue >= serverTpsMediumValue) { - serverTps = serverTpsMediumColor + tpsValue; - }else { - serverTps = serverTpslowColor + tpsValue; - } - return serverTps; - } -} \ No newline at end of file From c32cd363f320993f38e413cc7aadd1b2ed7af51a Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Sat, 13 Apr 2024 13:07:45 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E8=A1=A5=E5=85=A8=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 5 +++-- .github/workflows/pr-check.yml | 2 +- docs/player-variables.md | 3 ++- src/main/resources/base-variables.txt | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitattributes b/.gitattributes index cc892c2..846bbd5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ *.java text eol=lf -*.yml text eol=crlf -*.txt text eol=crlf \ No newline at end of file +src/*.yml text eol=crlf +src/*.txt text eol=crlf +.github/*.yml text eol=lf \ No newline at end of file diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 093145c..63fd128 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -23,5 +23,5 @@ jobs: - name: 收集构建文件 uses: actions/upload-artifact@v1 with: - name: ${{ steps.get_info.outputs.repository_name }}-PR_${{ github.event.pull_request.number }}-Build-${{ github.run_number}} + name: ${{ steps.get_info.outputs.repository_name }}-PR_${{ github.event.pull_request.number }}-Build_${{ github.run_number}} path: staging \ No newline at end of file diff --git a/docs/player-variables.md b/docs/player-variables.md index 1d74eec..80df540 100644 --- a/docs/player-variables.md +++ b/docs/player-variables.md @@ -22,4 +22,5 @@ |{Player-World}|获取玩家所在的世界|**需在world_name.yml配置**| |{Player-Controls}|获取玩家设备的操作方式|| |{Player-Yaw}|获取玩家的Yaw值|| -|{Player-Pitch}|获取玩家的Pitch值|| \ No newline at end of file +|{Player-Pitch}|获取玩家的Pitch值|| +|{Player-HeadYaw}|获取玩家的HeadYaw值|| \ No newline at end of file diff --git a/src/main/resources/base-variables.txt b/src/main/resources/base-variables.txt index c997435..a6687e7 100644 --- a/src/main/resources/base-variables.txt +++ b/src/main/resources/base-variables.txt @@ -14,6 +14,7 @@ {Player-Controls} 获取玩家设备的操作方式 {Player-Yaw} 获取玩家的Yaw值 {Player-Pitch} 获取玩家的Pitch值 +{Player-HeadYaw} 获取玩家的HeadYaw值 服务器相关变量: {Server-Ip} 获取服务器IP {Server-Tps} 获取服务器当前TPS From c05a3f34fb299e454f5298ce3259145cd9ef783d Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Sat, 13 Apr 2024 23:39:13 +0800 Subject: [PATCH 13/14] =?UTF-8?q?dev=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=89=8D=E7=BD=AE=E6=8F=92=E4=BB=B6=E7=9A=84=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=9C=B0=E5=9D=80(=E6=8F=90=E7=A4=BA)=202=E3=80=81=E5=B0=86tip?= =?UTF-8?q?sServer.java=20tipsPlayer.java=20tipsText.java=E8=BF=99?= =?UTF-8?q?=E4=B8=AA=E4=B8=89=E4=B8=AA=E7=B1=BB=E7=9A=84=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=94=BE=E5=9C=A8BaseVariables.java=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 4 - README.md | 4 +- .../cn/stevei5mc/NewTipsVariables/Main.java | 11 +-- .../variables/BaseVariables.java | 76 +++++++++++++++++++ .../variables/tipsPlayer.java | 35 --------- .../variables/tipsServer.java | 29 ------- .../NewTipsVariables/variables/tipsText.java | 38 ---------- 7 files changed, 82 insertions(+), 115 deletions(-) delete mode 100644 .gitattributes create mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java delete mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java delete mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java delete mode 100644 src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsText.java diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 846bbd5..0000000 --- a/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -*.java text eol=lf -src/*.yml text eol=crlf -src/*.txt text eol=crlf -.github/*.yml text eol=lf \ No newline at end of file diff --git a/README.md b/README.md index 027d254..a2801a4 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ ### **[配置文件使用说明][i5]** ## **使用方法** 1. **将插件放进`plugins`文件夹** -2. **需确保安装`Tips`插件后重启服务器** -3. **在`/plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** +2. **需确保安装[Tips](https://motci.cn/job/Tips/)插件后重启服务器** +3. **在`./plugins/NewTipsVariables`文件夹中的`.txt`文件获取相关变量介绍,也可在本页面获取相关的变量介绍** [i1]: ./docs/SupportPluginsVariables.md "点击查看变量文档" [i2]: ./docs/text-variables.md "点击查看变量文档" diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java index 24a45dc..c0bbb80 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java @@ -3,14 +3,13 @@ import cn.nukkit.plugin.PluginBase; import cn.nukkit.plugin.PluginManager; import tip.utils.Api; -import cn.stevei5mc.NewTipsVariables.variables.tipsText; -import cn.stevei5mc.NewTipsVariables.variables.tipsServer; -import cn.stevei5mc.NewTipsVariables.variables.tipsPlayer; +import cn.stevei5mc.NewTipsVariables.variables.BaseVariables; import cn.stevei5mc.NewTipsVariables.variables.supportPlugins.loadSupportPlugins; import cn.nukkit.Player; import cn.nukkit.utils.Config; import cn.stevei5mc.NewTipsVariables.command.NewTipsVariablesCommand; import cn.stevei5mc.NewTipsVariables.utils.configUtils; +import cn.nukkit.Server; public class Main extends PluginBase { public static Player player; @@ -48,7 +47,7 @@ public void onEnable() { } else { //不存在作为卸载该插件 this.getLogger().warning("§c未检测到前置插件§aTips§c,请安装§aTips§c再试!!!"); - this.getLogger().warning("§b下载地址: §ehttps://ci.lanink.cn/job/Tips/"); + this.getLogger().warning("§b下载地址: §ehttps://motci.cn/job/Tips/"); this.onDisable(); } } @@ -91,9 +90,7 @@ public void deBugMode() { } public void tipsvariables() { - Api.registerVariables("tipsText", tipsText.class); - Api.registerVariables("tipsServer", tipsServer.class); - Api.registerVariables("tipsPlayer", tipsPlayer.class); + Api.registerVariables("BaseVariables", BaseVariables.class); loadSupportPlugins.loadSupportVariables(player); } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java new file mode 100644 index 0000000..4a74a92 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java @@ -0,0 +1,76 @@ +package cn.stevei5mc.NewTipsVariables.variables; + +import cn.nukkit.Player; +import tip.utils.variables.BaseVariable; +import cn.nukkit.Server; +import cn.nukkit.level.Level; +import cn.stevei5mc.NewTipsVariables.utils.GetConfigInfo; + +public class BaseVariables extends BaseVariable { + public BaseVariables(Player player) { + super(player); + } + + public void strReplace() { + text(); + player(); + server(); + } + + public void text() { + addStrReplaceString("{text-s0}", "§0"); + addStrReplaceString("{text-s1}", "§1"); + addStrReplaceString("{text-s2}", "§2"); + addStrReplaceString("{text-s3}", "§3"); + addStrReplaceString("{text-s4}", "§4"); + addStrReplaceString("{text-s5}", "§5"); + addStrReplaceString("{text-s6}", "§6"); + addStrReplaceString("{text-s7}", "§7"); + addStrReplaceString("{text-s8}", "§8"); + addStrReplaceString("{text-s9}", "§9"); + addStrReplaceString("{text-sa}", "§a"); + addStrReplaceString("{text-sb}", "§b"); + addStrReplaceString("{text-sc}", "§c"); + addStrReplaceString("{text-sd}", "§d"); + addStrReplaceString("{text-se}", "§e"); + addStrReplaceString("{text-sf}", "§f"); + addStrReplaceString("{text-bold}", "§l"); + addStrReplaceString("{text-italic}", "§o"); + addStrReplaceString("{text-reset}", "§r"); + addStrReplaceString("{text-mess}", "§k"); + addStrReplaceString("{text-next}", "\n"); + } + + public void player() { + addStrReplaceString("{Player-Xp}", String.valueOf(player.getExperienceLevel())); + addStrReplaceString("{Device-Model}", player.getLoginChainData().getDeviceModel()); + addStrReplaceString("{XUID}", String.valueOf(player.getLoginChainData().getXUID())); + addStrReplaceString("{Player-Lang}", player.getLoginChainData().getLanguageCode()); + addStrReplaceString("{Player-Uuid}", String.valueOf(player.getLoginChainData().getClientUUID())); + int yaw = (int) player.getYaw(); + addStrReplaceString("{Player-Yaw}",String.valueOf(yaw)); + int pitch = (int) player.getPitch(); + addStrReplaceString("{Player-Pitch}",String.valueOf(pitch)); + int headYaw = (int) player.getHeadYaw(); + addStrReplaceString("{Player-HeadYaw}",String.valueOf(headYaw)); + addStrReplaceString("{Player-World}", GetConfigInfo.getPlayerWorld(player)); + addStrReplaceString("{Player-Ping}", GetConfigInfo.getPlayerPing(player)); + addStrReplaceString("{Player-Health}", GetConfigInfo.getPlayerHealth(player)); + addStrReplaceString("{Player-Food}", GetConfigInfo.getPlayerFood(player)); + addStrReplaceString("{Player-Ui}", GetConfigInfo.getPlayerUi(player.getLoginChainData().getUIProfile())); + addStrReplaceString("{Player-Controls}",GetConfigInfo.getDeviceControls(player.getLoginChainData().getCurrentInputMode())); + addStrReplaceString("{Device-Os}", GetConfigInfo.getDeviceOS(player.getLoginChainData().getDeviceOS())); + } + + public void server() { + addStrReplaceString("{Server-Motd}", Server.getInstance().getMotd()); + addStrReplaceString("{Server-SubMotd}", Server.getInstance().getSubMotd()); + addStrReplaceString("{Server-Ip}", Server.getInstance().getIp()); + addStrReplaceString("{Server-Port}", String.valueOf(Server.getInstance().getPort())); + //参考了RsNpcVariable的写法 + for (Level level : Server.getInstance().getLevels().values()) { + addStrReplaceString("{WorldOnline@"+ level.getFolderName() +"}", String.valueOf(level.getPlayers().size())); + } + addStrReplaceString("{Server-Tps}", GetConfigInfo.getServerTps(player)); + } +} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java deleted file mode 100644 index 8ca25f0..0000000 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsPlayer.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.stevei5mc.NewTipsVariables.variables; - -import cn.nukkit.Player; -import tip.utils.variables.BaseVariable; -import cn.stevei5mc.NewTipsVariables.utils.GetConfigInfo; - -public class tipsPlayer extends BaseVariable { - public tipsPlayer(Player player) { - super(player); - } - public void strReplace() { - playerVar(); - } - - public void playerVar() { - addStrReplaceString("{Player-Xp}", String.valueOf(player.getExperienceLevel())); - addStrReplaceString("{Device-Model}", player.getLoginChainData().getDeviceModel()); - addStrReplaceString("{XUID}", String.valueOf(player.getLoginChainData().getXUID())); - addStrReplaceString("{Player-Lang}", player.getLoginChainData().getLanguageCode()); - addStrReplaceString("{Player-Uuid}", String.valueOf(player.getLoginChainData().getClientUUID())); - int yaw = (int) player.getYaw(); - addStrReplaceString("{Player-Yaw}",String.valueOf(yaw)); - int pitch = (int) player.getPitch(); - addStrReplaceString("{Player-Pitch}",String.valueOf(pitch)); - int headYaw = (int) player.getHeadYaw(); - addStrReplaceString("{Player-HeadYaw}",String.valueOf(headYaw)); - addStrReplaceString("{Player-World}", GetConfigInfo.getPlayerWorld(player)); - addStrReplaceString("{Player-Ping}", GetConfigInfo.getPlayerPing(player)); - addStrReplaceString("{Player-Health}", GetConfigInfo.getPlayerHealth(player)); - addStrReplaceString("{Player-Food}", GetConfigInfo.getPlayerFood(player)); - addStrReplaceString("{Player-Ui}", GetConfigInfo.getPlayerUi(player.getLoginChainData().getUIProfile())); - addStrReplaceString("{Player-Controls}",GetConfigInfo.getDeviceControls(player.getLoginChainData().getCurrentInputMode())); - addStrReplaceString("{Device-Os}", GetConfigInfo.getDeviceOS(player.getLoginChainData().getDeviceOS())); - } -} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java deleted file mode 100644 index caafe19..0000000 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsServer.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.stevei5mc.NewTipsVariables.variables; - -import cn.nukkit.Player; -import cn.nukkit.Server; -import tip.utils.variables.BaseVariable; -import cn.nukkit.level.Level; -import cn.stevei5mc.NewTipsVariables.utils.GetConfigInfo; - -public class tipsServer extends BaseVariable { - public tipsServer(Player player) { - super(player); - } - - public void strReplace() { - serverVar(); - } - - public void serverVar() { - addStrReplaceString("{Server-Motd}", Server.getInstance().getMotd()); - addStrReplaceString("{Server-SubMotd}", Server.getInstance().getSubMotd()); - addStrReplaceString("{Server-Ip}", Server.getInstance().getIp()); - addStrReplaceString("{Server-Port}", String.valueOf(Server.getInstance().getPort())); - //参考了RsNpcVariable的写法 - for (Level level : Server.getInstance().getLevels().values()) { - addStrReplaceString("{WorldOnline@"+ level.getFolderName() +"}", String.valueOf(level.getPlayers().size())); - } - addStrReplaceString("{Server-Tps}", GetConfigInfo.getServerTps(player)); - } -} \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsText.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsText.java deleted file mode 100644 index 4034e6e..0000000 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/tipsText.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.stevei5mc.NewTipsVariables.variables; - -import cn.nukkit.Player; -import tip.utils.variables.BaseVariable; - -public class tipsText extends BaseVariable { - public tipsText(Player player) { - super(player); - } - - public void strReplace() { - textVar(); - } - - public void textVar() { - addStrReplaceString("{text-s0}", "§0"); - addStrReplaceString("{text-s1}", "§1"); - addStrReplaceString("{text-s2}", "§2"); - addStrReplaceString("{text-s3}", "§3"); - addStrReplaceString("{text-s4}", "§4"); - addStrReplaceString("{text-s5}", "§5"); - addStrReplaceString("{text-s6}", "§6"); - addStrReplaceString("{text-s7}", "§7"); - addStrReplaceString("{text-s8}", "§8"); - addStrReplaceString("{text-s9}", "§9"); - addStrReplaceString("{text-sa}", "§a"); - addStrReplaceString("{text-sb}", "§b"); - addStrReplaceString("{text-sc}", "§c"); - addStrReplaceString("{text-sd}", "§d"); - addStrReplaceString("{text-se}", "§e"); - addStrReplaceString("{text-sf}", "§f"); - addStrReplaceString("{text-bold}", "§l"); - addStrReplaceString("{text-italic}", "§o"); - addStrReplaceString("{text-reset}", "§r"); - addStrReplaceString("{text-mess}", "§k"); - addStrReplaceString("{text-next}", "\n"); - } -} \ No newline at end of file From b72b8cacd0809a8280d862d1eb4aba5f0fad3eea Mon Sep 17 00:00:00 2001 From: stevei5mc <2978383306@qq.com> Date: Fri, 19 Apr 2024 22:10:18 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9A=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/config.yml | 5 +++-- src/main/resources/player.yml | 4 +++- src/main/resources/server.yml | 4 +++- src/main/resources/world_name.yml | 3 +++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 04e74d7..1125514 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,4 +1,6 @@ -#使用说明: https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#使用说明: +#https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#https://gitee.com/stevei5mc/NewTipsVariables #配置文件版本,勿动 version: 1 # 更新功能(这个功能展示没有用) @@ -9,7 +11,6 @@ updata: #自动更新(需开启检查更新但暂时没有用) auto: false in-config: - #检查更新(暂时没有用) check: false #自动更新(需开启检查更新但暂时没有用) auto: false diff --git a/src/main/resources/player.yml b/src/main/resources/player.yml index f290200..aa3d0ce 100644 --- a/src/main/resources/player.yml +++ b/src/main/resources/player.yml @@ -1,4 +1,6 @@ -#使用说明: https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#使用说明: +#https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#https://gitee.com/stevei5mc/NewTipsVariables #配置文件版本,勿动 version: 1 Device: diff --git a/src/main/resources/server.yml b/src/main/resources/server.yml index 596722f..b577e1b 100644 --- a/src/main/resources/server.yml +++ b/src/main/resources/server.yml @@ -1,4 +1,6 @@ -#使用说明: https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#使用说明: +#https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#https://gitee.com/stevei5mc/NewTipsVariables #配置文件版本,勿动 version: 1 TPS: diff --git a/src/main/resources/world_name.yml b/src/main/resources/world_name.yml index 5a3ec58..f03480b 100644 --- a/src/main/resources/world_name.yml +++ b/src/main/resources/world_name.yml @@ -1,2 +1,5 @@ +#使用说明: +#https://github.com/stevei5mc/NewTipsVariables/blob/main/README.md +#https://gitee.com/stevei5mc/NewTipsVariables testWorld1: 测试世界1 testWorld2: 测试世界2 \ No newline at end of file