PlaceholderAPI

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

PlaceholderAPI마인크래프트 서버에서 플레이스홀더를 통합 관리하는 핵심 플러그인이다. 다양한 플러그인들이 서로의 정보를 공유하고 표시할 수 있도록 중앙화된 플레이스홀더 시스템을 제공한다.

개념

플레이스홀더는 %player_name%과 같은 형식으로 동적 정보를 표시하는 변수다. PlaceholderAPI는 이러한 플레이스홀더들을 한 곳에서 관리하여 플러그인 간 호환성을 크게 향상시킨다.

주요 기능

확장 시스템

eCloud를 통해 다양한 플러그인의 확장을 쉽게 설치할 수 있다:

  • 200개 이상의 공식 확장 지원
  • 자동 업데이트 기능
  • 의존성 자동 해결

플레이스홀더 종류

  • 플레이어 플레이스홀더: 개별 플레이어 정보
  • 서버 플레이스홀더: 서버 전체 정보
  • 관계형 플레이스홀더: 두 플레이어 간의 관계 정보

명령어

명령어 설명 권한
/papi PlaceholderAPI 도움말 placeholderapi.help
/papi ecloud download <확장명> 확장 다운로드 placeholderapi.ecloud
/papi ecloud list 사용 가능한 확장 목록 placeholderapi.ecloud
/papi reload 설정 리로드 placeholderapi.reload
/papi parse <플레이어> <텍스트> 플레이스홀더 파싱 테스트 placeholderapi.parse
/papi list 등록된 플레이스홀더 목록 placeholderapi.list

자주 사용되는 플레이스홀더

# Player 확장
%player_name% - 플레이어 이름
%player_displayname% - 표시 이름
%player_health% - 현재 체력
%player_max_health% - 최대 체력
%player_level% - 경험치 레벨
%player_x%, %player_y%, %player_z% - 좌표

# Server 확장
%server_online% - 온라인 플레이어 수
%server_max_players% - 최대 플레이어 수
%server_tps% - 서버 TPS
%server_ram_used% - 사용 중인 RAM
%server_ram_max% - 최대 RAM

# Vault 확장 (경제)
%vault_eco_balance% - 소지금
%vault_eco_balance_formatted% - 포맷된 소지금
%vault_rank% - 권한 그룹
%vault_prefix% - 접두사

플러그인 연동 예시

스코어보드 플러그인

# 스코어보드 설정 예시
title: "&e&l서버 정보"
lines:
  - "&7━━━━━━━━━━━━"
  - "&f플레이어: &a%player_name%"
  - "&f소지금: &6%vault_eco_balance%원"
  - "&f레벨: &b%player_level%"
  - "&f온라인: &e%server_online%/%server_max_players%"
  - "&7━━━━━━━━━━━━"

채팅 플러그인

# 채팅 포맷 예시
format: "%vault_prefix% %player_name% &7» &f%message%"
hover-format:
  - "&e%player_name%"
  - "&7레벨: %player_level%"
  - "&7소지금: %vault_eco_balance%원"
  - "&7위치: %player_world%"

커스텀 플레이스홀더 제작

JavaScript 확장

// custom_placeholder.js
function onPlaceholderRequest(player, identifier) {
    if (identifier.equals("custom_time")) {
        var date = new Date();
        return date.getHours() + ":" + date.getMinutes();
    }
    
    if (identifier.equals("custom_kills")) {
        // 데이터베이스에서 킬 수 조회
        return getPlayerKills(player.getName());
    }
    
    return null;
}

Java API

개발자는 PlaceholderAPI를 통해 자신의 플러그인 정보를 다른 플러그인에서 사용할 수 있도록 제공할 수 있다.

성능 최적화

# config.yml 캐싱 설정
cache:
  enabled: true
  time: 10  # 캐시 유지 시간 (초)
  
parsing:
  bracket-placeholders: true  # {} 형식 지원
  relational-placeholders: true  # 관계형 플레이스홀더

문제 해결

  • 플레이스홀더가 표시되지 않음: 해당 확장이 설치되었는지 확인
  • 잘못된 값 표시: /papi parse 명령어로 테스트
  • 성능 문제: 캐싱 활성화 및 업데이트 주기 조정

인기 확장 목록

  • Player: 기본 플레이어 정보
  • Server: 서버 정보
  • Vault: 경제 및 권한
  • LuckPerms: 고급 권한 관리
  • Essentials: Essentials 플러그인 정보
  • Statistic: 통계 정보
  • Math: 수학 연산

활용 팁

  • 홀로그램, 스코어보드, NPC 등에서 동적 정보 표시
  • 권한 그룹별 다른 채팅 포맷 적용
  • 상점 간판에 실시간 가격 정보 표시
  • 탭 리스트 커스터마이징[1]

각주

  1. TPS, 온라인 플레이어 수 등을 탭 리스트에 표시 가능