Task - noonmaru/psychics GitHub Wiki

개요

Psychics의 task는 지연 실행 혹은 주기 실행을 제공합니다.

클래스 제작하기

Runnable 인터페이스를 구현하세요

class MyAbilityTask : Runnable {
    override fun run() {
        Bukkit.broadcastMessage("태스크 호출")
    }
}

여기서는 태스크가 실행될 때 태스크 호출 이라는 메시지를 서버 전체에 보내겠습니다.

등록하기

제작한 Task를 주기적으로 호출 할 수 있도록 등록하겠습니다.

class MyAbility : Ability<AbilityConcept>() {
    override fun onEnable() {
        psychic.runTaskTimer(MyAbilityTask(), 0L, 20L) // 1초마다 호출
    }
}

1초마다 메시지가 출력되도록 등록했습니다.

테스트

다시 빌드하여 서버에 적용해봅시다.

psychic은 Event에서 제작한 파일로 사용하겠습니다.

images/Task_1.png

메시지가 1초마다 출력되는 모습입니다.

취소하기

등록한 Task를 더이상 호출되지 않도록 취소할 수 있습니다.

class MyAbility : Ability<AbilityConcept>() {
    override fun onEnable() {
        val task = psychic.runTaskLater(MyAbilityTask(), 100L)
        task.cancel()
    }
}

Task를 등록하는 함수는 TickTask 인스턴스를 반환합니다.

TickTask.cancel() 함수를 호출하면 태스크가 취소됩니다.

Tip

psychic 에 등록된 task 는 능력이 비활성화될 경우 자동으로 제거됩니다.