Плагин Fun NUnReal - командный блок с кастомными ивентами [1.0.2]

Иконка ресурса
Краткое описание:
Плагин который добавляет блок способностей
6
232

Предыдущие версии [3]

Последние обновления

1.0.2

Исправлена логика проверки мобов: теперь сущности динамичны и зависят от версии сервера...

1.0.1 (last github)

Различные фиксы и изменение крафта Все изменения можно посмотреть ТУТ
Смотреть еще...
🎮 NUnReal

Мощный плагин для Paper/Spigot Minecraft, добавляющий систему способностей по чанкам и пользовательские генераторы мобов.

Версия: 1.0.2 | API: Minecraft 1.21 | Разработчик: noloverme | Статус: Активно поддерживается

Обзор

NUnReal преобразует геймплей Minecraft, предоставляя систему активируемых по чанкам способностей. Игроки могут размещать специальные блоки способностей в чанках, чтобы разблокировать мощные модификаторы, влияющие на скорость добычи, полёты, сбор предметов, взаимодействие с сущностями, рост растений и многое другое.

Основные возможности:

  • 15+ Способностей - От добычи до полёта, от магнита до вечной сытости
  • 27+ Мобов - Все враждебные и мирные мобы с кастомными рецептами
  • Система Чанков - Один блок на чанк с постоянным сохранением данных
  • Полная конфигурируемость - Все параметры регулируются через config.yml
  • Продвинутая обработка событий - Кастомный крафт, взаимодействие, состояния игрока
  • Асинхронные задачи - Магнит предметов и проверка чанков работают без лагов

Установка

Требования:
  • Java 21+
  • Paper/Spigot Server (протестировано на 1.21.8 Paper)
  • Maven 3.6+ (для сборки)

Шаг 1: Подготовка кода

Bash:
git clone https://github.com/noloverme/NUnReal/ && cd NUnReal

Шаг 2: Сборка проекта

Bash:
mvn clean package

Скомпилированный JAR появится по пути: target/NUnReal-1.0.2.jar

Шаг 3: Установка на сервер

Bash:
cp target/NUnReal-1.0.2.jar /path/to/server/plugins/

Шаг 4: Перезагрузка сервера

Код:
/restart

Или просто перезагрузите сервер полностью.

Шаг 5: Проверка

Код:
/nunreal give ваш_ник

Вы должны получить блок способностей в инвентарь.

Конфигурация

Плагин полностью настраивается через config.yml. При первом запуске автоматически создаётся файл конфигурации со значениями по умолчанию.

1. Крафт (craft)

Определяет рецепт создания блока способностей:

YAML:
craft:
  enabled: true
  shape:
    - "C D E"
    - "F L F"
    - "M N O"
  slots:
    C: CRYING_OBSIDIAN
    D: AMETHYST_CLUSTER
    E: OBSIDIAN
    F: TINTED_GLASS
    L: TOTEM_OF_UNDYING
    M: ENCHANTED_GOLDEN_APPLE
    N: END_CRYSTAL
    O: TURTLE_HELMET
  result-name: "§6Блок Способностей"
  result-lore:
    - "§7Поставьте и нажмите ПКМ"
    - "§7чтобы выбрать способность"

Логика: Рецепт будет выглядеть как:
Код:
[A] [B] [C]
[D] [D] [D]
[D] [D] [D]

2. Параметры блоков (blocks)

Управляет поведением блоков способностей:

YAML:
blocks:
  one-per-chunk: true
  require-pickaxe: true
  break-time-ticks: 20
  insta-break: false
  drop-item: true
  messages:
    placed: "§aБлок способностей установлен!"
    already-exists: "§cВ этом чанке уже есть блок!"
    broken: "§eБлок способностей разрушен."
    need-pickaxe: "§cИспользуйте кирку!"

3. Экономика (economy)

Система стоимости способностей:

