Paper 1.21.4 плагин для полной подмены ванильного дропа блоков и мобов с гибкими настройками через YAML-конфигурацию.
- Полная замена ванильного дропа для любых блоков и мобов
- Два режима расчёта дропа:
WEIGHTED— суммируются веса, выпадает ровно один предмет из спискаINDEPENDENT— каждый предмет проверяется отдельно по своему шансу
- Гибкая система Fortune/Looting:
- Индивидуальное влияние зачарования на каждый предмет
- Настраиваемый коэффициент (
fortune-factor) - Выбор что увеличивает удача: шанс, количество или оба (
fortune-affects)
- Два формата количества:
- Диапазон:
amount: "1-5"(равные шансы) - Взвешенное количество:
drop-countс весами
- Диапазон:
- Система провайдеров — задел на интеграцию с кастомными предметами (ItemsAdder и др.)
- MiniMessage для кастомных имён предметов
- Silk Touch — автоматический обход кастомного дропа
- Горячая перезагрузка конфигурации командой
/adm reload
- Скомпилируйте плагин:
mvn clean package - Скопируйте
target/AdvancedDropManager-1.0-SNAPSHOT.jarв папкуplugins/вашего Paper-сервера - Запустите/перезапустите сервер
- Настройте
plugins/AdvancedDropManager/config.ymlпод свои нужды - Примените изменения:
/adm reload
| Команда | Описание | Право |
|---|---|---|
/adm |
Информация о плагине | advanceddropmanager.use |
/adm reload |
Перезагрузка конфигурации | advanceddropmanager.reload |
blocks: # Секция блоков
MATERIAL_NAME: # Ключ — Material блока
replace-default: true/false # Заменять ванильный дроп
roll-type: WEIGHTED/INDEPENDENT # Режим расчёта
loot: # Список предметов
- id: "unique_id"
provider: MINECRAFT
material: DIAMOND
chance: 75.0 # Шанс в % (для INDEPENDENT)
weight: 10.0 # Вес (для WEIGHTED)
fortune: true # Влияние удачи
fortune-factor: 1.5 # Коэффициент удачи
fortune-affects: CHANCE/AMOUNT/BOTH
amount: "1-3" # Диапазон количества
drop-count: # ИЛИ взвешенное количество
1: 90
2: 10
display-name: "<gold>Имя предмета</gold>"
mobs: # Секция мобов (аналогично блокам)
ENTITY_TYPE: # Ключ — EntityType моба
...Система суммирует weight всех предметов и выбирает ровно один. Параметр fortune: true может быть только у одного предмета в группе — если удача срабатывает, выпадает этот предмет; если нет — стандартный расчёт весов.
Для каждого предмета бросается отдельная кость на chance. Параметр fortune может быть включён у любого количества предметов.
Итоговое значение = Base × (1 + Level × Factor)
Где:
Base— базовый шанс или количествоLevel— уровень зачарования (Fortune/Looting)Factor— значениеfortune-factor
Алмазная руда с увеличенным шансом редкого дропа:
blocks:
DIAMOND_ORE:
replace-default: true
roll-type: INDEPENDENT
loot:
- id: "rare_diamond"
provider: MINECRAFT
material: DIAMOND
chance: 75.0
fortune: true
fortune-factor: 1.5
fortune-affects: CHANCE
drop-count:
1: 90
2: 10
display-name: "<gold>Редкий Алмаз</gold>"Зомби с Looting-зависимым дропом:
mobs:
ZOMBIE:
replace-default: true
roll-type: INDEPENDENT
loot:
- id: "rotten_flesh_drop"
provider: MINECRAFT
material: ROTTEN_FLESH
chance: 90.0
fortune: true
fortune-factor: 0.5
fortune-affects: AMOUNT
amount: "1-3"dev.solverna.advanceddropmanager/
├── AdvancedDropManager.java # Главный класс плагина
├── command/
│ └── AdvancedDropCommand.java # Команда /adm
├── config/
│ └── ConfigLoader.java # Загрузка и парсинг YAML
├── engine/
│ └── DropEngine.java # Движок расчёта дропа
├── listener/
│ ├── BlockDropListener.java # Слушатель BlockBreakEvent
│ └── MobDropListener.java # Слушатель EntityDeathEvent
├── model/
│ ├── FortuneAffects.java # Enum: CHANCE, AMOUNT, BOTH
│ ├── LootItem.java # Модель предмета
│ ├── LootTable.java # Таблица лута
│ └── RollType.java # Enum: WEIGHTED, INDEPENDENT
└── provider/
├── ItemProvider.java # Интерфейс провайдера
├── MinecraftItemProvider.java # Ванильный провайдер
└── ProviderRegistry.java # Реестр провайдеров
Для добавления поддержки кастомных предметов из других плагинов:
- Реализуйте интерфейс
ItemProvider - Зарегистрируйте провайдер в
ProviderRegistry - Используйте имя провайдера в поле
providerконфигурации
- Java 21+
- Paper 1.21.4
- Maven для сборки
Проект разработан для Solverna.