-
Notifications
You must be signed in to change notification settings - Fork 20
Custom properties
Noonmaru edited this page Oct 7, 2020
·
2 revisions
자신만의 속성을 AbilityConcept 클래스에 추가할 수 있습니다.
Tap의 ConfigSupport를 통해 제공합니다.
@Name("myability")
class MyAbilityConcept : AbilityConcept() {
@Config
var myValue: Int = 10
}
class MyAbility : Ability<MyAbilityConcept>() {
override fun onEnable() {
println("myValue = ${concept.myValue}")
}
}
자동으로 구성된 psychic의 yaml파일
abilities:
myability:
ability: .myability
common:
display-name: myability
type: PASSIVE
interruptible: false
supply-items: []
description: []
myability:
my-value: 10
display-name: myfirstability
health-bonus: 0.0
health-regen-per-tick: 0.0
mana: 0.0
mana-regen-per-tick: 0.0
mana-color: BLUE
description: []
Default properties의 예제와 마찬가지로 AbilityConcept
를 상속하는 클래스를 만들었습니다.
그래고 내부에 @Config 어노테이션이 있는 필드 속성을 추가하였습니다.
@Config
어노테이션이 붙은 필드만 yml파일에 속성을 표시하게 됩니다.
속성의 타입은 Primitive 혹은 Bukkit의 ConfigurationSerializable
을 구현하고 ConfigurationSerialization
에 등록된 클래스여야만 합니다.
속성의 이름을 참고하여 camel cased 이름을 -를 사용한 이름으로 바꿉니다 (예: myNumberValue -> my-number-value)
맨 위 @Name("myability")
어노테이션은 섹션의 이름을 의미합니다.
정의되지 않을경우 클래스의 이름으로 섹션을 구성하게됩니다.