YAML:
economy:
  default-cost:
    material: DIAMOND
    amount: 1
  
  ability-costs:
    MINING:
      material: DIAMOND
      amount: 20
    
    FLIGHT:
      material: NETHERITE_INGOT
      amount: 10
    
    KEEP_RESOURCES:
      material: DIAMOND
      amount: 32

Логика стоимости: Когда игрок активирует способность, из его инвентаря удаляются предметы согласно конфигурации.

4. Меню (menu)

Настройка интерфейса выбора способностей:

YAML:
menu:
  title: "§8Выбор способности"
  size: 18
  filler:
    enabled: true
    material: GRAY_STAINED_GLASS_PANE
    name: " "
  
  abilities:
    MINING:
      slot: 0
      material: GOLDEN_PICKAXE
      name: "§eКопание"
      lore:
        - "§7+30.0 к скорости ломания"
        - ""
        - "§eЦена: 20 алмазов"
      active-lore-line: "§aАктивно"

5. Способности (abilities)

Детальные параметры каждой способности:

YAML:
abilities:
  MINING:
    attribute: BLOCK_BREAK_SPEED
    value: 30.0
  
  MAGNET:
    radius: 8.0
    speed: 0.30
    interval-ticks: 5
    max-items-per-tick: 100
  
  FLIGHT:
    fly-speed: 0.1
    exit-protection: SLOW_FALLING
    slow-falling-seconds: 5

6. Генераторы мобов (spawners)

Система крафта для спавнеров:

YAML:
spawners:
  enabled: true
  require-silk-touch: true
  
  recipes:
    SKELETON:
      enabled: true
      shape:
        - "G C G"
        - "D B D"
        - "A A A"
      ingredients:
        G: "BONE"
        C: "BOW"
        B: "NETHERITE_INGOT"
        D: "ARROW"
        A: "DIAMOND"

Логика рецепта: Верстак будет требовать расстановку предметов в виде:
Код:
[BONE]        [BOW]         [BONE]
[ARROW]       [NETHERITE]   [ARROW]
[DIAMOND]     [DIAMOND]     [DIAMOND]

Способности

В плагине доступно 15 уникальных способностей:

Способности на основе атрибутов:

  • MINING - +30 к скорости ломания (20 💎). Ускоряет добычу всех блоков в чанке
  • LONG_ARM - +15 к дальности взаимодействия (20 💎). Позволяет взаимодействовать с блоками издалека
  • ANTI_KNOCKBACK - +30 к сопротивлению отдаче (1 💎). Защита от отброса при попадании
  • LUCK - +30 к удаче (5 💎). Больше дропа, чаще редкие предметы
  • DWARF - -0.75 к масштабу (1 💎). Игрок становится меньше ростом
  • FALL_RESIST - +10 к безопасной высоте падения (1 💎). Можно падать без урона с большей высоты

Специальные способности:

  • GROWTH - Растения растут на 50% быстрее (5 💎). Ускоряет рост пшеницы, тыквы и т.д.
  • MAGNET - Автосбор выброшенных предметов (10 💎). Предметы притягиваются к игроку
  • FLIGHT - Полёт в чанке (10 🔷). Игроки могут летать внутри чанка
  • INFINITE_TRADES - Жители не исчерпывают сделки (10 🔷). Бесконечные трейды с жителями
  • KEEP_RESOURCES - Сохранение ресурсов при смерти (32 💎). Предметы и опыт не теряются
  • SATURATION - Голод не уменьшается (3 💎). Полоса голода "замораживается"
  • AUTO_SMELT - Руда переплавляется автоматически (15 💎). Железо, золото, медь → слитки
  • HOLY_GROUND - Блокировка спавна враждебных мобов (20 💎). Натуральный спавн мобов невозможен
  • THRIFTY_CRAFT - 15% шанс вернуть ингредиент (2 🔷). При крафте на верстаке может вернуться 1 ингредиент

💎 = Алмаз | 🔷 = Незеритовый слиток

Команды

Все команды требуют права nunreal.admin (по умолчанию = OP).

/nunreal reload

