Kyoee01 a88429fff0b0408e9ed2c4af2b00b5e2
장르 | 서버 관리자 툴, 개발자 툴, 정보전달 |
---|---|
게임버전 | 모든버전 |
API | 버킷, 스피곳, 페이퍼 |
원산지 | 국산 |
개발자 | wysohn |
저작권 | GNU GENERAL PUBLIC LICENSE |
자료 출처 | https://github.com/TriggerReactor/TriggerReactor |
안녕하세요!
혹시 아직도 스크립트를 사용하고 계신가요?
이참에 한번 TriggerReactor 로 갈아타 보는 건 어떨까요?
뒤로 가기 버튼 누르지 말고. 최근 트리거의 엄청난 근황을 조금 알려드리고 싶어서 이렇게 글을 씁니다!
▬▬▬▬▬ 첫 번째 / 멀티스레딩을 사용한 최적화 ▬▬▬▬▬
기본적으로 Skript는 버킷의 메인 스레드에서 실행됩니다.
그 말은 즉, 코드가 복잡해 지면 복잡해 질 수록,
규모가 커지면 커질수록 서버 자체에 렉이 걸려, 유저 입장에서는 끊기는 서버를 경험하게 될 것입니다.
하지만 TriggerReactor의 이러한 멀티스레딩이 기본적으로 탑재 되어 있다면
기능 자체의 성능은 조금 무뎌질 지 몰라도, 유저가 끊기는 서버를 경험 할 일은 없을 겁니다.
▬▬▬▬▬▬▬▬ 두 번째 / 엄청난 호환성 ▬▬▬▬▬▬▬▬
Skript에서 만약 완전 처음 보는 플러그인과 연동을 하고자 한다면?
누군가 만들어 논 애드온이 없다면, 애드온을 만들지 않는 이상 호환이 안됩니다.
하지만 TriggerReactor의 베이스는 Java 이기 때문에, 그냥 살짝 플러그인을 열어볼 줄만 안다면.
또는 공식 API 설명서가 있다면, 연동은 식은 죽 먹기입니다.
이는 서버에서 사용할 수 있는 모든 라이브러리를 사용할 수 있다는 뜻 인데요.
당장 포켓몬 모드에 TriggerReactor 를 사용하고자 결정 했다면, 그냥 공식 API 설명서에 가서 조금만 뜯어보면 됩니다.
예를 들어. 아래의 포켓몬 API 에서 EXECUTED
를 가져 오고 싶다고 했을 때
https://reforged.gg/docs/1165/
import com.pixelmonmod.pixelmon.api.enums.BattleEndTaskResult
#MESSAGE BattleEndTaskResult.EXECUTED
이렇게 만 입력 한다면, 간편하게 가져올 수 있습니다.
▬▬▬▬▬▬▬▬ 세번째 / 참고할 자료가 많음 ▬▬▬▬▬▬▬▬
이게 무슨 소리지 싶으실 수도 있는데,
TriggerReactor는 Java를 Python 처럼 간편하게 만들었다는 장점이 있습니다.
그 말은 즉 Java의 예제라면 곧 TriggerReactor의 예제가 될 수 있다는 것 입니다.
예를 들어 보겠습니다. 아래는 비밀번호를 암호화 해주는 코드입니다.
import java.security.MessageDigest;
import java.lang.StringBuffer;
import java.lang.Integer;
String passward = "1234";
try {
//여기서는 "sha-256" 알고리즘을 사용함
MessageDigest sh = MessageDigest.getInstance("SHA-256");
sh.update(passward.getBytes("UTF-8"));
byte[] byteData = sh.digest();
StringBuffer buffer = StringBuffer();
for (int i= 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
String hashString = sb.toString();
} catch (Exception error) {
e.printStackTrace();
}
player.sendMessage(hashString);
이제 이 코드를 TriggerReactor로 바꿔보겠습니다.
import java.security.MessageDigest
import java.lang.StringBuffer
import java.lang.Integer
passward = "1234"
TRY
// 여기서는 "sha-256" 알고리즘을 사용함
sh = MessageDigest.getInstance("SHA-256")
sh.update(passward.getByte("UTF-8"))
byteData = sh.digest()
buffer = StringBuffer()
FOR i = 0:byteData.length
buffer.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1))
ENDFOR
hashString = sb.toString()
CATCH e
e.printStackTrace()
ENDTRY
player.sendMessage(hashString)
자 이렇게 보니까 비슷한 게 느껴지시나요?
오히려 좀 더 간단해진 것 같지 않나요?
▬▬▬▬▬▬▬▬ 네번째 / 생산성이 좋아졌음 ▬▬▬▬▬▬▬▬
사실 TriggerReactor가 나온 지는 좀 되었지만
지금 이렇게 글을 쓰는 이유가
TriggerReactor의 단점 중 하나였던,
함수가 없어 생산성이 어쩔 수 없이 조금 떨어졌던 문제가 해결 되었기 때문입니다.
Lambda 식이 출시하면서 변수에 Lambda를 담는 형태로 새로 생기게 되었습니다.
testFunc = LAMBDA a, b =>
a+b
ENDLAMBDA
다음과 같은 방식으로 함수도 직접 만들어 사용할 수 있어, 생산성이 높아졌다고 할 수 있습니다.
▬▬▬▬▬ 다섯번째 / 플러그인 개발로 넘어가기 편함 ▬▬▬▬▬
솔직하게 Java는 배울게 너무 많습니다.
플러그인 개발은 너무 어려울 것 같고, 그렇지만 개발은 하고 싶으신 분들이 Skript를 많이 사용하십니다.
하지만 Skript는 독자적인 언어 체계를 가지고 있어,
오히려 타 프로그래밍 언어로 넘어가기 힘들다는 단점이 있습니다.
TriggerReactor는 위에서도 설명 하였지지만, Python의 간견함을 가지면서
마인크래프트/Java 가 베이스인 스크립팅 플러그인입니다.
TriggerReactor를 완벽히 다룰 줄 안다면, 객체 지향 언어의 체계만 공부한다면
바로 플러그인 개발에 들어갈 수 있을 정도로 Java의 경량 버전입니다.
▬▬▬▬▬ 여섯번째 / 개발자의 대다수가 한국인임 ▬▬▬▬▬
TriggerReactor의 현재 활동이 많은 순으로 관리자 목록을 조금 보여드리겠습니다.
wysohn(한국인) - 소유자
Sayakie(한국인)
Cupelt(한국인) - 글쓴이
limulhw(한국인)
...
gerzytet(외국인)
외국인 개발자가 1명일 정도로 한국인이 많습니다.
위 개발자들이 직접 디스코드 서버에서 빠른 답변을 주기 때문에, 처음이라도 배우기 용이합니다.
하지만 너무 간단한 질문은 "위키를 확인 해 주세요." 라는 답변을 받을 수도 있으니, 위키 먼저 정독하고 오도록 합시다.
▬▬▬▬▬▬▬▬▬ 마치며 ▬▬▬▬▬▬▬▬▬
TriggerReactor에서 가깝게 있는 사람으로서, 트리거의 현 근황과
장점을 조금 알려드리고자 이렇게 글을 썻는데.
저도 코딩 자체를 TriggerReactor로 시작했을 정도로, 미래에 플러그인 개발이나, 개발자가 되고 싶다면
한번 거쳐 가기에는 충분한 멋진 플러그인이라고 생각합니다.
- 디스코드 링크 -
- TriggerReactor 사용해보기 -
https://github.com/TriggerReactor/TriggerReactor/releases
https://github.com/Lorenzo0111/JShader/releases
※ 두 개의 플러그인을 모두 다운 받아야 정상 작동합니다! ※
세찐찐
2023.08.21국산 플러그인 이었다니 하지만 스크립트는 제가 작성해줬던 시간이 많아 많이 고민이 되네요
Cupelt
2023.08.21아쉽긴하죠.... 근데 플러그인으로 넘어가실 계획이 있다면 저는 나쁘지 않다고 보는 바 입니다
세찐찐
2023.08.21저도 공부는 하고 있지만 새로운건 귀찮아서
Cupelt
2023.08.21ㅋㅋㅋㅋ 인정합니다
진하범
2023.08.21그냥 플긴을 만드는게... 좋을것 같네요!
Cupelt
2023.08.21근데 마냥 그렇다고 말 할 수는 없는게. 처음 할 때 객체지향을 이해하는게 힘들어서, 전반적인 코딩 지식이랑 객제지향이랑 같이 공부하면 머리 터져요...
세찐찐
2023.08.23뭔말인지는 모르겠지만 플긴 만들어 볼려다
멘탈 나가서 롤 돌리다 망한 기억이..
Cupelt
2023.08.23나중에 기회되면 강좌도 해볼게요!
xAQu
2023.08.24접근하기 쉬운순으로 나열하면 스크립트 > 트리거 > 플러그인
사용빈도순으로 나열하면 플러그인 > 스크립트 > 트리거
스크립트에서 플러그인으로 넘어가기 전 한번쯤 해볼만 한 시스템이긴 하네요