잔글 문자열 찾아 바꾸기 - "분류:마인크래프트" 문자열을 "분류:마인크래프트/플러그인" 문자열로
LuckPerms 권한 관리 문서 보강
 
1번째 줄: 1번째 줄:
'''LuckPerms'''는 [[마인크래프트]] 서버를 위한 권한 관리 플러그인으로, 플레이어가 사용할 수 있는 기능을 그룹과 권한을 통해 제어할 있게 해준다. lucko가 개발했으며, 성능과 확장성을 염두에 두고 설계되어 수천 개의 서버와 대규모 네트워크에서 신뢰받고 있다. 기존의 오래된 권한 플러그인들과 달리 지속적으로 업데이트되고 있으며, 웹 에디터를 통한 직관적인 관리가 특징이다.
'''LuckPerms'''는 [[마인크래프트: 자바 에디션]] 서버에서 권한과 그룹을 관리하는 [[마인크래프트/플러그인|마인크래프트 플러그인]]이다. 서버 운영자는 LuckPerms를 이용해 플레이어, 그룹, 권한 노드, 접두사, 접미사, 월드별 권한을 관리할 있다. 공개 서버에서는 건축 권한, 관리자 권한, 명령어 사용 범위를 구분하기 위해 거의 필수적으로 사용된다.


== 주요 특징 ==
== 주요 특징 ==
* '''뛰어난 성능''': 대규모 서버를 위한 최적화
LuckPerms의 특징은 다음과 같다.
* '''웹 에디터''': 브라우저에서 권한을 시각적으로 관리
 
* '''다양한 저장소 지원''': MySQL, MariaDB, PostgreSQL, SQLite, H2, MongoDB
* 사용자별 권한 관리
* '''컨텍스트 시스템''': 월드, 서버별 권한 설정
* 그룹 기반 권한 상속
* '''상속 시스템''': 그룹 간 권한 상속
* 웹 에디터 제공
* '''임시 권한''': 시간 제한이 있는 권한 부여
* 월드, 서버, 시간 등 컨텍스트 기반 권한
* '''메타데이터''': 접두사, 접미사, 기타 데이터 저장
* 접두사와 접미사 같은 메타데이터 관리
* '''Vault 호환''': 기존 플러그인과의 호환성
* 여러 서버 플랫폼 지원
* 데이터베이스 기반 저장 지원
 
권한 플러그인은 단순히 명령어 사용 가능 여부만 정하는 도구가 아니다. 서버의 운영 구조와 이용자 역할을 정의하는 기반이므로, 처음부터 그룹 구조를 정리해 두는 것이 좋다.


== 지원 플랫폼 ==
== 지원 플랫폼 ==
* '''[[버킷(마인크래프트)|Bukkit]]/Spigot/Paper''': 일반 서버
LuckPerms는 여러 서버 플랫폼을 지원한다.
* '''BungeeCord/Waterfall''': 프록시 서버
 
* '''Velocity''': 현대적 프록시
* Bukkit / Spigot / Paper
* '''Fabric''': 모드 서버
* BungeeCord
* '''Forge/NeoForge''': 모드 서버
* Velocity
* '''Sponge''': 하이브리드 서버
* Sponge
* '''Nukkit''': 베드락 에디션 서버
* Fabric
* Forge 계열 일부 환경
 
Java Edition 서버에서는 [[Paper(마인크래프트)|Paper]]와 함께 사용하는 경우가 많다.


== 설치 방법 ==
== 설치 방법 ==
# [https://luckperms.net/ 공식 웹사이트]에서 서버 타입에 맞는 버전 다운로드
Paper 서버 기준 설치 절차는 다음과 같다.
# plugins (또는 mods) 폴더에 JAR 파일 넣기
# 서버 재시작
# 자동으로 기본 설정 생성


== 기본 명령어 ==
# LuckPerms jar 파일을 다운로드한다.
=== 그룹 관리 ===
# 서버의 `plugins` 폴더에 넣는다.
{| class="wikitable"
# 서버를 재시작한다.
! 명령어 !! 설명
# 생성된 `plugins/LuckPerms` 폴더와 설정 파일을 확인한다.
|-
# 기본 그룹과 관리자 권한을 설정한다.
| /lp group <그룹> create || 새 그룹 생성
|-
| /lp group <그룹> delete || 그룹 삭제
|-
| /lp group <그룹> info || 그룹 정보 확인
|-
| /lp group <그룹> permission set <권한> || 권한 추가
|-
| /lp group <그룹> parent add <부모> || 부모 그룹 설정
|-
| /lp listgroups || 모든 그룹 목록
|}