Перезагружает конфигурацию и переинициализирует все рецепты.

Код:
Использование: /nunreal reload
Результат:
  ✓ Конфиг перезагружен
  ✓ Рецепты способностей обновлены
  ✓ Рецепты спавнеров обновлены
  ✓ Меню переинициализировано

Когда использовать: После редактирования config.yml

/nunreal give [игрок]

Выдаёт блок способностей игроку. Если игрок не указан, выдаёт себе.

Код:
Примеры:
  /nunreal give
  /nunreal give PlayerName

/nunreal givespawner <моб> [игрок]

Выдаёт спавнер определённого моба.

Код:
Примеры:
  /nunreal givespawner SKELETON
  /nunreal givespawner SKELETON PlayerName

Доступные мобы:
Враждебные:    SKELETON, ZOMBIE, WITHER_SKELETON, GHAST, CREEPER,
               HOGLIN, SHULKER, SPIDER, BLAZE, VINDICATOR,
               MAGMA_CUBE, SLIME, ENDERMAN, DROWNED

Мирные:        COW, MOOSHROOM, BREEZE, SNIFFER, IRON_GOLEM,
               ARMADILLO, WOLF, TURTLE, VILLAGER, SALMON,
               COD, CAT, SNOW_GOLEM

Взаимодействие игроков:

1. Поместите блок способностей в чанк (ПКМ)
2. Нажмите ПКМ по блоку → откроется меню способностей
3. Кликните на способность в меню
4. Проверьте стоимость и подтвердите активацию

Права доступа

  • nunreal.admin - Доступ к командам администратора (OP)
  • nunreal.craft - Право крафтить блоки способностей (TRUE)
  • nunreal.use - Право использовать меню способностей (TRUE)
  • nunreal.spawner.place - Право устанавливать блоки способностей (TRUE)
  • nunreal.spawner.break - Право разрушать блоки способностей (OP)

Примеры установки прав через LuckPerms:

Код:
/lp user PlayerName permission set nunreal.admin true
/lp user PlayerName permission set nunreal.craft true

Структура проекта

Код:
NUnReal/
├── src/main/java/com/noloverme/nunreal/
│   ├── NUnReal.java
│   ├── ability/
│   │   ├─ AbilityType.java
│   │   ├─ AbilityManager.java
│   │   ├─ AbilityApplier.java
│   │   └─ FlightManager.java
│   ├── block/
│   │   ├─ CommandBlockData.java
│   │   └─ CommandBlockManager.java
│   ├── chunk/
│   │   └─ ChunkManager.java
│   ├── spawner/
│   │   ├─ SpawnerType.java
│   │   ├─ SpawnerItemFactory.java
│   │   └─ SpawnerRecipeManager.java
│   ├── craft/
│   │   └─ CommandBlockRecipe.java
│   ├── config/
│   │   └─ ConfigManager.java
│   ├── command/
│   │   └─ NUnRealCommand.java
│   ├── menu/
│   │   ├─ AbilityMenu.java
│   │   └─ MenuListener.java
│   ├── listener/
│   │   ├─ BlockPlaceListener.java
│   │   ├─ BlockBreakListener.java
│   │   └─ ... (и другие)
│   └── task/
│       ├─ ChunkCheckTask.java
│       └─ MagnetTask.java
├── src/main/resources/
│   ├── plugin.yml
│   └── config.yml
├── pom.xml
└── target/
    └── NUnReal-1.0.2.jar

Как это работает

Логика активации способности:

Код:
1. Крафт → Игрок создаёт блок способностей по рецепту
   ↓
2. Установка → Игрок размещает блок в чанке (ПКМ)
   ↓
3. Взаимодействие → Игрок нажимает ПКМ по блоку
   ↓
4. Меню → Открывается GUI с выбором способностей
   ↓
5. Активация → Игрок выбирает способность
   ↓
6. Проверка → Система проверяет стоимость
   ↓
7. Применение → Если хватает ресурсов:
              - Ресурсы удаляются из инвентаря
              - Способность применяется ко ВСЕМ игрокам в чанке
              - Данные сохраняются

