Velocity 프록시 서버용 대기열 및 재접속 관리 플러그인입니다. LimboAPI를 사용하여 가상 대기 서버를 구현합니다.
메인 서버가 예기치 않게 종료되거나 재시작될 때, 플레이어는 자동으로 가상 대기 서버(Reconnect)로 이동합니다. 서버가 다시 온라인이 되면 자동으로 재접속됩니다.
서버가 최대 플레이어 수에 도달하면 새로운 접속자는 가상 대기열 서버(Queue)로 이동합니다. 자리가 생기면 순서대로 서버에 입장합니다.
서버가 다시 온라인이 되면 다음 순서로 플레이어가 입장합니다:
continuous.admin권한 보유자 -max-player구성을 무시하며 대기열을 건너뛰고 즉시 서버에 입장continuous.bypass권한 보유자 - 대기열을 건너뛰고 즉시 서버에 입장- Reconnect 대기자 - 원래 서버에 있다가 서버 다운으로 Reconnect로 이동한 플레이어
continuous.priority권한 보유자 - 각 대기열 내에서 우선순위를 받음- 기존 Queue 대기자 - 서버 다운 전부터 Queue에서 대기하던 플레이어
- 신규 Queue 대기자 - 서버가 켜진 후 새로 접속한 플레이어
| 서버 상태 | 처리 흐름 |
|---|---|
| ONLINE · 만원 | - continuous.admin 권한자는 즉시 메인 서버 입장- 신규 접속자는 Queue에서 대기 |
| ONLINE · 여유 · 대기자 있음 | - continuous.bypass 권한자는 메인 서버 입장- Queue 대기자는 순서대로 메인 서버로 이동 - 신규 접속자는 Queue가 비어있는 경우 메인 서버로 이동 |
| ONLINE · 여유 · 대기자 없음 | - 신규 접속자는 바로 메인 서버 입장 |
| OFFLINE | - 모든 접속자는 Reconnect 서버에서 대기 |
- Velocity 3.4.0 이상
- LimboAPI 1.1.27 이상
- Java 21 이상
- LimboAPI를 다운로드하여
plugins폴더에 넣습니다. - Continuous JAR 파일을
plugins폴더에 넣습니다. - Velocity 서버를 시작합니다.
plugins/continuous/폴더에서 설정 파일을 수정합니다.
대기열 서버 설정 파일입니다.
trigger: "((?i)^(server closed|server is restarting|multiplayer\\.disconnect\\.server_shutdown))+$"
server:
check: 1000 # 서버 상태 확인 간격 (ms)
timeout: 500 # 서버 핑 타임아웃 (ms)
delay: 2000 # 서버 접속 지연 시간 (ms)
world:
dimension: OVERWORLD
gamemode: SPECTATOR
light-level: 15
location:
x: 0
y: 100
z: 0
yaw: 90.0
pitch: 0.0
schematic:
load: false
type: WORLDEDIT_SCHEM
file: queue.schem
offset:
x: 0
y: 64
z: 0
full:
message: "Server is full"
title:
title: ""
subtitle: "<red>Server is full</red>"
queue:
message: "Queue: {0}"
title:
title: ""
subtitle: "Queue: {0}"
max-player:
enabled: false
size: 100
connect:
message: "Connecting!"
title:
title: ""
subtitle: "<green>Connecting...</green>"재접속 대기 서버 설정 파일입니다.
trigger: "((?i)^(server closed|server is restarting|multiplayer\\.disconnect\\.server_shutdown))*$"
server:
check: 1000
timeout: 500
delay: 2000
world:
dimension: OVERWORLD
gamemode: SPECTATOR
light-level: 15
location:
x: 0
y: 100
z: 0
yaw: 90.0
pitch: 0.0
schematic:
load: false
type: WORLDEDIT_SCHEM
file: reconnect.schem
offset:
x: 0
y: 64
z: 0
offline:
message: "Server is restarting!"
title:
title: ""
subtitle: "<gold>Server is restarting...</gold>"
connect:
message: "Connecting!"
title:
title: ""
subtitle: "<green>Connecting...</green>"| 권한 | 설명 |
|---|---|
continuous.admin |
max-player 구성을 무시하며 대기열을 건너뛰고 즉시 서버에 입장합니다 |
continuous.bypass |
서버에 여유가 있을 때 대기열을 건너뛰고 즉시 서버에 입장합니다 |
continuous.priority |
각 대기열 내에서 우선순위를 받습니다 |
continuous.reload |
/continuous reload 명령어를 사용할 수 있습니다 |
| 명령어 | 설명 |
|---|---|
/continuous reload |
설정 파일을 다시 불러옵니다 |
WorldEdit .schem 파일을 사용하여 대기 서버의 월드를 꾸밀 수 있습니다.
plugins/Continuous/Schematics/폴더에.schem파일을 넣습니다.- 설정 파일에서
schematic.load: true로 변경합니다. schematic.file에 파일 이름을 지정합니다.
./gradlew build빌드된 JAR 파일은 build/libs/ 폴더에 생성됩니다.
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
- LimboAPI - Elytrium
- 개발: IPECTER