MyExpLevelPAPI

MyExpLevelPAPI.java v1.0
注册PAPI变量%myexp_level%,展示当前玩家经验等级
作者: Scriptirc

命令列表

  • /si compiler MyExpLevelPAPI.java编译脚本
  • /si load MyExpLevelPAPI加载插件
package com.example.myexp;

import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.entity.Player;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;

/**
 * @pluginName MyExpLevelPAPI
 * @author Scriptirc
 * @version 1.0
 * @description 注册PAPI变量%myexp_level%,展示当前玩家经验等级
 * [command]/si compiler MyExpLevelPAPI.java|编译脚本[/command]
 * [command]/si load MyExpLevelPAPI|加载插件[/command]
 */
public class MyExpLevelPAPI extends JavaPlugin {
    @Override
    public void onEnable() {
        // 插件启动时注册自定义PAPI变量扩展
        new ExpLevelExpansion(this).register();
        getLogger().info("MyExpLevelPAPI 启动成功,已注册变量 %myexp_level%!");
    }

    @Override
    public void onDisable() {
        getLogger().info("MyExpLevelPAPI 已卸载。");
    }

    /**
     * 内部类:自定义 PlaceholderAPI 扩展
     */
    public static class ExpLevelExpansion extends PlaceholderExpansion {
        private final JavaPlugin plugin;

        public ExpLevelExpansion(JavaPlugin plugin) {
            this.plugin = plugin;
        }

        @Override
        public String getIdentifier() {
            // 变量前缀,最终变量为 %myexp_level%
            return "myexp";
        }

        @Override
        public String getAuthor() {
            return "Scriptirc";
        }

        @Override
        public String getVersion() {
            return "1.0";
        }

        @Override
        public boolean persist() {
            // 插件重载时保持注册
            return true;
        }

        @Override
        public boolean canRegister() {
            return true;
        }

        @Override
        public String onPlaceholderRequest(Player player, String params) {
            // 只处理 myexp_level 变量
            if (player == null) {
                return ""; // 无玩家上下文时返回空
            }
            if (params.equalsIgnoreCase("level")) {
                // 返回玩家经验等级
                return String.valueOf(player.getLevel());
            }
            return null; // 未知变量返回null
        }
    }
}

上一篇: TeleportManager下一篇: Qiandao

举报内容

意见反馈