SigPlaceholderReplacer

PlaceholderReplacer는 Config의 String, List 작업을 유연하게 만들기 위한 모듈입니다.

SigPlaceholder와 다른 모듈입니다.

Usage

기본적인 사용 방법은 다음과 같습니다.

String format = "{playername}'s uuid is {param:test:a}";
SigPlaceholderReplacer placeholder = new SigPlaceholderReplacer()
        .add("playername", MapReplacer.of("Kyoee01")) // 단일 replacer
        .add("param", ParamReplacer.of(args -> func(args[0]).get(args[1])); // 매개변수가 있는 replacer

placeholder.edit(format) // 변환 완료된 문자열 List

이런 식으로 SigPlaceholderReplacer#add(String key, PlaceholderReplacer replacer)를 통해 PlaceholderReplacer를 등록해 주는 것으로 사용할 수 있습니다.

Feature

How to Expand

SigPlaceholderReplacer 는 확장성을 고려하여 구성되었습니다.

  • MapReplacer

  • ParamReplacer

위 클래스는 기본 Replacer입니다. Replacer를 확장하기 위해선 PlaceholderReplacer 를 implement 해야합니다.

아래는 MapReplacer의 코드입니다.

PlaceholderReplacer#edit() 함수를 override 하여 구현하면 됩니다.

다만 edit 함수의 실행에는 몇가지 특이사항이 있습니다.

  1. edit 함수는 키워드가 감지될 때 한번씩 실행됩니다. ({test} {test} = 2번 호출)

  2. edit 함수의 texts는 현재 검사중인 Index 까지만 가지고 있는 list 입니다.

  • Ex) 예를 들어, ["a", "{test}", "c"] 일 때 edit의 매개변수에 있는 texts["a", "{test}"] 까지만 가지고 있게 됩니다.

약간의 소소한 활용

Last updated