[11:39:09 WARN]: top.missingbyriver.baselib.taboolib.common.inject.ClassVisitException: class top.missingbyriver.baselib.bukkit.util.LevelPAPI: VisitorGroup{priority=0, list=[AwakeFunction(lifeCycle=NONE), AwakeFunction(lifeCycle=CONST), AwakeFunction(lifeCycle=INIT), AwakeFunction(lifeCycle=LOAD), AwakeFunction(lifeCycle=ENABLE), AwakeFunction(lifeCycle=ACTIVE), AwakeFunction(lifeCycle=DISABLE), top.missingbyriver.baselib.taboolib.common.platform.command.SimpleCommandRegister@2ed6bc58, top.missingbyriver.baselib.taboolib.platform.compat.PlaceholderExpansion$PlaceholderRegister@4c0e5ba7]} (ACTIVE)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.inject.VisitorHandler.visitStart(VisitorHandler.java:121)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.inject.VisitorHandler.inject(VisitorHandler.java:110)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.inject.VisitorHandler.injectAll(VisitorHandler.java:75)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.inject.VisitorHandler.lambda$init$0(VisitorHandler.java:42)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.TabooLib$1.run(TabooLib.java:79)
[11:39:09 WARN]: at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.TabooLib.lambda$lifeCycle$0(TabooLib.java:56)
[11:39:09 WARN]: at java.base/java.util.Optional.ifPresent(Optional.java:178)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.TabooLib.lifeCycle(TabooLib.java:56)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.platform.BukkitPlugin.invokeActive(BukkitPlugin.java:158)
[11:39:09 WARN]: at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101)
[11:39:09 WARN]: at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483)
[11:39:09 WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1173)
[11:39:09 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316)
[11:39:09 WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
[11:39:09 WARN]: Caused by: java.lang.IllegalStateException: PlaceholderExpansion must have an instance
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.platform.compat.PlaceholderExpansion$PlaceholderRegister.visitStart(PlaceholderExpansion.kt:88)
[11:39:09 WARN]: at BaseLib-1.0.0.jar//top.missingbyriver.baselib.taboolib.common.inject.VisitorHandler.visitStart(VisitorHandler.java:119)
[11:39:09 WARN]: ... 14 more
确保PAPI已被加载
代码如下
import org.bukkit.OfflinePlayer
import taboolib.platform.compat.PlaceholderExpansion
import top.missingbyriver.baselib.level.LevelManager
class LevelPAPI:PlaceholderExpansion {
override val identifier: String
get() = "level"
override fun onPlaceholderRequest(player: OfflinePlayer?, args: String): String {
val split = args.split("|")
val value = split[0]
val profile = LevelManager.manager.getDataSync(if (split.size == 3) split[1] else player?.name?:"")
val level = split.getOrNull(2)?:return "N/A"
if (profile.isEmpty) return "N/A"
when(value){
"lv" -> {
val opt = profile.get().getLevel(level)
return if (opt.isPresent) {
opt.get().toString()
}else "N/A"
}
"exp" -> {
val opt = profile.get().getLevel(level)
return if (opt.isPresent) {
opt.get().toString()
}else "N/A"
}
else -> return "N/A"
}
}
}
确保PAPI已被加载 代码如下
运行log