Система сохранения данных:

  • Загрузка: При старте плагина все данные блоков загружаются из памяти
  • Хранение: Во время работы данные хранятся в памяти (быстро)
  • Сохранение: При остановке плагина данные записываются на диск
  • Восстановление: При следующем старте данные восстанавливаются

Асинхронные задачи:

Два фоновых процесса работают отдельно от основного потока:

ChunkCheckTask (каждые 20 тиков = 1 сек по умолчанию)
  • Проверяет, в каком чанке находится игрок
  • Если чанк изменился, переприменяет способности
  • Предотвращает "застревание" способностей при движении

MagnetTask (каждые 5 тиков по умолчанию)
  • Ищет выброшенные предметы в радиусе 8 блоков
  • Притягивает их к игроку со скоростью 0.30
  • Обрабатывает до 100 предметов за тик (для оптимизации)

Примеры использования

Пример 1: Создание "Зоны добычи"

Цель: Создать чанк, где добыча происходит в 2 раза быстрее.

Конфигурация:
YAML:
economy:
  ability-costs:
    MINING:
      material: DIAMOND
      amount: 10

Действия:
Код:
1. /nunreal give
2. Поместить блок в чанк
3. ПКМ по блоку → выбрать MINING
4. Подтвердить (10 алмазов)
5. Готово! Добыча ускорена в чанке

Пример 2: "Ферма с автоплавкой"

Цель: Руда переплавляется сразу в слитки.

Действия:
Код:
1. Активировать способность AUTO_SMELT в чанке (15 💎)
2. Копать руду в чанке
3. Вместо руды падают сразу слитки
4. Экономия времени на плавку

Пример 3: "Зона безопасности"

Цель: Создать зону, где враги не спауняются и игрок не падает.

Действия:
Код:
1. Активировать HOLY_GROUND (20 💎)
2. Активировать FALL_RESIST (1 💎)
3. В чанке враги не спауняются
4. Можно безопасно падать с высоты

Пример 4: Кастомный спавнер

Логика:
Код:
Рецепт требует:
[BONE] [BONE] [BONE]
[BONE] [SPAWNER] [BONE]
[BONE] [BONE] [BONE]

Просто вкладываешь ингредиенты на верстак - получаешь спавнер скелета!

Решение проблем

Плагин не загружается

Симптомы: В логе консоли ошибки при загрузке.

Решение:
Код:
1. Проверить версию Java: java -version
   → Должно быть Java 21 или выше

2. Проверить plugin.yml:
   main: com.noloverme.nunreal.NUnReal

3. Посмотреть логи:
   tail -f logs/latest.log

4. Пересоздать конфиг:
   rm plugins/NUnReal/config.yml
   /reload

Блок способностей не появляется в крафте

Симптомы: Даже с правильными ингредиентами блок не крафтится.

Решение:
YAML:
# Проверить в config.yml:
craft:
  enabled: true  # Должно быть true!

# Запустить команду:
/nunreal reload

# Проверить права:
# Игрок должен иметь nunreal.craft

Способность не активируется

Симптомы: Выбираю способность, но эффект не применяется.

Проверочный список:
Код:
□ Достаточно ресурсов в инвентаре?
□ Права nunreal.use установлены?
□ Блок находится в правильном чанке?
□ В чанке уже есть другой блок способностей?
  (система ограничивает: один блок на чанк)
□ Способность включена в config.yml?

Решение:
Bash:
/nunreal reload
/nunreal give
tail -f logs/latest.log | grep -i nunreal

Полёт не работает

Симптомы: Активирована способность FLIGHT, но полёт не включается.

Решение:
YAML:
# В config.yml проверить:
abilities:
  FLIGHT:
    fly-speed: 0.1  # Не должна быть 0!
    exit-protection: SLOW_FALLING

# Убедиться что:
□ Вы находитесь в чанке с активированной способностью
□ Нижняя часть вашего тела в этом чанке
□ Нет конфликтов с другими плагинами полёта

