Vault

Tdb (토론 | 기여)님의 2025년 7월 23일 (수) 02:10 판 (문자열 찾아 바꾸기 - "분류:마인크래프트" 문자열을 "분류:마인크래프트/플러그인" 문자열로)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Vault마인크래프트 서버에서 권한, 채팅, 경제 시스템을 위한 통합 API를 제공하는 플러그인이다. 개별 플러그인에 직접 연결하거나 의존할 필요 없이 쉽게 연동할 수 있도록 해주며, 다양한 권한 및 경제 플러그인들 간의 호환성을 보장한다. Sleaker가 개발했으며, 2011년부터 거의 모든 서버에서 필수 플러그인으로 자리잡았다.

역할

Vault는 직접적인 기능을 제공하지 않고, 다른 플러그인들 간의 다리 역할을 한다:

  • 권한 시스템 통합: 다양한 권한 플러그인과의 호환성
  • 경제 시스템 통합: 여러 경제 플러그인을 하나의 API로 관리
  • 채팅 시스템 통합: 접두사, 접미사 등 채팅 포맷 지원

개발자들은 각 플러그인의 API를 개별적으로 학습하지 않고도 Vault API만으로 모든 호환 플러그인과 연동할 수 있다.

지원 플러그인

권한 플러그인

  • LuckPerms (권장)
  • PermissionsEx (PEX)
  • GroupManager
  • bPermissions
  • zPermission
  • UltraPermissions

경제 플러그인

  • EssentialsX Economy
  • iConomy
  • BOSEconomy
  • CraftConomy
  • CMI Economy
  • GemsEconomy
  • GoldIsMoney
  • Gringotts

채팅 플러그인

설치

Vault는 다른 플러그인의 의존성으로 작동하므로 단독 설치만으로는 효과가 없다:

  1. SpigotMC에서 다운로드
  2. plugins 폴더에 JAR 파일 넣기
  3. 서버 재시작
  4. 권한/경제/채팅 플러그인 설치

개발자 API

Maven 설정

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

<dependency>
    <groupId>com.github.MilkBowl</groupId>
    <artifactId>VaultAPI</artifactId>
    <version>1.7</version>
    <scope>provided</scope>
</dependency>

기본 사용법

public class MyPlugin extends JavaPlugin {
    private static Economy econ = null;
    private static Permission perms = null;
    private static Chat chat = null;

    @Override
    public void onEnable() {
        if (!setupEconomy()) {
            getLogger().severe("Vault 경제 시스템을 찾을 수 없습니다!");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }
        setupPermissions();
        setupChat();
    }

    private boolean setupEconomy() {
        if (getServer().getPluginManager().getPlugin("Vault") == null) {
            return false;
        }
        RegisteredServiceProvider<Economy> rsp = getServer()
            .getServicesManager()
            .getRegistration(Economy.class);
        if (rsp == null) {
            return false;
        }
        econ = rsp.getProvider();
        return econ != null;
    }

    // setupPermissions()와 setupChat()도 유사한 방식
}

경제 API 사용 예시

// 잔액 확인
double balance = econ.getBalance(player);

// 돈 지급
EconomyResponse r = econ.depositPlayer(player, 100);
if (r.transactionSuccess()) {
    player.sendMessage("100원을 받았습니다!");
}

// 돈 차감
EconomyResponse r = econ.withdrawPlayer(player, 50);
if (r.transactionSuccess()) {
    player.sendMessage("50원을 지불했습니다!");
}

// 계좌 생성 (은행)
econ.createBank("서버은행", player);

권한 API 사용 예시

// 권한 확인
if (perms.has(player, "my.permission")) {
    // 권한이 있을 때
}

// 그룹 확인
String group = perms.getPrimaryGroup(player);

// 그룹 추가
perms.playerAddGroup(player, "vip");

// 그룹 제거
perms.playerRemoveGroup(player, "default");

채팅 API 사용 예시

// 접두사 가져오기
String prefix = chat.getPlayerPrefix(player);

// 접미사 설정
chat.setPlayerSuffix(player, " [VIP]");

// 그룹 접두사 가져오기
String groupPrefix = chat.getGroupPrefix(world, group);

설정

config.yml은 매우 간단하다:

# 업데이트 확인
update-check: true

VaultUnlocked

Vault의 개발이 정체되면서 VaultUnlocked라는 포크 버전이 등장했다:

  • 다중 통화 지원: 여러 종류의 화폐 관리
  • Folia 지원: 최신 서버 소프트웨어 호환
  • BigDecimal 지원: 정밀한 화폐 계산
  • 활발한 개발: 지속적인 업데이트

주의사항

  • Vault는 단독으로는 아무 기능도 하지 않음
  • 반드시 호환되는 권한/경제 플러그인이 필요
  • plugin.yml에 depend 또는 softdepend 추가 필수
  • 4년 이상 업데이트가 없지만 여전히 작동함

같이 보기

외부 링크