Player Access Recorder
플레이어의 접속/퇴장 시간과 플레이타임을 기록합니다.
제작 환경
Minecraft Version.
1.16.5
Skript Version.
2.5.3
Addon.
SkQuery 4.1.4
사용방법
Command.
/par <offlineplayer>
플레이어의 접속 정보를 조회합니다.
APIs.
입력한 플레이어를 플레이어 목록에 추가합니다.
function par_addPlayerToPlayerList(p:offlineplayer):
set {_uuid} to uuid of {_p}
set {{@ID}.PlayerList::%{_uuid}%} to {_p}
서버에 한번이라도 접속한 플레이어의 목록을 반환합니다.
function par_GetPlayerList() :: offlineplayers:
return {{@ID}.PlayerList::*}
서버에 한번이라도 접속한 플레이어의 UUID 목록을 반환합니다.
function par_GetUUIDList() :: strings:
loop {{@ID}.PlayerList::*}:
add loop-index to {_uuid::*}
return {_uuid::*}
플레이어가 서버에 최초로 접속한 시간을 저장합니다.
function par_SetFirstJoin(p:offlineplayer):
set {_uuid} to uuid of {_p}
set {{@ID}.FirstJoin::%{_uuid}%} to now
플레이어가 서버에 최초로 접속한 시간을 반환합니다.
function par_GetFirstJoin(p:offlineplayer) :: date:
set {_uuid} to uuid of {_p}
return {{@ID}.FirstJoin::%{_uuid}%}
플레이어가 가장 최근에 서버에 접속한 시간을 저장합니다.
function par_SetLastJoin(p:offlineplayer):
set {_uuid} to uuid of {_p}
set {{@ID}.LastJoin::%{_uuid}%} to now
플레이어가 가장 최근에 서버에 접속한 시간을 반환합니다.
function par_GetLastJoin(p:offlineplayer) :: date:
set {_uuid} to uuid of {_p}
return {{@ID}.LastJoin::%{_uuid}%}
플레이어의 퇴장 시간을 저장합니다.
function par_SetQuit(p:offlineplayer):
set {_uuid} to uuid of {_p}
set {{@ID}.Quit::%{_uuid}%} to now
플레이어의 퇴장 시간을 반환합니다.
function par_GetQuit(p:offlineplayer) :: date:
if {_p} is online: # 플레이어가 접속중이라면 현재 시간을 반환합니다.
return now
set {_uuid} to uuid of {_p}
return {{@ID}.Quit::%{_uuid}%}
플레이어의 플레이타임을 저장합니다.
function par_SetPlayTime(p:offlineplayer):
set {_uuid} to uuid of {_p}
set {_join} to par_GetLastJoin({_p})
set {_diff} to difference between {_join} and now
add {_diff} to {{@ID}.PlayTime::%{_uuid}%}
플레이어의 플레이타임을 반환합니다.
#플레이어의 플레이타임을 반환합니다.
function par_GetPlayTime(p:offlineplayer) :: timespan:
set {_uuid} to uuid of {_p}
if {_p} is online: # 플레이어가 접속중이라면 현재 시간까지의 플레이타임을 반환
set {_join} to par_GetLastJoin({_p})
set {_diff} to difference between {_join} and now
set {_time} to {{@ID}.PlayTime::%{_uuid}%}
add {_diff} to {_time}
return {_time}
return {{@ID}.PlayTime::%{_uuid}%}
플레이어의 접속 기록이 존재하는지 조회합니다.
function par_IsPlayed(p:offlineplayer) :: boolean:
set {_uuid} to uuid of {_p}
if {{@ID}.FirstJoin::%{_uuid}%} is not set:
return false
return true
날짜 정보를 읽을 수 있도록 변환합니다.
function par_TimeFormatted(d:date) :: string:
return {_d} formatted human-readable
시간 정보를 초 단위로 변환합니다.
function par_TimeFormattedToSeconds(t:timespan) :: number:
set {_time} to "%{_t}%"
replace " ", "and" and "seconds" with "" in {_time}
replace "days", "hours" and "minutes" with ":" in {_time}
set {_time::*} to {_time} split by ":"
set {_r::*} to par_Reversed({_time::*})
add round {_r::1} parsed as number to {_seconds}
add {_r::2} parsed as number * 60 to {_seconds}
add {_r::3} parsed as number * 3600 to {_seconds}
add {_r::4} parsed as number * 86400 to {_seconds}
return {_seconds}
배열을 역순으로 정렬합니다.
function par_Reversed(o::*:objects) :: objects:
set {_copy::*} to {_o::*}
loop {_o::*}:
set {_reversed::%loop-index%} to last element of {_copy::*}
remove {_reversed::%loop-index%} from {_copy::*}
return {_reversed::*}
주의사항
다음 항목들로 인하여 발생하는 문제는 도움을 드릴 수 없습니다.
1. 스크립트를 제작 환경과 다른 환경에서 작동하여 발생하는 오류
2. 다른 스크립트 및 기능과의 충돌 문제
3. 스크립트를 수정하여 발생하는 문제
4. 다른 스크립트와의 기능 연동 문제
제작 환경과 동일한 환경으로 적용하였으나 오류가 발생한다면 디스코드 연락처로 질문해주세요
질문하기 전에 다음 항목들을 먼저 확인해주세요
먼저 사용방법을 정확하게 숙지하였는지 확인해주세요
서버의 코어가 Spigot/Paper 코어인지 확인해주세요
서버의 버전이 제작 환경과 일치하는지 확인해주세요
스크립트 플러그인의 버전이 제작 환경과 일치하는지 확인해주세요
애드온이 모두 적용되어있는지 확인해주세요
애드온의 버전이 제작 환경과 일치하는지 확인해주세요
대부분의 문제는 오류메세지를 확인하여 해결 가능합니다 오류메세지를 읽어주세요
오류가 발생한다면 먼저 스스로 해결 가능한 오류인지 확인해주세요
오류가 발생한다면 먼저 구글링 및 Docs 검색을 통해 이미 알려진 해결 방법이 있는지 확인해주세요
그래도 문제 해결이 불가능하다면 오류가 발생하는 상황, 발생하는 오류 그리고 해결에 도움이 될 수 있는 자료들을 정리하여 말씀해주세요
많은 분들에게 도움을 드리고 싶으나, 시간이 절대적으로 부족한 상황입니다.
배포 자료가 쌓여감에 따라, 적용에 문제가 발생하신 분들이 자주 질문을 해주십니다.
여기서 발생하는 문제가, 서버를 개발하시는 분들의 환경이 제각각이라
제가 문제점을 파악하는데 정말 많은 시간이 요구됩니다.
간단한 문제라면 제가 휴식하는 시간을 줄여서 도움을 드릴 수 있으나
이보다 더 많은 시간을 들여 도움을 드리기에는 부담이 되는 실정입니다.
따라서, 아래 커뮤니티의 질문 게시판을 적극적으로 이용하시는 것을 추천드립니다.
클릭하여 링크 이동이 가능합니다.
버그 리포트는 언제나 환영합니다.
버그가 발생한 환경과, 상황을 기록하여 디스코드로 연락해주세요!
다운로드
디스코드 채널에 방문하여 다운로드.
MINGCRAFT
AnotherLevel Official
깃허브에 방문하여 다운로드.
Releases
여기서 다운로드.
가급적이면 깃허브에서 최신 버전을 다운로드 받는것을 권장합니다.
'마인크래프트 > 스크립트' 카테고리의 다른 글
[Skript 배포] 세부 옵션 커스텀이 가능한 스텟 스크립트 <RPG-Pack Stat.sk> (0) | 2021.04.13 |
---|---|
[Skript 배포] 레벨 시스템을 커스텀 해보자 <Experience API> (2) | 2021.04.11 |
[Skript 배포] 배포 스크립트 모아보기 (0) | 2021.03.18 |
[Skript 배포] 사망 시 아이템을 지켜보자! <ItemBind> (0) | 2021.03.16 |
[Skript 배포] 직접 디자인한 상점을 만들어보자! <Custom Shop> (0) | 2021.03.15 |