=== 사용자 관리 ===
권한 설정을 마치기 전에는 일반 이용자에게 불필요한 명령어 권한이 열려 있지 않은지 확인해야 한다.
{| class="wikitable"
! 명령어 !! 설명
|-
| /lp user <플레이어> info || 사용자 정보 확인
|-
| /lp user <플레이어> permission set <권한> || 권한 부여
|-
| /lp user <플레이어> parent add <그룹> || 그룹에 추가
|-
| /lp user <플레이어> parent remove <그룹> || 그룹에서 제거
|-
| /lp user <플레이어> clear || 모든 권한 제거
|}


=== 웹 에디터 ===
== 기본 명령어 ==
{| class="wikitable"
LuckPerms의 기본 명령어는 `/lp`이다.
! 명령어 !! 설명
|-
| /lp editor || 웹 에디터 열기
|-
| /lp editor <대상> || 특정 대상 편집
|}


== 권한 형식 ==
=== 그룹 관리 ===
=== 기본 권한 ===
* '''일반 권한''': plugin.command
* '''와일드카드''': plugin.*
* '''부정 권한''': -plugin.command (권한 거부)
 
=== 컨텍스트 권한 ===
<pre>
<pre>
# 특정 월드에서만
/lp creategroup builder
/lp user Steve permission set worldedit.* true world=creative
/lp group builder permission set worldedit.selection.pos true
 
/lp group builder parent add default
# 특정 서버에서만 (BungeeCord)
/lp group builder meta setprefix 10 "&7[Builder] "
/lp user Steve permission set command.fly true server=lobby
 
# 임시 권한 (1시간)
/lp user Steve permission settemp fly.use true 1h
</pre>
</pre>


== 그룹 시스템 ==
=== 사용자 관리 ===
=== 기본 그룹 구조 예시 ===
<pre>
<pre>
default (기본 그룹)
/lp user PlayerName parent add builder
  ├── member
/lp user PlayerName permission set minecraft.command.teleport true
  │  ├── vip
/lp user PlayerName info
  │  │  └── vip+
  │  └── builder
  ├── helper
  │  ├── moderator
  │  │  └── admin
  │  └── developer
</pre>
</pre>


=== 그룹 생성 및 설정 ===
=== 웹 에디터 ===
<pre>
<pre>
# VIP 그룹 생성
/lp editor
/lp group vip create
/lp applyedits <코드>
</pre>


# 기본 권한 추가
웹 에디터는 복잡한 그룹 구조를 한눈에 확인하고 수정할 수 있어 권한을 처음 구성할 때 유용하다. 다만 편집 결과를 적용하기 전에는 변경 내용을 확인해야 한다.
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.nick true


# member 그룹 상속
== 권한 형식 ==
/lp group vip parent add member
마인크래프트 서버 권한은 보통 점으로 구분된 노드 형식이다.


# 접두사 설정
<pre>
/lp group vip meta setprefix 100 "&6[VIP] "
worldedit.selection.pos
 
worldguard.region.define
# 플레이어를 VIP 그룹에 추가
coreprotect.lookup
/lp user Steve parent add vip
</pre>
</pre>


== 메타데이터 ==
권한 값은 일반적으로 `true` 또는 `false`로 설정한다. 와일드카드 권한을 사용할 수도 있지만, 범위가 너무 넓으면 예상하지 못한 명령어가 열릴 수 있다.
=== 접두사/접미사 ===
<pre>
# 접두사 설정 (우선순위 100)
/lp group admin meta setprefix 100 "&c[Admin] "
 
# 접미사 설정
/lp group vip meta setsuffix 50 " &7[VIP]"


# 개별 사용자 접두사
/lp user Steve meta setprefix 150 "&b[Dev] "
</pre>
=== 기타 메타데이터 ===
<pre>
<pre>
# 커스텀 메타 설정
/lp group admin permission set worldedit.* true
/lp user Steve meta set home 5
/lp group vip meta set max-homes 3
</pre>
</pre>


== 웹 에디터 사용 ==
와일드카드는 관리자 그룹처럼 신뢰할 수 있는 그룹에만 제한적으로 사용하는 것이 좋다.
1. '''/lp editor''' 명령 실행
2. 생성된 링크 클릭
3. 브라우저에서 직관적인 UI로 권한 편집
4. 변경사항 저장 (v5.3+에서는 실시간 저장 가능)


== 설정 파일 ==
== 그룹 구조 예시 ==
config.yml 주요 설정:
공개 서버에서는 다음과 같은 그룹 구조를 사용할 수 있다.


<pre>
{| class="wikitable"
# 서버 이름 (네트워크에서 사용)
! 그룹 !! 용도
server: "lobby"
|-
| default
| 신규 접속자 또는 기본 이용자
|-
| member
| 등록된 일반 이용자
|-
| builder
| 건축 권한을 가진 이용자
|-
| manager
| 도시 운영 또는 일부 관리 권한을 가진 이용자
|-
| admin
| 서버 관리자
|}


