Skip to content

Commit f038ae5

Browse files
committed
PlayerChecker - release
0 parents  commit f038ae5

File tree

11 files changed

+598
-0
lines changed

11 files changed

+598
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.gradle
2+
.idea
3+
build

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 FlyawayMaking
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

README.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# 🧍 PlayerChecker
2+
3+
**PlayerChecker** — это простой плагин для **Paper**, который позволяет быстро проверить, заходил ли игрок на сервер и узнать его текущую группу (ранг) через API **LuckPerms**.
4+
Идеально подходит для интеграции с веб-сайтами, системами авторизации или панелями управления игроками.
5+
6+
---
7+
8+
## ⚙️ Возможности
9+
10+
- Проверяет, заходил ли указанный игрок когда-либо на сервер.
11+
- Определяет его **ранг (primary group)** из **LuckPerms**.
12+
- Возвращает короткие статусы, удобные для парсинга внешними системами (RCON / HTTP).
13+
14+
---
15+
16+
## 🧩 Зависимости
17+
18+
Для корректной работы требуется установленный плагин:
19+
20+
```yml
21+
- LuckPerms
22+
```
23+
24+
---
25+
26+
## 💡 Команды
27+
28+
| Команда | Описание | Разрешение |
29+
|--------:|:---------|:----------------------------------|
30+
| `/checkplayer <ник>` | Проверяет наличие игрока и его ранг | `playerchecker.use` (по умолчанию `op`) |
31+
32+
---
33+
34+
## 📤 Форматы возвращаемых данных
35+
36+
Команда `/checkplayer <ник>` возвращает один из следующих форматов:
37+
38+
| Ответ | Описание |
39+
|------:|:---------|
40+
| `NOT_FOUND` | Игрок **никогда не заходил** на сервер и не найден в базе данных. |
41+
| `FOUND:NO_RANK` | Игрок найден, но у него **нет назначенной группы** (ранга) в LuckPerms. |
42+
| `FOUND:<rank>` | Игрок найден, и у него установлен ранг `<rank>`. Например: `FOUND:default`, `FOUND:vip`. |
43+
| `ERROR:<сообщение>` | Произошла внутренняя ошибка при выполнении команды. |
44+
45+
---
46+
47+
## 🧠 Примеры использования
48+
49+
**Пример 1 — игрок не найден:**
50+
```bash
51+
/checkplayer Steve
52+
# → NOT_FOUND
53+
```
54+
55+
**Пример 2 — найден без ранга:**
56+
```bash
57+
/checkplayer Alex
58+
# → FOUND:NO_RANK
59+
```
60+
61+
**Пример 3 — найден с рангом:**
62+
```bash
63+
/checkplayer Denis
64+
# → FOUND:vip
65+
```
66+
67+
---
68+
69+
## 🧱 Пример интеграции (RCON)
70+
71+
Пример вызова через mcrcon:
72+
```bash
73+
mcrcon -H 127.0.0.1 -P 25575 -p mypass "checkplayer Steve"
74+
# Ответ: FOUND:vip (или NOT_FOUND / FOUND:NO_RANK)
75+
```
76+
77+
Пример обработки в Python:
78+
```python
79+
result = rcon_command(f"checkplayer {username}").strip()
80+
if result.startswith("FOUND:"):
81+
rank = result.split("FOUND:")[1].strip()
82+
# rank может быть "NO_RANK" или реальный ранг
83+
elif result == "NOT_FOUND":
84+
# игрок не найден
85+
else:
86+
# обработка ошибок
87+
```
88+
89+
---
90+
91+
## 🛠 Установка
92+
93+
1. Скачайте **последний релиз** из раздела [Releases](../../releases)
94+
2. Помести `.jar` в папку `plugins/` сервера.
95+
3. Убедись, что установлен **LuckPerms**.
96+
4. Перезапусти сервер.
97+
5. Проверь работу командой:
98+
```bash
99+
/checkplayer <ник>
100+
```
101+
102+
---
103+
104+
## 🔍 Совместимость
105+
106+
| Платформа | Версия |
107+
|----------:|:-------|
108+
| Paper | 1.21+ |
109+
| LuckPerms | v5+ |
110+
111+
---
112+
113+
## 📜 Лицензия
114+
115+
Проект распространяется под лицензией **MIT**.

build.gradle

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
group = 'com.flyaway.playerchecker'
6+
version = '1.0.0'
7+
8+
java {
9+
toolchain {
10+
languageVersion = JavaLanguageVersion.of(21)
11+
}
12+
}
13+
14+
repositories {
15+
mavenCentral()
16+
maven {
17+
name = "papermc"
18+
url = "https://repo.papermc.io/repository/maven-public/"
19+
}
20+
maven { url = 'https://repo.lucko.me/' }
21+
}
22+
23+
dependencies {
24+
compileOnly 'io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT'
25+
compileOnly 'net.luckperms:api:5.4'
26+
}
27+
28+
tasks.jar {
29+
archiveBaseName.set("PlayerChecker")
30+
}

gradle/wrapper/gradle-wrapper.jar

44.4 KB
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
6+
zipStoreBase=GRADLE_USER_HOME
7+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)