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