# Отладка:
1. Смена чанка: ПКМ ПКМ ПКМ (нажимайте края чанка)
2. Переход в спектром режим: /gamemode spectator
3. Возврат: /gamemode survival
4. Переподключение: /disconnect → повторное подключение

Кастомный рецепт спавнера не работает

Симптомы: Вкладываю ингредиенты на верстак, но спавнер не создаётся.

Проверка:
YAML:
spawners:
  enabled: true
  recipes:
    SKELETON:
      enabled: true  # true = включен!
      shape:
        - "G C G"
        - "D B D"
        - "A A A"
      ingredients:
        G: "BONE"
        C: "BOW"
        B: "NETHERITE_INGOT"
        D: "ARROW"
        A: "DIAMOND"

Проверка ингредиентов:
Код:
1. Все ли ингредиенты существуют в Minecraft?
   /give @s BONE 1

2. Все ли буквы используются в shape и определены в ingredients?
   shape:
     - "G C G"   # Используется: G, C
     - "D B D"   # Используется: D, B
     - "A A A"   # Используется: A
   
   Итого: G, C, D, B, A ✓

3. Все ли используемые буквы определены?
   ingredients:
     G: "BONE" ✓
     C: "BOW" ✓
     D: "ARROW" ✓
     B: "NETHERITE_INGOT" ✓
     A: "DIAMOND" ✓

Решение:
Bash:
/nunreal reload
tail -f logs/latest.log | grep -i "recipe"
/nunreal givespawner SKELETON

Производительность

Оптимизация для больших серверов

Уменьшить нагрузку ChunkCheckTask:
YAML:
task:
  interval-ticks: 40  # Вместо 20 (проверка каждые 2 сек)

Оптимизировать магнит:
YAML:
abilities:
  MAGNET:
    radius: 6.0
    interval-ticks: 10
    max-items-per-tick: 50

Ускорить разрушение блока:
YAML:
blocks:
  break-time-ticks: 10

Мониторинг TPS в игре: /tps

Если TPS падает при активации способностей:
1. Отключить асинхронные задачи (временно)
2. Уменьшить radius магнита
3. Увеличить interval-ticks

Сборка и разработка

Требования для разработки:
  • Java 21 JDK
  • Maven 3.6+
  • Git
  • IntelliJ IDEA или VS Code (рекомендуется)

Команды Maven:

Bash:
mvn clean package              # Полная сборка с очисткой
mvn package -DskipTests        # Быстрая сборка (без тестов)
mvn compile                     # Компиляция без упаковки
mvn clean                       # Очистка

Заметки

  • Все сообщения в игре на русском языке - настраиваются через config.yml
  • Плагин использует Bukkit Attribute System для применения модификаторов
  • Обнаружение чанков автоматическое через Bukkit API
  • Все стоимости настраиваются отдельно для каждой способности
  • Рецепты спавнеров поддерживают 3×3 сетку (9 ингредиентов максимум)
  • Данные сохраняются при выключении плагина и загружаются при включении

Спасибо за использование NUnReal!

Для вопросов и предложений обратитесь к разработчику или оставьте issue в репозитории.
  • javaw_F0e2wQ8ncb.png
    javaw_F0e2wQ8ncb.png
    209,1 КБ · Просмотры: 11
  • javaw_OpptCeNoSL.png
    javaw_OpptCeNoSL.png
    180,9 КБ · Просмотры: 11
  • javaw_41qXSnQ5vW.png
    javaw_41qXSnQ5vW.png
    154,9 КБ · Просмотры: 11

Автор

neon_boy

Еще ресурсы от neon_boy

YoPayment - плагин на оплату с ЮКассы
Плагин который добавляет систему оплаты через ЮКассу

Последние отзывы

justpremadeaccount
justpremadeaccount
5,00 звёзд
Версия: 1.0.1 (last github)
Реально МОЩНЫЙ
ВерхНиз