콘텐츠로 이동

데이터 저장

LuckPerms에서 데이터 저장 용도로 쓸 수 있는 기능과 간단한 예시를 소개한다.

사실 사용자와 그룹에 존재하지 않는(다른 플러그인이 쓰지 않는) 권한 노드를 줄 수도 있다.

이런 권한도 다른 권한과 똑같이 동작한다.

권한 설정:

하위 아이콘의 material을 air로 바꾸면 클릭 후 사라지게 만들 수 있다.

예시(TrMenu):

"A":
display:
material: stone
icons:
- condition: "perm *nitwikit.demo"
actions:
- 'tell: "이미 눌렀습니다!"'
actions:
- 'command inline "lp user {{player name}} permission set nitwikit.demo true" as console'
- "refresh: A"
"A":
display:
material: stone
update: 20
icons:
- condition: "perm rank.vip+"
display:
lore: "최고 등급 VIP"
- condition: "perm rank.vip"
display:
lore: "일반 플레이어입니다. 클릭하면 20골드로 VIP+로 승급합니다"
actions:
all:
- 'command inline "lp user {{player name}} permission set rank.vip+ true" as console {condition=check papi %vault_eco_balance% >= 20}'
- condition: "perm rank.default"
display:
lore: "일반 플레이어입니다. 클릭하면 10골드로 VIP로 승급합니다"
actions:
all:
- 'command inline "lp user {{player name}} permission set rank.vip true" as console {condition=check papi %vault_eco_balance% >= 10}'

권한을 쓰면 어디서든 판정할 수 있다는 장점이 있지만, OP에게는 불편하다. OP는 모든 권한이 true이기 때문이다.

시간이 지나면 권한이 자동으로 사라진다.

예시(TrMenu):

"A":
update: 20
display:
material: stone
icons:
- condition: "perm *nitwikit.demo"
actions:
- 'tell: "쿨다운 중입니다! 남은 시간: %luckperms_expiry_time_nitwikit.demo%"'
actions:
- 'command inline "lp user {{player name}} permission settemp nitwikit.demo true 60s" as console'
- "refresh"

기간제 권한뿐 아니라 기간제 권한 그룹도 쓸 수 있다.

아래는 같은 명령어를 세 번 실행한 결과다.

원리: 지금이 13시라면 오늘이 끝날 때까지 24h - 13h = 11h가 남는다.

플레이어에게 11시간짜리 기간제 권한을 주면 자정이 지나는 순간 권한이 사라진다. 이 권한으로 판정하는 것들은 자연스럽게 매일 초기화된다.

구현(Kether):

명령어 조립:

inline "lp user {{sender}} permission settemp nitwikit.demo true {{math 24 - time as HH}}h{{math 60 - time as mm}}m{{math 60 - time as ss}}s"

조립한 결과를 tell로 확인해 본다.

명령어 실행:

command inline "lp user {{sender}} permission settemp nitwikit.demo true {{math 24 - time as HH}}h{{math 60 - time as mm}}m{{math 60 - time as ss}}s" as console

PlaceholderAPI의 server와 math 확장으로도 할 수 있다.

  • %math_0_24-{server_time_HH}% // 시
  • %math_0_60-{server_time_mm}% // 분
  • %math_0_60-{server_time_ss}% // 초

다만 이 방법은 별로 좋아하지 않는다. 다른 방법: 예시 | 변수 | 매일 초기화

매일 초기화와 같은 방식이다.

키와 값이 일대일로 대응한다는 것만 알면 된다.

그다음은 마음껏 설정하면 된다.

%luckperms_meta_키이름%

이 방법은 OP의 영향을 받지 않지만, 권한만 판정할 수 있는 플러그인도 있어서 권한보다는 쓸 수 있는 곳이 적다.

하지만 lp 명령어로 meta를 설정하면 명령어가 길 뿐 아니라 로그도 남는다.

다행히 Vulpecula의 memory 액션으로 meta를 설정할 수 있다.

memory 키이름 to 값 using lp

meta 저장

memory 키이름 using lp

meta 불러오기

위에서 권한으로 한 것은 대부분 meta로도 할 수 있다.

예시 | Invero | 칭호 시스템 참고

/lp user postyizhan meta settemp 키 값 시간

딱히 쓸 게 없다.