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์์ ์ ์ํ ํ์ผ๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
๋ฉ์์ง๊ฐ 1์ด๋ง๋ค ์ถ๋ ฅ๋๋ ๋ชจ์ต์ ๋๋ค.
์ทจ์ํ๊ธฐ
๋ฑ๋กํ Task๋ฅผ ๋์ด์ ํธ์ถ๋์ง ์๋๋ก ์ทจ์ํ ์ ์์ต๋๋ค.
class MyAbility : Ability<AbilityConcept>() {
override fun onEnable() {
val task = psychic.runTaskLater(MyAbilityTask(), 100L)
task.cancel()
}
}
Task๋ฅผ ๋ฑ๋กํ๋ ํจ์๋ TickTask
์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
TickTask.cancel()
ํจ์๋ฅผ ํธ์ถํ๋ฉด ํ์คํฌ๊ฐ ์ทจ์๋ฉ๋๋ค.
Tip
psychic ์ ๋ฑ๋ก๋ task ๋ ๋ฅ๋ ฅ์ด ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.