# 저장소 설정
그룹은 상속 구조를 통해 관리하는 것이 좋다. 예를 들어 `builder`가 `member`를 상속하면, `member` 권한을 다시 설정하지 않아도 된다.
storage-method: h2


# 기본 그룹
== 컨텍스트 권한 ==
default-group: default
LuckPerms는 월드, 서버, 시간 등 조건에 따라 권한을 다르게 적용할 수 있다.


# 권한 체크 옵션
예시:
apply-wildcards: true
apply-regex: true
apply-shorthand: true


# 메타데이터 형식
<pre>
meta-formatting:
/lp group builder permission set worldedit.region.set true world=build
  prefix:
    format: "{prefix}"
    start-spacer: ""
    middle-spacer: " "
    end-spacer: ""
</pre>
</pre>


== 마이그레이션 ==
컨텍스트 권한은 여러 월드를 운영하는 서버에서 유용하다. 예를 들어 건축 월드에서는 WorldEdit을 허용하고, 로비 월드에서는 제한하는 식으로 구성할 수 있다.
다른 권한 플러그인에서 이전:


<pre>
== 플레이시티 블록에서의 활용 ==
# PermissionsEx에서 이전
[[플레이시티 블록]] 같은 도시건축 서버에서는 권한 구조가 특히 중요하다. 일반 이용자, 건축 권한 보유자, 도시 운영자, 서버 관리자 사이의 권한 범위가 분명해야 월드 편집, 지역 보호, 지도 관리, 공지 관리가 안정적으로 이루어진다.
/lp migration permissionsex


# GroupManager에서 이전
연결되는 플러그인은 다음과 같다.
/lp migration groupmanager


# 기타 지원 플러그인
* [[WorldEdit]]
# bPermissions, zPermissions, PowerRanks 등
* [[WorldGuard]]
</pre>
* [[CoreProtect]]
* [[Vault]]
* [[PlaceholderAPI]]


== API ==
== 문제 해결 ==
개발자를 위한 API 제공:
권한이 적용되지 않을 때는 다음을 확인한다.


<pre>
* 사용자가 올바른 그룹에 속해 있는지
<dependency>
* 권한 노드 철자가 맞는지
    <groupId>net.luckperms</groupId>
* `false`로 설정된 권한이 상위 그룹에서 상속되고 있지 않은지
    <artifactId>api</artifactId>
* 월드 컨텍스트가 현재 월드와 맞는지
    <version>5.4</version>
* 플러그인이 실제로 LuckPerms 권한을 사용하는지
    <scope>provided</scope>
* 서버를 재시작하거나 명령어로 설정을 다시 불러와야 하는지
</dependency>
</pre>


== 성능 최적화 팁 ==
권한 문제를 해결할 때는 `/lp verbose` 기능을 사용하면 어떤 권한이 검사되는지 확인할 수 있다.
* '''캐싱''': 기본적으로 활성화되어 있음
* '''비동기 처리''': 대부분의 작업이 비동기로 실행
* '''데이터베이스''': 대규모 네트워크에서는 MySQL/MariaDB 권장
* '''벌크 편집''': 웹 에디터를 통한 대량 수정 권장


== 같이 보기 ==
== 같이 보기 ==
* [[마인크래프트/플러그인]]
* [[Paper(마인크래프트)]]
* [[Vault]]
* [[Vault]]
* [[EssentialsX]]
* [[WorldGuard]]
* [[마인크래프트/플러그인]]
* [[CoreProtect]]
* [[플레이시티 블록/서버]]


