SigPlaceholder
Placeholder Hook module
HookManager.addPlaceholder를 대체하기 위한 모듈입니다.
Reason
HookManager는 테스트 코드 실행을 방해합니다.HookManager를 통해서는 동적인 placeholder를 등록할 수 없습니다. 예)sigshop_donation_statistic_(time)
Usage
SigPlaceholderApi.add()를 사용합니다. HookManager와 달리 JavaPlugin 인스턴스 제공이 필요합니다.
SigPlaceholderApi.add(SimplePlugin.getInstance(),
"test_placeholder",
player -> "test_value");Feature
PlaceholderFilter
이 SigPlaceholderProvider가 어떤 Placeholder 값을 나타낼 수 있는지 정의합니다. Predicate로 설정할 경우 로그를 위한 이름이 있어야 합니다.
SigOnlinePlaceholder
온라인 플레이어를 위한 Placeholder로, 오프라인인 플레이어에 대해 작동을 보증하지 않습니다.
filter: PlaceholderFilter 입니다.processor: 실제 값을 처리하는BiFunction입니다.canLoad: 입력 값으로부터 값을 처리할 수 있는 상태인지 나타낼 수 있는BiPredicate입니다.false일 경우defaultValue를 반환합니다.defaultValue:canLoad가false이거나, 예외가 발생했을 때 대신 전달할 기본 값입니다.logging: 예외 발생 시 로깅을 할 지 여부를 결정합니다.
SigOfflinePlaceholder
오프라인 플레이어를 위한 Placeholder로, 온라인 플레이어를 넣었을 때는 OfflinePlayer로 캐스팅 하여 작업을 실행합니다.
SigPlaceholderAdapter
함수형 인터페이스가 아니라 메서드를 활용하여 구현하고 싶은 경우 SigOnlinePlaceholderAdapter 또는 SigOfflinePlaceholderAdapter를 사용할 수 있습니다.
toPlaceholder() 를 호출하여 SigPlaceholderProvider 로 변환할 수 있습니다.
Caution
HookManager와 호환되지 않으며,SigPlaceholderApi를 사용할 경우 모든HookManager사용 코드를 변경해야 합니다.SimplePlugin#reload를 호출할 시HookManager와 비호환으로 인해 placeholder가 덮어쓰기 됩니다.OfflinePlayer와Player는 별도로 처리 될 수 있습니다. SigPlaceholderProvider를 참고하세요.
Last updated