버킷(마인크래프트): 두 판 사이의 차이
새 문서: '''Bukkit'''(버킷)은 마인크래프트 서버에 플러그인 기능을 추가한 최초의 서버 구동기이다. 현재는 개발이 중단되었지만, 마인크래프트 서버 플러그인 생태계의 기초를 마련한 역사적으로 중요한 프로젝트다. == 역사 == Bukkit은 2010년 hey0의 hMod 프로젝트가 중단된 후, 그 대안으로 시작되었다. Dinnerbone, EvilSeph, Grum, Tahg 등의 개발자들이 주도했으며, 2014년 DMCA 사태... |
태그: 되돌려진 기여 |
||
168번째 줄: | 168번째 줄: | ||
== 마이그레이션 == | == 마이그레이션 == | ||
[[버킷(마인크래프트)|Bukkit]]에서 최신 구동기로 이전하는 방법: | |||
<pre> | <pre> | ||
1. Paper 또는 Spigot 다운로드 | 1. Paper 또는 Spigot 다운로드 |
2025년 7월 23일 (수) 00:09 판
Bukkit(버킷)은 마인크래프트 서버에 플러그인 기능을 추가한 최초의 서버 구동기이다. 현재는 개발이 중단되었지만, 마인크래프트 서버 플러그인 생태계의 기초를 마련한 역사적으로 중요한 프로젝트다.
역사
Bukkit은 2010년 hey0의 hMod 프로젝트가 중단된 후, 그 대안으로 시작되었다. Dinnerbone, EvilSeph, Grum, Tahg 등의 개발자들이 주도했으며, 2014년 DMCA 사태로 개발이 중단될 때까지 마인크래프트 서버의 표준으로 자리잡았다.
특징
플러그인 API
- 최초의 체계적인 마인크래프트 서버 API
- 이벤트 기반 프로그래밍 모델
- 간단하고 직관적인 구조
- Java 기반 개발 환경
기본 구조
# Bukkit의 기본 폴더 구조 서버 폴더/ ├── plugins/ # 플러그인 폴더 ├── world/ # 월드 데이터 ├── world_nether/ # 네더 월드 ├── world_the_end/ # 엔드 월드 ├── bukkit.yml # Bukkit 설정 파일 ├── server.properties # 서버 기본 설정 └── permissions.yml # 권한 설정
CraftBukkit
CraftBukkit은 Bukkit API의 실제 구현체이다:
- Bukkit: API (인터페이스)
- CraftBukkit: 서버 구현체
- 바닐라 서버 코드를 수정하여 API 구현
설정 파일
bukkit.yml
# 기본 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 # 명령어 별칭 파일
기본 명령어
명령어 | 설명 | 권한 |
---|---|---|
/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
# 기본 권한 설정 예시 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
플러그인 개발
기본 플러그인 구조
// 메인 클래스 예시 public class MyPlugin extends JavaPlugin { @Override public void onEnable() { // 플러그인 활성화 시 실행 getLogger().info("플러그인이 활성화되었습니다!"); } @Override public void onDisable() { // 플러그인 비활성화 시 실행 getLogger().info("플러그인이 비활성화되었습니다!"); } }
plugin.yml
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
한계점
- 성능 최적화 부족
- 바닐라 버그 수정 미포함
- 업데이트 중단 (2014년 이후)
- 최신 마인크래프트 버전 미지원
파생 프로젝트
버킷의 중단 이후 여러 파생 프로젝트가 등장했다:
유산
버킷이 마인크래프트 서버 생태계에 미친 영향:
- 플러그인 시스템의 표준 확립
- 서버 커스터마이징 문화 형성
- 오픈소스 커뮤니티 발전
- 현재까지 이어지는 API 구조의 기초
현재 상황
마이그레이션
Bukkit에서 최신 구동기로 이전하는 방법:
1. Paper 또는 Spigot 다운로드 2. 기존 월드 폴더 복사 3. 플러그인 호환성 확인 4. bukkit.yml 설정 이전 5. 서버 시작 및 테스트