버킷(마인크래프트) 문서 원본 보기 ← 버킷(마인크래프트) 문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. '''Bukkit'''(버킷)은 [[마인크래프트]] 서버에 플러그인 기능을 추가한 최초의 서버 구동기이다. 현재는 개발이 중단되었지만, 마인크래프트 서버 플러그인 생태계의 기초를 마련한 역사적으로 중요한 프로젝트다. == 역사 == Bukkit은 2010년 hey0의 hMod 프로젝트가 중단된 후, 그 대안으로 시작되었다. Dinnerbone, EvilSeph, Grum, Tahg 등의 개발자들이 주도했으며, 2014년 DMCA 사태로 개발이 중단될 때까지 마인크래프트 서버의 표준으로 자리잡았다. == 특징 == === 플러그인 API === * 최초의 체계적인 마인크래프트 서버 API * 이벤트 기반 프로그래밍 모델 * 간단하고 직관적인 구조 * Java 기반 개발 환경 === 기본 구조 === <pre> # Bukkit의 기본 폴더 구조 서버 폴더/ ├── plugins/ # 플러그인 폴더 ├── world/ # 월드 데이터 ├── world_nether/ # 네더 월드 ├── world_the_end/ # 엔드 월드 ├── bukkit.yml # Bukkit 설정 파일 ├── server.properties # 서버 기본 설정 └── permissions.yml # 권한 설정 </pre> == CraftBukkit == CraftBukkit은 Bukkit API의 실제 구현체이다: * Bukkit: API (인터페이스) * CraftBukkit: 서버 구현체 * 바닐라 서버 코드를 수정하여 API 구현 == 설정 파일 == === bukkit.yml === <pre> # 기본 bukkit.yml 설정 settings: allow-end: true # 엔드 차원 허용 warn-on-overload: true # 과부하 경고 permissions-file: permissions.yml # 권한 파일 위치 update-folder: update # 플러그인 업데이트 폴더 plugin-profiling: false # 플러그인 프로파일링 connection-throttle: 4000 # 연결 제한 (밀리초) query-plugins: true # 플러그인 쿼리 허용 deprecated-verbose: default # 구식 API 경고 shutdown-message: Server closed # 서버 종료 메시지 spawn-limits: monsters: 70 # 몬스터 스폰 제한 animals: 10 # 동물 스폰 제한 water-animals: 15 # 수중 동물 제한 ambient: 15 # 주변 생물 제한 chunk-gc: period-in-ticks: 600 # 청크 가비지 컬렉션 주기 ticks-per: animal-spawns: 400 # 동물 스폰 틱 monster-spawns: 1 # 몬스터 스폰 틱 autosave: 6000 # 자동 저장 틱 aliases: now-in-commands.yml # 명령어 별칭 파일 </pre> == 기본 명령어 == {| class="wikitable" ! 명령어 !! 설명 !! 권한 |- | /plugins || 플러그인 목록 || bukkit.command.plugins |- | /reload || 서버 리로드 || bukkit.command.reload |- | /version || 버전 정보 || bukkit.command.version |- | /help || 도움말 || bukkit.command.help |- | /ban || 플레이어 차단 || bukkit.command.ban |- | /kick || 플레이어 추방 || bukkit.command.kick |} == 권한 시스템 == === permissions.yml === <pre> # 기본 권한 설정 예시 groups: default: permissions: bukkit.command.help: true bukkit.broadcast.user: true admin: permissions: bukkit.command.*: true inheritance: - default users: player1: groups: - admin permissions: custom.permission: true </pre> == 플러그인 개발 == === 기본 플러그인 구조 === <pre> // 메인 클래스 예시 public class MyPlugin extends JavaPlugin { @Override public void onEnable() { // 플러그인 활성화 시 실행 getLogger().info("플러그인이 활성화되었습니다!"); } @Override public void onDisable() { // 플러그인 비활성화 시 실행 getLogger().info("플러그인이 비활성화되었습니다!"); } } </pre> === plugin.yml === <pre> name: MyPlugin version: 1.0 main: com.example.MyPlugin author: 작성자명 description: 플러그인 설명 commands: mycommand: description: 명령어 설명 usage: /mycommand permission: myplugin.command permissions: myplugin.command: description: 명령어 사용 권한 default: op </pre> == 한계점 == * 성능 최적화 부족 * 바닐라 버그 수정 미포함 * 업데이트 중단 (2014년 이후) * 최신 마인크래프트 버전 미지원 == 파생 프로젝트 == 버킷의 중단 이후 여러 파생 프로젝트가 등장했다: * '''[[Spigot]]''': 성능 개선에 중점 * '''[[Paper(마인크래프트)|Paper]]''': Spigot의 포크, 추가 최적화 * '''Glowstone''': 처음부터 새로 작성된 구현체 == 유산 == 버킷이 마인크래프트 서버 생태계에 미친 영향: * 플러그인 시스템의 표준 확립 * 서버 커스터마이징 문화 형성 * 오픈소스 커뮤니티 발전 * 현재까지 이어지는 API 구조의 기초 == 현재 상황 == * 공식 개발 중단 * [[Spigot]]/[[Paper(마인크래프트)|Paper]]로 대부분 이전 * 교육 목적으로만 참고 가치 * 신규 서버에는 사용 비권장 == 마이그레이션 == [[버킷(마인크래프트)|Bukkit]]에서 최신 구동기로 이전하는 방법: <pre> 1. Paper 또는 Spigot 다운로드 2. 기존 월드 폴더 복사 3. 플러그인 호환성 확인 4. bukkit.yml 설정 이전 5. 서버 시작 및 테스트 </pre> [[분류:마인크래프트]] 버킷(마인크래프트) 문서로 돌아갑니다. 분류