Custom properties - noonmaru/psychics GitHub Wiki

개요

자신만의 속성을 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") 어노테이션은 섹션의 이름을 의미합니다.

정의되지 않을경우 클래스의 이름으로 섹션을 구성하게됩니다.

⚠️ **GitHub.com Fallback** ⚠️