오늘 트리거를 만들면서 NamedTrigger를 사용하게 되어서 한번 강좌를 작성해봅니다.
NamedTrigger
지명 트리거라고도 합니다. 일반적인 트리거와 다르게 직접 파일을 생성해서만 만들 수 있으며 혼자서는 작동하지 않고 다른 트리거를 거쳐야 사용 가능합니다.
예를들어
NamedTrigger/message.trg
// msg
#MESSAGE msg
라는 지명 트리거를 만들었다면 다른 트리거 (지명트리거 내에서도 지명트리거를 사용 할 수 있습니다!) 에서 이런식으로 사용합니다.
CommandTrigger/mycmd.trg
msg = "hello TRG!"
#CALL "message"
쉽죠?
응용
NamedTrigger를 활용하면 중복되는 코드를 많이 줄일 수 있습니다.
예를들어 에센셜에서 쿨다운을 가져오는 코드를 만들어봅시다.
NamedTrigger/essentials/cooldown.trg
// player
// kitName
// kit_cooldown
ess_plugin = plugin("Essentials")
IF ess_plugin
IMPORT com.earth2me.essentials.Kit
IMPORT java.lang.System
user = ess_plugin.getUser(player)
kit = Kit(kitName, ess_plugin);
kit_cooldown = kit.getNextUse(user) - System.currentTimeMillis()
kit_cooldown = kit_cooldown / 1000
ENDIF
아마 눈치 채셨을지 모르겠지만 위의 player
와 kitName
은 이 지명트리거가 작동하려면 있어야 하는 변수를 표시 해 둔 것 입니다. 이렇게 미리 해두시면 나중에 헷갈리지 않겠죠?
아래의 kit_cooldown
은 말그대로 쿨다운이구요
그리고 또 눈치채실것은 이번에는 NamedTrigger 폴더가 아닌 NamedTrigger 아래의 essentials 폴더에 코드를 만들었습니다.
이제 이것을 CommandTrigger에서 사용 해 봅시다.
CommandTrigger/mykitcd.trg
// player 는 이미 커맨드 트리거에 존재하므로 딱히 넣을 필요 없겠죠?
kitName = "tools"
#CALL "essentials:cooldown"
#MESSAGE "쿨다운이: "+kit_cooldown+" 남았습니다."
보시다시피 저 구문을 매번 사용하지 않아도 이제 어느 트리거 어디서나 간편하게 구문 사용이 가능합니다!
오오 이런 식으로 사용할 수 있었군요!