Skip to content

Third Party Plugin Access From Trigger_kr

Pro_Snape edited this page Jan 27, 2019 · 2 revisions

플러그인 존재여부 확인 및 사용

제 3자 플러그인 불러오기

만약 불러오고 싶은 플러그인의 정확한 이름을 알고 있다면, 다음 구문을 트리거에 추가함으로써 불러올 수 있습니다.

변수이름 = plugin("<플러그인 이름>")

변수이름은 본인이 원하는 어느것이던지 설정 가능합니다. Variables지역변수 를 참고해주세요.

예:

ess = plugin("Essentials")

위 구문은 Essentials 플러그인 자체를 ess라는 지역변수에 저장합니다.

적합성 확인하기

불러온 플러그인을 사용하려면, 먼저 적합성을 체크해주셔야 합니다. 여기서 적합성 확인이란, plugin() 내부에 있는 플러그인 이름을 가진 플러그인이 실제로 존재하며, 트리거로 불러와 졌는지를 체크하는 과정을 말합니다.

IF 변수이름
    <플러그인으로 실행할 구문들 작성>
ENDIF

위에서 볼 수 있듯이 IF 변수이름 이 바로 적합성 검사입니다. 즉 plugin() 으로 플러그인을 불러오려고 시도하면, 적합성 검사를 하여 검사 결과를 해당 변수에 담습니다. 따라서 변수 그 자체로써는 <boolean> 형식의 값을 가지게 되며 적합성 검사에서 통과하면 true를 가지고, 통과하지 못하면 false를 가지게 됩니다.

예:

IF ess
    <에센셜로 실행할 구문들 작성>
ENDIF

위 구문에서는 에센셜에 대해서 적합성 검사를 하였습니다.

플러그인 사용하기

플러그인 API에서 지원하는 공개적 메소드(Public Method)는 자바와 같이 .(점) 으로 사용할 수 있습니다.

예:

IF ess
    {$playername+".geoloc"} = ess.getUser($playername).getGeoLocation()
ENDIF

위 구문은 {<플레이어 이름>.getloc} 에 유저의 실제 접속 위치(대한민국 서울, 일본 도쿄 등)를 저장합니다.

만약 플러그인이 API에서 Static Method를 사용할 경우

TR 2.1.0 버전에서 추가된 IMPORT 구문 으로 특정 클래스를 불러올 수 있습니다.

Static Method를 사용한다고 할지라도, IF 조건문을 통한 적합성 검사는 여전히 필요합니다.

IF ess
    IMPORT com.earth2me.essentials.클래스.경로.입력.하기
    <클래스 이름>.<클래스에 종속된 메소드>()
ENDIF

만약 사용하려는 메소드에 인자가 필요할 경우,

IF ess
    IMPORT com.earth2me.essentials.클래스.경로.입력.하기
    <클래스 이름>.<클래스에 종속된 메소드>(<인자>, <인자>, <인자>, <인자>, ....)
ENDIF

Plugin Description / 목차

1. Getting Started () (рус)

S.L. In-game Editor () (рус)

2. Triggers () (рус)

List and usage of Triggers / 트리거 목록과 사용 방법:

  • List of Executors / 실행자(Executor) 목록

4. Placeholders () (рус)

  • Using PlaceholderAPI / PlaceholderAPI 사용법
  • List of Placeholders / 플레이스 홀더(Placeholder) 목록

5. Conditions () (рус)

  • Creating Conditions / 조건식 만들기
    • Boolean Expressions / 부울 (Boolean) 표현 방법
  • Logical Operators / 연산자 사용법
  • IF statement / IF 조건문
  • Null Checking / Null 검사법
  • Switch Case / Switch Case 조건

6. Variables () (рус)

  • Local Variables / 지역 변수
  • Global Variables / 전역 변수

Advanced

Timings () (рус)

7. Methods () (рус)

  • Using Methods / 메소드 사용법
  • Special Data Types / 특수한 데이터 형식
  • Reading Javadocs / Javadoc 읽기
  • Handling Enum / Enum 데이터 처리
  • Lambda Expresion / Lambda(람다) 식 사용법

8. Array () (рус)

  • Creating an empty array / 빈 배열 만들기
  • Storing data into array / 배열에 데이터값 저장하기
  • Read data from array / 배열에서 데이터 읽기(불러오기)

9. Loops () (рус)

  • WHILE loop / WHILE 반복문
  • FOR loop / FOR 반복문
    • Iterating Collection / Collection 형식의 변수 순회법
    • #BREAK executor / #BREAK 실행자
    • #CONTINUE executor / #CONTINUE 실행자

10. Sync Mode () (рус)

  • #CANCELEVENT executor / #CANCELEVENT 실행자
  • Setting Sync/Async Mode / 동기, 비동기 모드 전환
    • Custom Trigger
    • Area Trigger

11. Custom Executors () (рус)

12. Plugin Access () (рус)

  • Check And Use / 플러그인 존재여부 확인
    • Get Third Party Plugin / 제 3자 플러그인 불러오기
    • Check Eligibility / 호환성 확인하기
    • Use the Plugin / 플러그인 사용하기

13. IMPORT Statement () (рус)

  • Creating new instance / 새 인스턴스 생성하기
  • Accessing static method / 종속 메소드 불러오기
  • Accessing static field / 종속 Enum 불러오기

14. IS Statement () (рус)

  • Understanding / 이해하기
    • Understanding Instance / 인스턴스 이해하기
    • Understanding Superclass / 부모클래스 이해하기
    • Understanding Subclass / 자식클래스 이해하기
  • Using IS Statement / IS조건연산자 사용하기

15. TRY-CATCH Statement () (рус)

  • Understanding TRY-CATCH Exception Handling / TRY-CATCH 예외처리 이해하기

Misc

16. Interface Casting () (рус)

module x.x does not "opens x.x" problem

  • List of Custom Events

Examples

Trigger

Trigger Example () (рус)

More Examples: Bukkit, Sponge

Case Specific

Clone this wiki locally