== 외부 링크 ==
== 외부 링크 ==
* [https://luckperms.net/ 공식 웹사이트]
* [https://luckperms.net/ LuckPerms]
* [https://luckperms.net/wiki 위키 문서]
* [https://luckperms.net/wiki LuckPerms Wiki]
* [https://github.com/LuckPerms/LuckPerms GitHub 저장소]
* [https://discord.gg/luckperms 공식 Discord]
* [https://luckperms.net/editor 웹 에디터]


[[분류:마인크래프트/플러그인]]
[[분류:마인크래프트/플러그인]]

2026년 6월 1일 (월) 14:42 기준 최신판

LuckPerms마인크래프트: 자바 에디션 서버에서 권한과 그룹을 관리하는 마인크래프트 플러그인이다. 서버 운영자는 LuckPerms를 이용해 플레이어, 그룹, 권한 노드, 접두사, 접미사, 월드별 권한을 관리할 수 있다. 공개 서버에서는 건축 권한, 관리자 권한, 명령어 사용 범위를 구분하기 위해 거의 필수적으로 사용된다.

주요 특징

LuckPerms의 특징은 다음과 같다.

  • 사용자별 권한 관리
  • 그룹 기반 권한 상속
  • 웹 에디터 제공
  • 월드, 서버, 시간 등 컨텍스트 기반 권한
  • 접두사와 접미사 같은 메타데이터 관리
  • 여러 서버 플랫폼 지원
  • 데이터베이스 기반 저장 지원

권한 플러그인은 단순히 명령어 사용 가능 여부만 정하는 도구가 아니다. 서버의 운영 구조와 이용자 역할을 정의하는 기반이므로, 처음부터 그룹 구조를 정리해 두는 것이 좋다.

지원 플랫폼

LuckPerms는 여러 서버 플랫폼을 지원한다.

  • Bukkit / Spigot / Paper
  • BungeeCord
  • Velocity
  • Sponge
  • Fabric
  • Forge 계열 일부 환경

Java Edition 서버에서는 Paper와 함께 사용하는 경우가 많다.

설치 방법

Paper 서버 기준 설치 절차는 다음과 같다.

  1. LuckPerms jar 파일을 다운로드한다.
  2. 서버의 `plugins` 폴더에 넣는다.
  3. 서버를 재시작한다.
  4. 생성된 `plugins/LuckPerms` 폴더와 설정 파일을 확인한다.
  5. 기본 그룹과 관리자 권한을 설정한다.

권한 설정을 마치기 전에는 일반 이용자에게 불필요한 명령어 권한이 열려 있지 않은지 확인해야 한다.

기본 명령어

LuckPerms의 기본 명령어는 `/lp`이다.

그룹 관리

/lp creategroup builder
/lp group builder permission set worldedit.selection.pos true
/lp group builder parent add default
/lp group builder meta setprefix 10 "&7[Builder] "

사용자 관리

/lp user PlayerName parent add builder
/lp user PlayerName permission set minecraft.command.teleport true
/lp user PlayerName info

웹 에디터

/lp editor
/lp applyedits <코드>

웹 에디터는 복잡한 그룹 구조를 한눈에 확인하고 수정할 수 있어 권한을 처음 구성할 때 유용하다. 다만 편집 결과를 적용하기 전에는 변경 내용을 확인해야 한다.

권한 형식

마인크래프트 서버 권한은 보통 점으로 구분된 노드 형식이다.

worldedit.selection.pos
worldguard.region.define
coreprotect.lookup

권한 값은 일반적으로 `true` 또는 `false`로 설정한다. 와일드카드 권한을 사용할 수도 있지만, 범위가 너무 넓으면 예상하지 못한 명령어가 열릴 수 있다.

/lp group admin permission set worldedit.* true

와일드카드는 관리자 그룹처럼 신뢰할 수 있는 그룹에만 제한적으로 사용하는 것이 좋다.

그룹 구조 예시

공개 서버에서는 다음과 같은 그룹 구조를 사용할 수 있다.

그룹 용도
default 신규 접속자 또는 기본 이용자
member 등록된 일반 이용자
builder 건축 권한을 가진 이용자
manager 도시 운영 또는 일부 관리 권한을 가진 이용자
admin 서버 관리자

그룹은 상속 구조를 통해 관리하는 것이 좋다. 예를 들어 `builder`가 `member`를 상속하면, `member` 권한을 다시 설정하지 않아도 된다.

컨텍스트 권한

LuckPerms는 월드, 서버, 시간 등 조건에 따라 권한을 다르게 적용할 수 있다.

예시:

/lp group builder permission set worldedit.region.set true world=build

컨텍스트 권한은 여러 월드를 운영하는 서버에서 유용하다. 예를 들어 건축 월드에서는 WorldEdit을 허용하고, 로비 월드에서는 제한하는 식으로 구성할 수 있다.

플레이시티 블록에서의 활용

플레이시티 블록 같은 도시건축 서버에서는 권한 구조가 특히 중요하다. 일반 이용자, 건축 권한 보유자, 도시 운영자, 서버 관리자 사이의 권한 범위가 분명해야 월드 편집, 지역 보호, 지도 관리, 공지 관리가 안정적으로 이루어진다.

연결되는 플러그인은 다음과 같다.

문제 해결

권한이 적용되지 않을 때는 다음을 확인한다.

  • 사용자가 올바른 그룹에 속해 있는지
  • 권한 노드 철자가 맞는지
  • `false`로 설정된 권한이 상위 그룹에서 상속되고 있지 않은지
  • 월드 컨텍스트가 현재 월드와 맞는지
  • 플러그인이 실제로 LuckPerms 권한을 사용하는지
  • 서버를 재시작하거나 명령어로 설정을 다시 불러와야 하는지

권한 문제를 해결할 때는 `/lp verbose` 기능을 사용하면 어떤 권한이 검사되는지 확인할 수 있다.

같이 보기

외부 링크