Skip to content

Commit a8d22c1

Browse files
committed
QuickSort release
0 parents  commit a8d22c1

15 files changed

Lines changed: 1287 additions & 0 deletions

File tree

.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: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# ⚡ QuickSort — плагин для сортировки инвентаря в Minecraft
2+
3+
> 🧱 **Совместимость:** Paper / Spigot / Purpur 1.21.8
4+
> 💡 **Использование:** SHIFT + ПКМ по пустому слоту (в инвентаре игрока или контейнера)
5+
6+
---
7+
8+
## 📖 Описание
9+
10+
**QuickSort** — лёгкий и автономный плагин, который автоматически сортирует предметы в инвентарях игрока и контейнерах (сундуки, шалкеры, бочки и т.п.).
11+
Плагин распределяет предметы по категориям (оружие, броня, инструменты, еда, блоки, зачарованные книги, зелья и т.д.) и внутри категорий применяет детальную сортировку:
12+
13+
- По заранее заданному порядку материалов (CategoryManager)
14+
- По названию предмета
15+
- По количеству (убывание)
16+
- По зачарованиям (поддержка обычных предметов и `ENCHANTED_BOOK`)
17+
- Для зелий — по эффекту, уровню и длительности
18+
19+
---
20+
21+
## ⚙️ Возможности
22+
23+
- ✅ Сортировка инвентаря игрока (SHIFT + ПКМ в пустом слоте)
24+
- ✅ Сортировка контейнеров: сундуки, шалкеры, бочки, воронки, дропперы, диспенсеры
25+
- ✅ Поддержка зачарованных книг (`EnchantmentStorageMeta`)
26+
- ✅ Поддержка зелий и пользовательских эффектов
27+
- ✅ Минимальная нагрузка на сервер, простая установка
28+
- ✅ Права доступа: `quicksort.sort`
29+
30+
---
31+
32+
## 🧭 Как использовать
33+
34+
1. Скачайте **последний релиз** из раздела [Releases](../../releases)
35+
2. Скопируйте `.jar` в папку `plugins/`
36+
3. Перезапустите сервер или выполните `/reload` (рекомендуется перезагрузка сервера)
37+
4. В игре:
38+
- **SHIFT + ПКМ в пустом слоте инвентаря** — сортирует инвентарь игрока
39+
- **SHIFT + ПКМ в пустом слоте открытого контейнера** — сортирует содержимое контейнера
40+
41+
---
42+
43+
## 🧱 Совместимость
44+
45+
| Сервер | Версия | Статус |
46+
|--------|--------|--------|
47+
| Paper | 1.21.8 ||
48+
| Spigot | 1.21.8 ||
49+
| Purpur | 1.21.8 ||
50+
51+
---
52+
53+
## 🧾 Права доступа
54+
55+
| Permission | По умолчанию | Описание |
56+
|------------|--------------:|----------|
57+
| `quicksort.sort` | `true` | Позволяет игроку использовать сортировку (SHIFT + ПКМ) |
58+
59+
---
60+
61+
## 🧠 Технические детали
62+
63+
- API: Bukkit / Paper 1.21.8
64+
- Язык: Java 21+
65+
- Без внешних зависимостей
66+
- Ключевые классы: `SortManager`, `CategoryManager`, `EventListener`, `QuickSort`
67+
68+
---
69+
70+
## 🧪 Сборка
71+
72+
```
73+
gradle clean build
74+
```
75+
76+
Готовый JAR появится в `build/libs/`.
77+
78+
---
79+
80+
## 🧾 Пример работы
81+
82+
```
83+
До сортировки:
84+
🧪 Potion of Regeneration I
85+
🗡️ Wooden Sword ×1
86+
🥩 Cooked Beef ×5
87+
📕 Enchanted Book (1x)
88+
🥩 Cooked Beef ×3
89+
🧪 Potion of Regeneration II
90+
91+
После сортировки:
92+
🗡️ Wooden Sword ×1
93+
🥩 Cooked Beef ×8
94+
📕 Enchanted Book (1x)
95+
🧪 Potion of Regeneration II
96+
🧪 Potion of Regeneration I
97+
```
98+
99+
---
100+
101+
## 🧾 Лицензия
102+
103+
MIT License © 2025 FlyAwayMaking

build.gradle

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
group = 'com.flyaway.quicksort'
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+
}
21+
22+
dependencies {
23+
compileOnly 'io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT'
24+
}
25+
26+
tasks.jar {
27+
archiveBaseName.set("QuickSort")
28+
}

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)