Closed ghost closed 1 year ago
코드도 같이 올려주세요
코드도 같이 올려주세요
kommand-plugin 코드 동일하고 RootNode에 프로퍼티 넣으면 발생합니다.
완전히 새 프로젝트에 새 kommand입니다. 버전은 모두 업데이트 했습니다.
JavaPlugin:
kommand {
register("shadowdeath") {
usage = "shadowdeath"
description = "Shadowdeath Plugin Command"
// 이 위에 두줄 없으면 돌아가요
requires { isOp }
register(this) // From ShadowdeathKommand.kt
}
}
ShadowdeathKommand:
object ShadowdeathKommand {
fun register(builder: RootNode) {
builder.apply {
executes {
sender.sendMessage(text("Hello World!"))
}
}
}
}
Stacktrace:
[20:40:26 INFO]: [Shadowdeath] Enabling Shadowdeath v0.0.1
[20:40:26 ERROR]: Error occurred while enabling Shadowdeath v0.0.1 (Is it up to date?)
java.lang.IllegalArgumentException: Cannot redefine usage after initialization
at io.github.monun.kommand.internal.AbstractKommandNode$kommandField$1.beforeChange(AbstractKommandNode.kt:37) ~[?:?]
at kotlin.properties.ObservableProperty.setValue(ObservableProperty.kt:37) ~[?:?]
at io.github.monun.kommand.internal.RootNodeImpl.setUsage(RootNodeImpl.kt:26) ~[?:?]
at io.github.lambdynma.shadowdeath.plugin.ShadowdeathPlugin$onEnable$1$1.invoke(ShadowdeathPlugin.kt:44) ~[Shadowdeath.jar:?]
at io.github.lambdynma.shadowdeath.plugin.ShadowdeathPlugin$onEnable$1$1.invoke(ShadowdeathPlugin.kt:42) ~[Shadowdeath.jar:?]
at io.github.monun.kommand.PluginKommand$register$1.invoke(Kommand.kt:48) ~[?:?]
at io.github.monun.kommand.PluginKommand$register$1.invoke(Kommand.kt:48) ~[?:?]
at io.github.monun.kommand.internal.AbstractKommand.register(AbstractKommand.kt:46) ~[?:?]
at io.github.monun.kommand.Kommand$Companion.register(Kommand.kt) ~[?:?]
at io.github.monun.kommand.PluginKommand.register(Kommand.kt:48) ~[?:?]
at io.github.lambdynma.shadowdeath.plugin.ShadowdeathPlugin$onEnable$1.invoke(ShadowdeathPlugin.kt:42) ~[Shadowdeath.jar:?]
at io.github.lambdynma.shadowdeath.plugin.ShadowdeathPlugin$onEnable$1.invoke(ShadowdeathPlugin.kt:41) ~[Shadowdeath.jar:?]
at io.github.monun.kommand.KommandKt.kommand(Kommand.kt:59) ~[?:?]
at io.github.lambdynma.shadowdeath.plugin.ShadowdeathPlugin.onEnable(ShadowdeathPlugin.kt:41) ~[Shadowdeath.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.1.jar:git-Paper-43]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.1.jar:git-Paper-43]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugin(CraftServer.java:636) ~[paper-1.20.1.jar:git-Paper-43]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugins(CraftServer.java:547) ~[paper-1.20.1.jar:git-Paper-43]
at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.20.1.jar:git-Paper-43]
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:435) ~[paper-1.20.1.jar:git-Paper-43]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.1.jar:git-Paper-43]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.20.1.jar:git-Paper-43]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.1.jar:git-Paper-43]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
코드 순서를 "Property들을 먼저 설정 한 이후 Initialize 하기"로 바꾸니 lateinit property인 kommand가 Initialize가 되지 않았다면서 뻗더라고요... 제가 해결 할 수 있는 문제는 아닌 것 같아서 이슈 남깁니다.
kommand-core를 직접 수정해서 해결하려고 했다가 실패했다는 의미입니다. 별 다른 의미는 없어요.
알아서 수정하실것 같다 생각해서 일단 닫습니다 어차피 계정 바꿔야해서
RootNode
에서description
,fallbackPrefix
,usage
항목들을 수정하려고 하면 Kommand가 이미 Initialize된 상태이기에 다음과 같은 오류가 발생합니다:코드 순서를 "Property들을 먼저 설정 한 이후 Initialize 하기"로 바꾸니 lateinit property인
kommand
가 Initialize가 되지 않았다면서 뻗더라고요... 제가 해결 할 수 있는 문제는 아닌 것 같아서 이슈 남깁니다.마이너한 버그니까 원하실때 수정하시면 될듯...? 몰?루