实现1.7常出现的玩家0血问题
//玩家登录就执行FixZeroHealth函数,如果0血就进行修复操作
function login(event) {
var player = Java.type("org.bukkit.Bukkit").getServer().getPlayer(event.getPlayer().getName());
FixZeroHealth(player);
}
//修复0血
function FixZeroHealth(player) {
var Class = Java.type("java.lang.Class");
var Bukkit = Java.type("org.bukkit.Bukkit");
var ClassLoader = Bukkit.getPluginManager().getPlugin("PowerNBT").getClass().getClassLoader();
var FindClass = ClassLoader.getClass().getDeclaredMethod("findClass", Class.forName("java.lang.String"));
FindClass.setAccessible(true);
var NBTManager = FindClass.invoke(ClassLoader, "me.dpohvar.powernbt.api.NBTManager");
var nbtm = NBTManager.getDeclaredMethod("getInstance").invoke(null);
if (nbtm.read(player).getFloat("AbsorptionAmount") != 0.0) {
var nbtcompound = nbt.read(player);
nbtcompound.remove("AbsorptionAmount");
nbtcompound.put("AbsorptionAmount", 0.0);
nbtcompound.put("HealF", 20.0);
nbtm.write(player, nbtcompound);
print("[玲珑]修复了玩家" + player.getName() + "的零血bug");
}
}
最后更新于