[TriggerReactor] 마인크래프트 트리거 리액터 오른쪽 클릭 시 아이템 사용 예제


IF event.getAction().name() == "RIGHT_CLICK_AIR"
	//#MESSAGE "허공에 오른쪽 클릭입니다. (사용)"
	IF event.getItem().getType().name() == "PLAYER_HEAD"
		//player.getInventory().remove(player.getItemInHand());
		player.getInventory().getItemInHand().setAmount(player.getInventory().getItemInHand().getAmount()-1);
		#MESSAGE "&6플레이어 머리를 사용하여 버프를 얻었습니다."
		#SOUND player.getLocation(), "ENTITY_PLAYER_BURP", 1.0, 1.0
		#ACTIONBAR color("&4&lYou are a terrible Person.")
		#POTION "ABSORPTION" 1800 1
		#POTION "REGENERATION" 120 2
		#POTION "SPEED" 100 1
	ENDIF
ENDIF

동생이 마인크래프트 서버하는데.. 친구들이랑 PVP 배틀로얄을 만들었다는데 상대방을 죽이면 머리가 뜨고 그걸 오른쪽 클릭하면 사용 후 버프가 걸리는걸 만들어 달래서..

 

원래 마인크래프트 하면서 알던 VT(흔히 트리거라고 부르던)는 최신버전까지 개발이 계속되지 못하고 중단됬더군요.

 

지금 마인크래프트 스크립트 용으로 남아 있는건 Skript, TriggerReactor, CommandHelper 가 대표적인데 그 중 Trigger Reactor 이란게 VariableTrigger와 가장 닮아 있어서 선택을 하게 되었습니다.

 

한국인이 개발한걸로 아는데 일단 기본적으로 프로그래밍을 해야되고 당연히 자체 언어를 사용하기 때문에 (파이썬과 자바가 짬뽕? 된 스타일 입니다.) 이런 매니악한걸 일반 마인크래프트 유저가 도전할리가 없죠 -.-

 

Trigger Reactor에 대한 자료라곤 인터넷에 블로그 강좌랑 Trigger Reactor 공식 Wiki 밖에 없어서 정말 삽질아닌 개삽질 끝에 완성하였습니다. 특히 https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html

 

Material (Spigot-API 1.17.1-R0.1-SNAPSHOT API)

Returns an array containing the constants of this enum type, in the order they are declared.

hub.spigotmc.org

여기서 알려주는 정보들이 많이 도움이 됬어요

이게 없었으면 절대 못만들었을 거 같습니다..

 

평상시 C# 만해서 Java는 할 줄 모르고 마인크래프트 spigot의 자체 class를 끌어다 써오기, Trigger Reactor의 처음 보는 생소한 문법까지 헬파티 였습니다.. 

 

이외에 TR의 기능에 관련해선 IMPORT도 가능해서 Java 자체 Method나 다른 플러그인의 정보도 참조할 수 있고 비동기, 동기 구현까지 제대로 사용만 하면 거의 모든걸 할 수 있는 형태로 제작이 되어있어서 매우 만족스러웠습니다.

 

그리고 자료형이 동적 타입이라 별도의 자료형 없이도 알맞은 값들만 넣어주면 알아서 작동을 하더군요

특히 #MESSAGE "메세지" 같은 형태로 출력을 할때도 정수형 변수로 출력을 하면 별도의 문자열 변환 method 없이도 알아서 문자열 형태로 강제 형변환이 됩니다.

 

뭐.. 일단은 잘 됩니다 ㅋㅋㅋ 예전에 VT랑 Skript로 중형 서버를 직접 운영하던 때가 있었는데 옛날 생각도 나고 재미 있었네요 ㅎㅎ Java 공부의 필요성을 느껴서 이번 학기중엔 우선 Java랑 백준 알고리즘을 공부해야겠습니다..

 

CustomTrigger.zip
0.00MB

소스 코드를 사용하시고 싶은 분들은 압축을 풀어서 나오는 두 파일을 마인크래프트 버킷 > plugins > Trigger Reactor > CustomTrigger 에 넣어주시고 서버에서

/trg reload 를 누르면 작동합니다 ~

COMMENT WRITE