BKCommonLib: 두 판 사이의 차이
새 문서: '''BKCommonLib'''는 BergKiller가 개발한 마인크래프트 플러그인 개발 라이브러리다. 다양한 플러그인들이 공통으로 사용하는 기능을 제공하며, 특히 TrainCarts, MyWorlds 등의 플러그인에 필수적이다. == 주요 기능 == === 유틸리티 시스템 === 플러그인 개발에 필요한 다양한 유틸리티 제공: * 엔티티 및 블록 조작 API * 패킷 처리 시스템 * 인벤토리 관리 도구 * 파티클 및 사운... |
잔글 문자열 찾아 바꾸기 - "분류:마인크래프트" 문자열을 "분류:마인크래프트/플러그인" 문자열로 |
||
121번째 줄: | 121번째 줄: | ||
* '''1.17.x''': 패킷 시스템 전면 개편 | * '''1.17.x''': 패킷 시스템 전면 개편 | ||
[[분류:마인크래프트]] | [[분류:마인크래프트/플러그인]] |
2025년 7월 23일 (수) 02:10 기준 최신판
BKCommonLib는 BergKiller가 개발한 마인크래프트 플러그인 개발 라이브러리다. 다양한 플러그인들이 공통으로 사용하는 기능을 제공하며, 특히 TrainCarts, MyWorlds 등의 플러그인에 필수적이다.
주요 기능
유틸리티 시스템
플러그인 개발에 필요한 다양한 유틸리티 제공:
- 엔티티 및 블록 조작 API
- 패킷 처리 시스템
- 인벤토리 관리 도구
- 파티클 및 사운드 효과 라이브러리
호환성 레이어
여러 마인크래프트 버전 간의 호환성을 보장하는 추상화 레이어를 제공한다. 이를 통해 의존 플러그인들이 버전 업데이트에 쉽게 대응할 수 있다.
성능 최적화
- 청크 로딩 최적화
- 엔티티 처리 개선
- 메모리 사용량 감소
- 틱 최적화
명령어
명령어 | 설명 | 권한 |
---|---|---|
/bkcommonlib reload | 라이브러리 리로드 | bkcommonlib.command.reload |
/bkcommonlib info | 버전 및 상태 정보 | bkcommonlib.command.info |
/bkcommonlib debug | 디버그 모드 토글 | bkcommonlib.command.debug |
/bkcommonlib timings | 성능 측정 정보 | bkcommonlib.command.timings |
설정
# config.yml 주요 설정 debug: enabled: false # 디버그 모드 packet-logging: false # 패킷 로깅 performance: chunk-loader-threads: 2 # 청크 로더 스레드 수 entity-tracker-rate: 1 # 엔티티 추적 빈도 compatibility: force-disable-timings: false # 타이밍 시스템 비활성화 packet-handler-silent: true # 패킷 오류 무시
의존 플러그인
BKCommonLib를 필요로 하는 주요 플러그인들:
- TrainCarts: 기차 시스템 플러그인
- MyWorlds: 멀티월드 관리 플러그인
- SignLink: 가변 표지판 플러그인
- LightCleaner: 조명 버그 수정 플러그인
API 기능
엔티티 관리
// 엔티티 조작 예시 CommonEntity entity = CommonEntity.get(bukkitEntity); entity.setPosition(x, y, z); entity.setMotion(new Vector(0, 1, 0)); entity.playEffect(ParticleType.EXPLOSION);
맵 디스플레이
// 맵 아이템에 커스텀 렌더링 MapDisplay display = MapDisplay.create(player, 128, 128); display.draw(graphics -> { graphics.fillRect(0, 0, 128, 128, MapColorPalette.COLOR_RED); graphics.drawText(10, 10, "Hello World!"); });
문제 해결
버전 호환성
- BKCommonLib 버전은 마인크래프트 버전과 정확히 일치해야 함
- 의존 플러그인들도 호환되는 버전 사용 필요
성능 문제
# 성능 최적화 설정 performance: lazy-packet-handling: true # 지연 패킷 처리 cache-size: 1000 # 캐시 크기 gc-interval: 6000 # 가비지 컬렉션 간격 (틱)
개발자 기능
이벤트 시스템
BKCommonLib는 향상된 이벤트 시스템을 제공한다:
- 우선순위 기반 이벤트 처리
- 비동기 이벤트 지원
- 이벤트 필터링
월드 조작
// 월드 관련 유틸리티 CommonWorld world = CommonWorld.get(bukkitWorld); world.setTime(12000); world.setStorm(false); world.broadcast(ChatColor.GREEN + "안내 메시지");
디버깅 도구
- Packet Monitor: 패킷 송수신 모니터링
- Entity Tracker: 엔티티 상태 추적
- Performance Profiler: 성능 프로파일링
- Memory Analyzer: 메모리 사용량 분석
주의사항
- BKCommonLib 업데이트 시 의존 플러그인들도 함께 업데이트 필요
- 디버그 모드는 성능에 영향을 줄 수 있으므로 운영 서버에서는 비활성화 권장
- 일부 기능은 서버 구현체(Spigot, Paper 등)에 따라 다르게 작동할 수 있음
버전별 특징
- 1.20.x: 새로운 블록 상태 API 추가
- 1.19.x: 채팅 서명 시스템 대응
- 1.18.x: 월드 생성 시스템 개선
- 1.17.x: 패킷 시스템 전면 개편