Skip to content
wysohn edited this page Aug 14, 2023 · 7 revisions

서버에 새로운 명령어를 추가 합니다. (이미 있는 명령어와 겹치는경우 트리거로 생성된 명령어가 우선적으로 처리됩니다.)

생성

아래의 명령어를 입력하세요:

/trg cmd <새명령어> <스크립트>

예제:

/trg cmd hi #MESSAGE "Hi"

생성이 되었다면 /hi 라는 명령어를 게임내에서 실행 해서 확인 해 보세요.

주의) 최신버전의 마인크래프트 에서는 소문자만 사용 가능합니다. (한글은 다행히도 예외 입니다.) 이는 마인크래프트 자체의 (1.17부터) 변화로 인한 것 이며 트리거 리엑터의 문제가 아닙니다.

수정

그냥 생성시에 사용한 명령어를 그대로 치면 됩니다. (<스크립트> 부분은 없어도 상관없으나 있는경우 무시됩니다)

예를들어 방금 생성한 hi 트리거를 수정하려면:

/trg cmd hi

또한 CommandTrigger폴더 안에서 해당 스크립트를 찾아서 수정 하신 뒤 /trigger reload 명령어를 이용해도 됩니다. 삭제하려면 /trigger delete cmd hi 나 폴더 에서 삭제 후 리로드 하시면 됩니다.

탭 완성

3.1.0 버전부터 탭 완성 기능을 지원 합니다. 아무거나명령어.json 안에 보시면

{
	"sync": false,
	"aliases": ["this", "andthat"],
	"permissions": ["x.y.z", "y.z.z"],
	"tabs": [{
			"hint": "<set/add/remove>",
			"candidates": "set,add,remove"
		},
		{
			"hint": "<player name>",
			"candidates": "$playerlist"
		},
		{
			"hint": "<money/gold/credit>",
			"candidates": "money,gold,credit"
		},
		{
			"hint": "amount"
		}
	]
}

tabs 라는 항목이 새로 생긴걸 알 수 있습니다.

하지만 파일을 직접 수정하는건 추천드리지 않으며 추가할때는 가급적이면 /trg cmd <name> tab 명령어를 사용하세요.

예제) /trg cmd myCommand tab <a,b,c>:a,b,c <playername>:$playerlist this,it,that

: 의 왼쪽에 있는 것은 힌트 이며 : 의 오른쪽에 있는것들은 완성값 에 쓰일 값들 입니다.

힌트

힌트는 하나의 문자열 이며 플레이어가 방금 막 스페이스바를 넣었을때 나타나는 문구 입니다.

막 스페이스바를 넣었다는 뜻은 구문값을 넣기위해 스페이스바를 넣었지만 아직 값 자체는 넣지 않은 상태를 말합니다. 예를들어 아래와 같이 <a,b,c>가 짖은 회색으로 나오게 됩니다.

/myCommand <a,b,c>

그리고 이 힌트의 자리에 뭔가를 작성하면 그 즉시 완성값으로 변경 됩니다. 완성값에 대한 설명은 아래에 있습니다.

완성값

플레이어가 인자값의 위치에 뭔가를 입력하면 완성값 목록중 그 알파벳으로 시작하는 완성값 목록이 나열 됩니다.

완성값들을 나눌때 반점 , 이 사용된것을 확인 해 주세요.

만약 완성값에 this,it,that, 로 설정이 되어있고 t 를 유저가 입력 했다면

/myCommand a wysohn t

thisthat 탭완성 리스트에 나타나게 되고 유저는 키보드 화살표키와 탭키로 탭완성 기능을 사용 할 수 있게됩니다.

원본 커맨드 컨트롤 (버전 3.4.x)

만약 기존 플러그인 커맨드와 동일한 이름으로 커맨드 트리거를 생성하면, 해당 커맨드를 "오버라이딩" 하고 새로운 동작을 추가 하게 됩니다. 만약 덮어씌워진 원본 커맨드를 원래의 인자와 함께 실행하려면 다음을 사용하세요:

original.forward()

원본 커맨드로 전달하기 전에 인자를 수정하려면 다음을 사용하세요:

original.run("arg1", "arg2")

필요한 만큼 많은 인자를 전달할 수 있습니다. 위의 스크립트는 게임 내에서 /the_original_command arg1 arg2 커맨드와 동등합니다.

Placeholders

완성값의 경우 직접 값을 입력하지 않고 동적인 값을 사용 할 수도 있습니다. 이는 지원 예정이며 현재까지는 단 하나만 존재합니다.

Placeholder 설명
$playerlist 이름 그대로 현재 접속중인 플레이어 이름 목록을 가져옵니다.

내부 변수

command 트리거 내에서 사용 가능한 내부 변수 목록입니다. 또한 Third Party Internal Variables 에 있는 내부 변수 들 역시 사용 가능합니다.

변수 타입 설명
event PlayerCommandPreprocessEvent 해당 트리거를 작동시킨 이벤트 입니다.
player Player 트리거를 작동시킨 플레이어
command String 명령어 이름 입니다.
args Array<String> 명령어 뒤의 인자값 입니다. args[0] 가 첫번째, args[1] 가 두번째, ...
argslength Number 인자값의 수 입니다. args.length 와 같습니다.
original Link

변수가 뭔지 잘 모른다면 변수

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