MyExpLevelPAPI.java v1.0
注册PAPI变量%myexp_level%,展示当前玩家经验等级
命令列表
- /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
}
}
}