Placeholders_kr
Placeholder는 서버 내의 변수를 참조하는 데 사용됩니다. 예를 들어, 원하는 경우
구문에서 트리거를 실행한 플레이어의 이름을 얻으려면 $playername
자리 표시자를 사용할 수 있습니다.
이전에는, $placeholder 를 두 개의 쌍따옴표 가운데, 즉 문자열 내부에 적으면 그냥 $placeholder라는 문자열로 인식했습니다.
그러나, 현재 Beta테스트중인 3.0.0 부터는 문자열 내부에 있는 플레이스 홀더가 플레이스 홀더로서 취급되며, 더이상 String으로서 취급되지 않습니다.
사용 규칙
- $로 시작해서 문자열 마지막(쌍따옴표) 와 만나거나, 띄어쓰기와 만나는 경우, 플레이스 홀더로 변환
-
"my name is $playername"
"hey $playername !"
- `"no way to escape, $playername"
-
- ${로 시작하여 }로 끝날 경우 플레이스 홀더로 변환
"hey ${playername}!"
- }가 없을 경우 오류 발생
주의!: 만약 $을 플레이스 홀더의 목적이 아닌 단지 하나의 달러 표시로서 사용하고 싶다면, 모두 이스케이프 시켜주어야 합니다. e.g. "Your currency: "+$money+" \$" (아시다시피 , '\' 는 이스케이프 문자입니다.
실습 해보기:
/trg run #MESSAGE "Hello " + $playername + "."
만약 내 닉네임이 MidnightSugar라면, 이것은 "Hello MidnightSugar."라고 하는 메세지를 반출할것입니다.
이것은 현재 트리거 리액터에서 사용할 수있는 플레이스 홀더의 전체 목록입니다. 자리 표시자가 여기에 표시되지 않은 경우, javadocs에서 직접 내부 메서드와 변수에 액세스 할 수 있습니다!
https://github.com/wysohn/TriggerReactor/wiki/Accessing-Methods
최신 버전의 트리거 리액터를 사용하고 있는지 확인하십시오. 그렇지 않으면 작동하지 않을 일부 Placeholder가 있습니다!
Placeholder | 반출 타입 | 참고 |
---|---|---|
$playername | 문자열 | 현재 플레이어 이름 |
$playeruuid | 문자열 | 현재 플레이어 UUID. 플레이어가 이름을 바꿔도 UUID는 유지됩니다. |
$ip | 문자열 | 현재 플레이어의 IP |
$gamemode | 문자열 | 반출내용 : SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR |
$health | 실수 | 현재 플레이어의 체력 |
$maxhealth | 실수 | 현재 플레이어의 최대 체력 |
$food | 실수 | 현재 플레이어의 배고픔 |
$air | 실수 | 현재 플레이어의 숨(물방울) |
$exp | 실수 | 현재 플레이어의 experience point(경험치) 바가 차오른 정도 (0.3은 30%) |
$explevel | 정수 | 현재 플레이어의 경험치 레벨 |
$isop | 불 대수(Boolean) | 플레이어가 오피인지의 여부 |
$isflying | 불 대수(Boolean) | 플레이어가 날 수 있는 상태인지의 여부 |
$issprinting | 불 대수(Boolean) | 플레이어가 달리고 있는지의 여부 |
$isburning | 불 대수(Boolean) | 플레이어가 불에 타고 있는지의 여부 |
$issneaking | 불 대수(Boolean) | 플레이어가 웅크리고 있는지의 여부 |
$haseffect:{문자열} | 불 대수(Boolean) |
IF $haseffect:"LUCK" Bukkit, Sponge
|
$emptyslot | 정수 | 첫번째로 빈 슬롯을 찾아내 슬롯번호를 숫자로 반환함. 모든 인벤이 꽉차있을 경우, -1이 반환됨. |
$emptyslots | 정수 | 빈 슬롯 개수를 반환 |
$iscooldown | 불 대수(Boolean) | #COOLDOWN Executor 의해 현재 플레이어가 쿨다운 중이면 true를 반환합니다. (TRG 3.5 부터 사용 가능) |
$cooldownuntil | 정수 | #COOLDOWN Executor에 의해 발생한 쿨다운이 끝날 때까지 남은 시간(밀리초). (TRG 3.5 부터 사용) |
$cooldownuntil:{unit} | 정수 | #COOLDOWN Executor에 의해 발생한 쿨다운이 끝날 때까지 남은 시간을 반환합니다. (TRG 3.5 부터 사용 가능) 사용 가능한 'unit': "milliseconds" , "seconds" , "minutes" , "hours" , "days" . 나머지는 버려집니다. |
Placeholder | 타입 | 참고 |
---|---|---|
$playerloc | 문자열 | 플레이어의 위치를 SimpleLocation 형태로 반환함. 예시 반출 내용) world@100,10,100
|
$playerlocexact | 문자열 | 플레이어의 위치를 정확하게 반환함. 예시 반출 내용) world@100.5,10.34,233.55
|
$x | 정수 | 플레이어의 위치에서 x좌표값을 반환. 소수점이 없음 |
$y | 정수 | 플레이어의 위치에서 y좌표값을 반환. 소수점이 없음 |
$z | 정수 | 플레이어의 위치에서 z좌표값을 반환. 소수점이 없음 |
$biome | 문자열 | 플레이어가 위치한 곳의 바이옴 이름을 반환. |
Placeholder | 타입 | 참고 |
---|---|---|
$time | 정수 | 현재 플레이어가 있는 월드의 시간을 반환함(틱단위, 하루는 24000틱) |
$worldname | 문자열 | 현재 플레이어가 있는 월드의 이름을 반환함 |
$blockname:{월드이름}:{x}:{y}:{z} | 문자열 | {월드이름}의 이름을 가진 월드의 {x}, {y}, {z} 위치에 있는 블럭의 타입 이름을 반환함 |
Placeholder | 타입 | Remark |
---|---|---|
$onlineplayers | 정수 | 현재 동시접속자의 수를 반환함 |
$tps | 실수 | 현재 tps(Tick Per Second) 를 반환함 0 ~ 20.0 사잇값 반환 |
Placeholder | 타입 | 참고 |
---|---|---|
$helditemname | 문자열 | 들고 있는 아이템의 타입 이름을 반환 예:("IRON_INGOT" ) |
$helditemdisplayname | 문자열 | 들고 있는 아이템의 표시된 이름을 반환 (있을 경우) |
$helditemid | 정수 | 들고 있는 아이템의 아이디를 반환 (상위 버전(1.13+) 에서는 @Deprecated 되었습니다.) |
$helditemlore:{정수} | 문자열 | 아이템의 {정수} 번째의 lore에 적힌 내용을 반환. index 기준IF $helditemlore:0 == "+100 damage"
|
$helditemhasenchant:{문자열} | 불 대수(Boolean) | {문자열}에 적힌 인첸트가 들고있는 아이템에 적용되어 있는지의 여부를 반환함 IF $helditemhasenchant:"LUCK"
|
$helditemhasenchant:{문자열}:{정수} | 불 대수(Boolean) | {문자열}에 적힌 인첸트의 {정수} 레벨의 인첸트가 들고있는 아이템에 적용되어 있는지의 여부를 반환함IF $helditemhasenchant:"LUCK":1
|
1 미만의 레벨을 가진 $helditemhasenchant는 무시됨
Placeholder | 타입 | 참고 |
---|---|---|
$group | String[] | 플레이어의 펄미션 그룹 목록을 문자열 배열로써 반환.Array 참고 |
$firstgroup | String | 플레이어의 펄미션 그룹을 반환. |
$haspermission:{문자열} | 불 대수(Boolean) | 플레이어가 {문자열}에 입력한 펄미션을 가지고 있는지의 여부를 반환함.IF $haspermission:"some.per.mission"
|
$money | 실수 | 현재 플레이어가 소유하고 있는 돈의 액수를 반환함.#MESSAGE "you have "+$money+" dollars!"
|
$prefix | 문자열 | 플레이어의 prefix를 반환함 |
$suffix | 문자열 | 플레이어의 suffix를 반환함 |
Placeholder | 타입 | 참고 |
---|---|---|
$mysql:{문자열} | *Depends | 제공된 키와 관련된 mysql에서 값을 가져와 반환함 |
*반환되는 값은 #MYSQL에서 Executor의 사용에 따라 달라질 수 있음.
- 고급 기술:
- TR에서 풀링된 것을 사용하더라도, MYSQL는 비동기(Async)로 설정된 트리거에서 사용하는것이 가장 정확함.
Placeholder | 타입 | 참고 |
---|---|---|
$random:{숫자} | 정수 | 0부터 {숫자}-1 까지 중에서 랜덤으로 정수를 반환함.#MESSAGE "0~5. 뭘까요?: "+$random:6
|
$random:{숫자A}:{숫자B} | 정수 | {숫자A}부터 {숫자B}까지 중에서 랜덤으로 정수를 반환함.#MESSAGE "1~7. 뭘까요?: "+$random:1:7
|
$currenttimeseconds | 정수 | 현재 시각을 1970.01.01 이후부터 초단위로 얼마나 흘렀는지 반환합니다. 예) 2018년 11월 2일 2시 30분 : 1541136600
|
$round:{실수}:{소숫점 아래 자리} | 실수 | {실수}에 적은 값을 {소숫점 아래 자리}까지 반올림하여 반환함. 예) $round:1.3449:2 = 1.35 |
$packlist:{값 형식}:{값}:{값}:.....:{값} | List | {값 형식}을 따르는 List를 생성하여 index 0부터 {값}을 차례대로 넣어 List 자체를 반환함. {값}에 아무것도 적지 않으면 빈 배열이 생성됨. 주의: 값 형식과 맞는 값을 입력해야 함 |
$isnumber:{문자열} | 불 대수(Boolean) | [ Coming in 3.0.0 ]해당 문자열이 Number로써 파싱될 수 있는지 여부, 즉 숫자로만 구성되어 있는지 반환. |
Placeholder | 타입 | 참고 |
---|---|---|
$helditem | ItemStack | 현재 플레이어가 들고있는 아이템. 아무것도 들고있지않다면 AIR 형 아이템이 반환됩니다. |
$id:{ItemStack} | Number | 아이템의 정수형 값을 가져옵니다 (@최신버전(1.13+) 에서는 마인크래프트 자체적인 시스템 변화로 지원되지 않습니다.) |
$cmdline:{from}:{to} | String | 명령어를 문자열로써 가져옵니다. (Command 트리거나 onCommand Custom 트리거에서만 사용 가능). |
$entityname | String | 현재 엔티티의 표시명을 가져옵니다. |
현재 지원하지 않는 기능으로 추가 예정중에 있는 플레이스 홀더 목록
Placeholder | 타입 |
---|---|
$server_name:{문자열} | 불 대수(Boolean) |
$server_motd:{문자열} | 불 대수(Boolean) |
$server_online_player:{문자열} | 불 대수(Boolean) |
$server_max_player:{문자열} | 불 대수(Boolean) |
Trigger Reactor는 PlaceholderAPI를 지원합니다. 다운로드는 여기서!: PlaceHolderAPI.
#MESSAGE
및#BROADCAST
실행자는 자동으로 PlaceholderAPI 를 구문 분석합니다. 단순히 일반 텍스트처럼 플레이스 홀더를 넣으면됩니다.
`#MESSAGE "안녕하세요, %playername%님!"`
다른 Executor의 경우 컴파일러에서 Placeholder를 분석하도록 해야합니다. 다음과 같이 할 수 있습니다.
#MESSAGE placeholder.parse(player, "Hi %playername%")
-
Placeholder는 문자열 안에 있음을 알 수 있습니다. TR의 Placeholder와 달리 Placeholderapi의 자리 표시자는 문자열로 작동합니다. 그러니 혼동하지 마십시오.
- TR 플레이스 홀더 :
#MESSAGE "Hi "+$playername
- PlaceholderAPI :
#MESSAGE "Hi %playername%"
- 왜 이러한 차이점이 다음 장에서 발생하는지 배우게 됩니다 : 변수(Variable)
- TR 플레이스 홀더 :
Placeholder가 작동하지 않으면 유효하지 않은 트리거 문맥(또는 구문)이 원인 일 수 있습니다. 이는 액세스하려는 이벤트에서 사용할 수 없는 정보를 참조하려고 할 때 발생합니다.
예를 들어, $playername
은 항상 트리거를 클릭해야(Click Trigger와는 조금 다릅니다) 작동합니다. 플레이어가 구문을 실행하려면 트리거를 클릭해야 하므로 이 이벤트에서 참조 할 수 있는 플레이어 정보를 항상 갖게됩니다. 그러나, PluginReloadEvent(플러그인이 리로드될때 발생하는 이벤트)에 후킹하는 커스텀 트리거를 사용한다면,$playername
은 실패 할 것입니다. 이 이벤트의 구문에는 플레이어 정보가 없으므로 빈 문자열이나 오류가 표시됩니다.
다른 플러그인 이벤트에 연결할 때 특히 고려해야합니다. 이벤트가 PlayerEvent를 상속받지 않으면$playername
과 같은 자리 표시자가 실패 할 가능성이 99.9%입니다.
Basic Syntax (한) (рус)
1. Getting Started (한) (рус)
S.L. In-game Editor (한) (рус)
List and usage of Triggers / 트리거 목록과 사용 방법:
- Click/Walk Trigger (한) (рус)
- Command Trigger (한) (рус)
- Area Trigger (한) (рус)
- Named Trigger (한) (рус)
- Custom Trigger (한) (рус)
- Inventory Trigger (한) (рус)
- Repeating Trigger (한) (рус)
- 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 조건
- Local Variables / 지역 변수
- Global Variables / 전역 변수
S.L. Understanding Exceptions (한) (рус)
- Using Methods / 메소드 사용법
- Special Data Types / 특수한 데이터 형식
- Reading Javadocs / Javadoc 읽기
- Handling Enum / Enum 데이터 처리
- Lambda Expresion / Lambda(람다) 식 사용법
- Creating an empty array / 빈 배열 만들기
- Storing data into array / 배열에 데이터값 저장하기
- Read data from array / 배열에서 데이터 읽기(불러오기)
- WHILE loop / WHILE 반복문
- FOR loop / FOR 반복문
- Iterating Collection / Collection 형식의 변수 순회법
- #BREAK executor / #BREAK 실행자
- #CONTINUE executor / #CONTINUE 실행자
- #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 예외처리 이해하기
16. Interface Casting (한) (рус)
module x.x does not "opens x.x" problem
- List of Custom Events