개인 자료란 (JE)

  서버 커뮤니티

Profile 바루스 대표칭호 없음

crston b3c8fb239ad8439095e4576e904d0371

Profile

커뮤니티 소통 잡담하기

spigot 에 다음 플러그인들 올릴까 하는데 평가좀요

2025.02.15 조회 수 189 추천 수 0

PlayerSizeManager - 플레이어의 크기를 조정하는 플러그인 1.20.6 이상 버전만 사용 가능


PlaceHolderAPI-fork - 1.21 에서 문제 없이 돌아가는 PAPI 플러그인


DamageDisplay - 0 번 부터 50번 까지 데미지 스킨을 선택할 수 있으며 Mythicmobs 의 Aura 기능을 사용하여 크리티컬 데미지를 나타낼 수 있음 아머스탠드 방식과 텍스트 디스플레이 방식 선택 가능 아머스탠드 사용할 수 있는 버전 부터 사용 가능 텍스트 디스플레이 옵션은 1.19.4 이후로만 가능


LagMaster - 서버에서 렉걸리는 원인을 추적 후 렉걸리는 부분을 극한의 바이트 처리 후 각 데이터들을 제네릭 처리 후 다른 쓰레드에 저장하여 서버의 렉을 극한으로 줄일 수 있음


저 중에서 위에 2 개만 무료로 풀고 나머진 유료로 생각 중인데 어떤 것 같음?




14개의 댓글

IRONBLOCK
2025.02.15

1-바닐라 기능을 굳이?? /attribute base set ㅅㄱ

2-PAPI 공식적으로 1.21 지원합니다

3-정확히 똑같은 이름과 기능으로 배포되는 플러그인을 본건 기분탓일까요?

4-바이트 처리, 제네릭 처리, 다른 쓰레드에 저장??????? 이게 뭐에요?

렉걸리는 원인을 추적-spark가 하는 일인데 자동화되면 좋긴 하겠군요

바이트 처리요? 바이트가 단위인데 처리가 붙을수있나

제가 아는 제네릭은 method(T type) 이런건데요

다른 쓰레드에 저장-마크 자체가 멀티쓰레드 안되서 고생인데 다른 쓰레드에 플러그인만으로 구현되면 대박이네요

바루스
2025.02.16
@IRONBLOCK

그.. 시비거시는건지 물어보는건지 모르겠는데 설명하자면

1. 그 기능을 플러그인으로 만든거 맞습니다

2. PAPI fork 버전입니다 비동기와 소스 최적화를 했어요

3. 제가 만든건 리소스팩 데미지 폰트인데요..? 그리고 이름이 겹친다해서 무슨 상관인가요

4. 그 질문에 대해서라면 일단 StringBuilder 같은거 먼저 공부하고 오시는게 어떤가요?

렉걸리는 원인 spark 로 추적하는거 맞습니다

제네릭의 사용법을 모르시는건가요?

IRONBLOCK
2025.02.16
@바루스

시비거는게 아니라 순수 궁금증이에요

1번은 굳이 바닐라에 존재하는 기능을 담는 플러그인을 만들 필요가 없다고 생각했어요 -- 근데 이건 본인 자유니까요

2번 개발 중지도 아닌데 굳이 포크를 따로 배포할 필요를 모르겠어서요. 보통 기능 추가는 따로 배포가 아니라 풀 리퀘스트를 많이 하니까요

3번 데미지 입었을 때 옆으로 2! 이런 글자 떨어지고, 거기 뒤에 배경이나 꾸미는 기능 있는거 맞죠? 정확히 같은 기능과 거의 비슷한 이름의 무료 플러그인이 있었던 거로 기억해서요

아니면 그 플러그인의 텍스쳐 확장을 말씀하신건가요

 

사실 앞부분은 PAPI도 굳이? 싶지 많이 궁금한건 없는데 4번이 제일 궁금합니다

 

4번 StringBuilder같은거요? 무슨 목적으로 말하신지 모르겠지만 가변 객체와 불변 객체의 차이, 참조에 대한 것은 이미 알고있어요

spark로 추적이요? 기본적으로 서버가 렉걸리면 프로파일러 보는게 맞긴한데 그걸 자동화해준다는 건가요? 개쩌네요

제네릭이 public static Entity damageTarget(T target, Player attacker) { //... 약간 이런식으로 된 것에서 T로 선언되는 타입을 제네릭이라고 알고있습니다. 이게 최적화랑 관련이 없어보여서요. 그냥 자바 문법으로 알고있었어요. 처리라는게 가능한지도 몰랐고요

또 렉걸리는 부분을 "바이트" 처리한다는게 일종의 압축 개념으로 생각되고 "다른 쓰레드"에 저장은 멀티쓰레딩으로 생각되는데

이 말 자체가 추상적인 것도 있고 마크 자체가 싱글쓰레드라 페이퍼같이 소스코드를 수정해야하는데 단순 API만으로 하는게 불가능하다고 생각했기에 더 궁금합니다

바루스
2025.02.17
@IRONBLOCK

제가 너무 예민했군요 ㅎㅎ 죄송합니다 일단 3번 데미지 플러그인이 어떤 건지 보여드리자면 https://youtu.be/9RW9dAmt3n0?si=6fj8tYGAHaIt5PfE 그냥 이렇게 간단한겁니다

바루스
2025.02.17
@IRONBLOCK

서버 렉걸리는 부분을 찾는건 spark 도 참조했고 https://github.com/toxicity188/TrafficProfiler 이 플러그인에서 영감을 받았습니다

바루스
2025.02.17
@IRONBLOCK

마인크래프트는 기본적으로 싱글스레드 게임이기 때문에, 비동기 작업에서 직접 게임 데이터를 수정하면 충돌 문제가 발생할 수 있죠. 다른 최적화 플러그인들 처럼 TPS 점수에 따라 업데이트나 연산을 중단하는 점은 같습니다

하지만 여기서 한 술 더떠서 렉의 원인이 되는 곳을 NBT 데이터로 만듭니다 그리고 우선 순위를 후열에 둡니다 그 다음 비동기 분석 후 동기 실행을 하여 결과를 메인 스레드에 적용시키는거죠 그럼 결국 NBT 데이터 + 우선순위 후열 처리 + 유사 멀티쓰레딩 방식으로 상당한 효과를 기대할 수 있을 겁니다 게다가 StringBuilder 처리로 더 최적화할 수 있는거죠

IRONBLOCK
2025.02.17
@바루스

반박 몇가지만 해도 될까요?

NBT 데이터가 느리다고 들었어요. 마크가 데이터 컴포넌트를 도입한 이유 중의 하나기도 해요

그러니까 렉이 걸리는 작업(BukkitTask?)를 NBT로 변환해서 비동기로 처리한 후 결과를 여유가 있는 틱에서 메인 쓰레드에 끼워넣겠다...인가요??

어우 벌써부터 머리속에 에러가 겁나 떠오르는데 이 원리가 자세하게 설명되어있다면 구매해볼만 하겟네요

아직도 StringBuilder처리는 이해못했어요 StringBuilder는 Mutable한 String을 만들기 위한거로 알아서요

 

양자컴퓨터 관심은 없어여

IRONBLOCK
2025.02.17
@IRONBLOCK

혹시 저게 다른 플러그인을 모두 최적화하는게 아니라 마크 기본 동작이랑 본인 제작 플러그인을 위한건가요? 그러면 오류가 덜나겠네여

바루스
2025.02.18
@IRONBLOCK

말씀해주신대로 NBT 사용하는 부분은 1.20.4 까지 버전에만 사용하려고 하고 있고 그 이상 버전 부터는 더 좋은 컴포넌트가 생겼기 때문에 컴포넌트를 나눈 방식을 사용하는게 더 최적화에 좋은 것 같습니다 그리고 StringBuilder 를 사용한 이유는 그냥 String 으로 보내는 것과 성능에 차이가 있었기 때문입니다 처리가 더 빨라졌어요

바루스
2025.02.18
@IRONBLOCK

근데 생각보다 많은 지식을 알고 계시네요..? 혹시 이 업종에서 일하시는 베테랑 분이신가요? ㄷㄷ.. 저보다 뛰어나신 것 같은데 저는 해봤자 아이디어밖에 없는 개백수라..

IRONBLOCK
2025.02.18
@바루스

그냥 심심할때마다 플러그인이나 모드 몇개 개발하는 평범한(?) 학생이에요

최적화 쪽은 거의 몰라서 + 멀티쓰레딩 땜에 빡친 적이 많아서 최적화가 마냥 신기하게 보여서 많이 물어봤어여

컴포넌트 최적화도 NBT 없엔다고해서 개빡쳤을때 주워들은 내용이에요

StringBuilder가 더 빠르군요... 신기하네요 나중에 써먹을게요 꿀팁 감사합니다

바루스
2025.02.17
@IRONBLOCK

그리고 혹시 양자 컴퓨터에 대해 관심이 있으신가요? 이 아이디어 어떻게 생각하세요? https://pluginskor.tistory.com/290

owoww
2025.02.20
@IRONBLOCK

wow 말하는거 정말 비호감이시네요! 하긴.. 본인이 남들보다 우월하다 생각하시는 분들은 대부분 그렇더라고요... 아직 어려서 그런거겠죠? ^-^;;

IRONBLOCK
2025.02.22
@owoww

엄... 오히려 전혀 반대에요

제가 전혀 모르는 내용이었고 구글링과 챗지피티에게 물어봤는데 관련 정보가 하나도 없었고,비동기, 멀티쓰레드 처리 1도 못하는 입장이라서 더 신기했던거에요

지금 읽어보니까 말투가 충분히 꼬울만 하군요. 바꿔볼게요

솔직히 말하면 처음 딱 보고선 챗지피티로 코딩하는 잼민이가 지피티의 헛소리 배워서 말한다고 생각했는데 두번째 채팅부터는 제 지식이 모자라다는것을 확실하게 깨달았어요. 최적화는 문외한이라 그랬나봐요

뉴스 및 창작물
/files/thumbnails/482/063/004/262x150.crop.jpg?20250618232717

업데이트

마인크래프트 자바 1.21.6 (Minecraft Java Edition 1.21.6)

updater

2025-06-18

0

/files/thumbnails/520/060/004/262x150.crop.jpg?20250612233233

업데이트

마인크래프트 자바 1.21.6 릴리스 후보 1 한국어 번역본 (Minecraft 1.21.6 Release Candidate 1)

updater

2025-06-12

0

/files/thumbnails/267/050/004/262x150.crop.jpg?20250611010233

업데이트

마인크래프트 자바 1.21.6 프리릴리스 1 한국어 번역본 (Minecraft 1.21.6 Pre-Release 1)

updater

2025-05-28

1

/files/thumbnails/166/043/004/262x150.crop.jpg?20250603112940

업데이트

마인크래프트 자바 스냅숏 25w20a 한국어 번역본 (Minecraft Snapshot 25w20a)

updater

2025-05-14

0

/files/thumbnails/255/028/004/262x150.crop.jpg?20250603113100

업데이트

마인크래프트 자바 스냅숏 25w16a 한국어 번역본 (Minecraft Snapshot 25w16a)

updater

2025-04-16

0