Плагин MUTEBUYER [v1.0]

MUTEBUYER
Краткое описание:
Точная копия скупщика с FunTime
10
125
  • Лайк 0
Реакции:1 пользователя
Для версий
  1. 1.21.✘
Источник
https://t.me/mutestudio
Java
  1. Java 21
  2. Java 22
  3. Java 23
  4. Java 25
Зависимости
Vault, Essentials
MUTEBUYER — удобный скупщик предметов как на популярных серверах:
  • 🛒 Продажа в 1 клик — можно продавать пачками (16, 64) или сразу всё из инвентаря.
  • ⚡ Авто-скупка на кнопку Q — нажал на предмет, и он сам продается на фоне во время фарма.
  • 📈 Прокачка уровней — чем больше продаешь, тем выше множитель и больше денег за каждый товар.
  • 🔥 Спекулянт каждые 2 часа — скупает 3 случайных предмета в разы дороже обычного, но с лимитом.
  • 👥 Прокачка с другом — можно объединиться по команде /buyer friend и качать уровни вместе.
  • 🎬 Анимации и звуки — плавное открытие менюшек и приятная озвучка всех кликов.

Небольшой обзор по скупщику:
1791063548940
1791063565743
1791063572542
1791063581660
1791063605946
1791063618525
1791063627364
1791063638603
1791063649934
1791063664319
1791063673004
1791063682361


Конфиг плагина:

Код:
# ИНСТРУКЦИЯ ПО СОЗДАНИЮ СВОИХ МЕНЮ
# 1. СОЗДАНИЕ ФАЙЛА:
#    Создайте файл с расширением .yml в папке: plugins/AFKDEVBUYER/menus/<имя_меню>.yml
#    (Например: menus/weapons.yml или menus/alchemy.yml).
#
# 2. СТРУКТУРА МЕНЮ:
#    title: '&#FF0000&lНазвание Меню'  # Заголовок (поддерживает HEX &#RRGGBB / #RRGGBB и &)
#    size: 27                          # Размер GUI (9, 18, 27, 36, 45, 54)
#
# 3. НАСТРОЙКА ПРЕДМЕТОВ (секция items):
#    Каждый предмет имеет уникальный ключ (item_1, item_2 и т.д.):
#      material: DIAMOND               # Материал из Bukkit / Minecraft
#      name: '&#FF6600Название'        # Отображаемое имя
#      lore: [...]                     # Описание предмета
#      open_menu: 'main'               # (Опционально) При клике открывает другое меню (например, main)
#
# 4. КАК СДЕЛАТЬ ТОВАР ДЛЯ ПРОДАЖИ:
#    Плагин автоматически делает предмет продаваемым, если в его lore есть ключевые строки:
#      - '&#FF6600⛁ &#FFFFE6Цена за &#FF660016 шт&#FFFFE6: &#FFFF00$3,200'  <- задает цену и базовый шаг
#      - '&#FF6600[Q]&#FFFFE6 авто-скупка: &#FF0000выключена'                 <- включает поддержку авто-скупки
#      - ' &#00FF00❱❱ &#FFFFE6Продать &#00FF0016 шт'                         <- строки выбора
#      - ' &#4D4D4D❱❱ &#8C8C8CПродать &#FFFF0064 шт'
#      - ' &#4D4D4D❱❱ &#8C8C8CПродать &#FFFF00ВСЁ'
#    Дополнительные маркеры для lore:
#      - '&#FFFFE61 шт идёт за &#FFFF005.00&#FFFFE6 шт прокачки'            <- множитель опыта (по умолч. 1.0)
#      - '&#FFFF00⚠ &#FFFFE6Не засчитывается в прокачку'                     <- товар продается без выдачи опыта
#
# 5. СПЕЦИАЛЬНЫЕ ПРЕДМЕТЫ В МЕНЮ:
#    - Часы режима прокачки: material: CLOCK, имя должно содержать 'Режим прокачки'.
#    - Бутылек прокачки:     material: EXPERIENCE_BOTTLE (автоматически обновляет уровень и множитель).
#    - Стрелка «Назад»:      material: TIPPED_ARROW или имя содержит 'Главное меню'.
#
# 6. АНИМАЦИЯ ПОЯВЛЕНИЯ (секция animation):
#    Позволяет покадрово заполнять слоты и проигрывать звуки:
#      animation:
#        - tick: 1
#          opcodes:
#            - st: item_1 0            <- st: <ключ_предмета> <номер_слота> (выставить в слот)
#            - rm: 5                   <- rm: <номер_слота> (очистить слот)
#            - sound: BLOCK_GLASS_PLACE<- sound: <ИМЯ_ЗВУКА> (проиграть звук)
#
# 7. ПОДКЛЮЧЕНИЕ К ГЛАВНОМУ МЕНЮ:
#    В файле menus/main.yml добавьте кнопку с параметром open_menu: '<имя_файла_без_yml>'.
#    Также меню всегда доступно по команде: /buyer <имя_файла_без_yml>

# Настройки таймеров
Settings:
  auto-sell-interval-ticks: 60     # Проверка авто-скупки (60 тиков = 3 сек)
  speculator-refresh-minutes: 120  # Смена товаров спекулянта (в минутах, 120 = 2 часа)

# Настройка всех звуков плагина (для отключения укажите sound: NONE)
Sounds:
  button-click: { sound: UI_BUTTON_CLICK, volume: 1.0, pitch: 1.0 }
  switch-mode: { sound: UI_BUTTON_CLICK, volume: 1.0, pitch: 1.2 }
  sell-success: { sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 1.0, pitch: 1.2 }
  sell-speculator: { sound: ENTITY_PLAYER_LEVELUP, volume: 1.0, pitch: 1.5 }
  sell-fail-empty: { sound: ENTITY_VILLAGER_NO, volume: 1.0, pitch: 1.0 }
  sell-fail-limit: { sound: ENTITY_VILLAGER_NO, volume: 1.0, pitch: 0.8 }
  sell-fail-not-enough: { sound: BLOCK_NOTE_BLOCK_BASS, volume: 1.0, pitch: 0.7 }
  autosell-on: { sound: BLOCK_NOTE_BLOCK_PLING, volume: 1.0, pitch: 1.5 }
  autosell-off: { sound: BLOCK_NOTE_BLOCK_PLING, volume: 1.0, pitch: 0.8 }
  autosell-trigger: { sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 0.8, pitch: 1.2 }
  speculator-refresh: { sound: UI_TOAST_CHALLENGE_COMPLETE, volume: 1.0, pitch: 1.0 }
  progression-success: { sound: ENTITY_PLAYER_LEVELUP, volume: 1.0, pitch: 1.4 }
  progression-fail: { sound: ENTITY_VILLAGER_NO, volume: 1.0, pitch: 0.9 }
  friend-invite: { sound: UI_BUTTON_CLICK, volume: 1.0, pitch: 1.2 }
  friend-accept: { sound: UI_TOAST_CHALLENGE_COMPLETE, volume: 1.0, pitch: 1.0 }
  friend-remove: { sound: BLOCK_NOTE_BLOCK_BASS, volume: 1.0, pitch: 0.8 }

# Прокачка: Need-Stacks (стаков для лвл), Booster (множитель), Limit-Stacks (макс. стаков 1 ресурса в опыт)
Manager-Levels:
  eat:
    Max-Level: 4
    1: { Need-Stacks: 15, Booster: 1.0, Limit-Stacks: 7 }
    2: { Need-Stacks: 30, Booster: 1.2, Limit-Stacks: 9 }
    3: { Need-Stacks: 45, Booster: 1.4, Limit-Stacks: 11 }
    4: { Need-Stacks: 60, Booster: 1.6, Limit-Stacks: 13 }
  meat:
    Max-Level: 4
    1: { Need-Stacks: 15, Booster: 1.0, Limit-Stacks: 7 }
    2: { Need-Stacks: 30, Booster: 1.2, Limit-Stacks: 9 }
    3: { Need-Stacks: 45, Booster: 1.4, Limit-Stacks: 11 }
    4: { Need-Stacks: 60, Booster: 1.6, Limit-Stacks: 13 }
  farmer:
    Max-Level: 4
    1: { Need-Stacks: 10, Booster: 1.0, Limit-Stacks: 5 }
    2: { Need-Stacks: 20, Booster: 1.2, Limit-Stacks: 8 }
    3: { Need-Stacks: 30, Booster: 1.4, Limit-Stacks: 10 }
    4: { Need-Stacks: 40, Booster: 1.6, Limit-Stacks: 12 }
  miner:
    Max-Level: 4
    1: { Need-Stacks: 15, Booster: 1.0, Limit-Stacks: 7 }
    2: { Need-Stacks: 30, Booster: 1.2, Limit-Stacks: 9 }
    3: { Need-Stacks: 45, Booster: 1.4, Limit-Stacks: 11 }
    4: { Need-Stacks: 60, Booster: 1.6, Limit-Stacks: 13 }
  mobs:
    Max-Level: 4
    1: { Need-Stacks: 15, Booster: 1.0, Limit-Stacks: 7 }
    2: { Need-Stacks: 30, Booster: 1.2, Limit-Stacks: 9 }
    3: { Need-Stacks: 45, Booster: 1.4, Limit-Stacks: 11 }
    4: { Need-Stacks: 60, Booster: 1.6, Limit-Stacks: 13 }
  jewels:
    Max-Level: 1
    1: { Need-Stacks: 0, Booster: 1.0, Limit-Stacks: 0 }
  speculator:
    Max-Level: 1
    1: { Need-Stacks: 0, Booster: 1.0, Limit-Stacks: 0 }

Конфигурация сообщений:
Код:
Messages:
  Sell: "&x&3&9&9&F&1&7[✔] &fУспешная продажа &6{type} &e{amount} шт. &fза &a${price}"
  No-Items: "&#FF0000[✘] Ошибка! &fНедостаточно предметов в инвентаре!"
  Not-Enough-Items: "&#FF0000[✘] Ошибка! &fНедостаточно предметов в инвентаре (нужно &e{amount} шт.&f)!"
  Auto-Sell-Enabled: "&x&3&9&9&F&1&7[✔] &fУспешно &x&3&9&9&F&1&7включена &fавто-скупка ресурса!"
  Auto-Sell-Disabled: "&x&3&9&9&F&1&7[✔] &fУспешно &#FF0000выключена &fавто-скупка ресурса!"
  Auto-Sell-Success: "&x&3&9&9&F&1&7[✔] &fАвто-продажа &6{type} &e{amount} шт. &fза &a${price}"
  Progression-No-Clan: "&#FFFF00[⚠] Внимание!&#FFFFE6 Режим остался&#FFFF00 одиночным&#FFFFE6 — у вас нет клана."
  Progression-Solo: "&e[✔] &fРежим прокачки переключен на: &eОдиночный"
  Progression-Coop: "&a[✔] &fРежим прокачки переключен на: &aСовместный"
  Friend-Invite-Sent: "&a[✔] &fВы отправили приглашение на совместную прокачку игроку &e{player}"
  Friend-Invite-Received: "&e[!] &fИгрок &e{player} &fприглашает вас в совместную прокачку! Введите &a/buyer friend accept {player} &fили &c/buyer friend deny {player}"
  Friend-Paired: "&a[✔] &fВы успешно объединили прокачку с игроком &e{player}!"
  Friend-Removed: "&c[✘] &fВы разорвали совместную прокачку."
  Friend-Deny-Sender: "&#FF0000[✘] &fИгрок &e{player} &#FF0000отклонил &fваше предложение о совместной прокачке!"
  Friend-Deny-Target: "&e[✔] &fВы отклонили предложение о совместной прокачке от игрока &e{player}"
  Friend-No-Invite: "&#FF0000[✘] Ошибка! &fУ вас нет активного приглашения от игрока &e{player}"
  No-Permission: "&#FF0000[✘] Ошибка! &fУ вас нет прав!"
  Reload-Success: "&a[✔] &fКонфигурация AFKDEVBUYER перезагружена!"
  Player-Only: "&#FF0000[✘] Ошибка! &fКоманда только для игроков!"
  Player-Not-Found: "&#FF0000[✘] Ошибка! &fИгрок не найден!"

Help:
  - "&#FF5555╔═════════════════════════════════════════════════════╗"
  - "&#FF5555║  &f/buyer &#FF5555- &7открыть главное меню скупщика"
  - "&#FF5555║  &f/buyer <категория> &#FF5555- &7открыть меню категории"
  - "&#FF5555║  &f/buyer friend invite <ник> &#FF5555- &7пригласить в прокачку"
  - "&#FF5555║  &f/buyer friend accept <ник> &#FF5555- &7принять приглашение"
  - "&#FF5555║  &f/buyer friend deny <ник> &#FF5555- &7отклонить приглашение"
  - "&#FF5555║  &f/buyer friend remove &#FF5555- &7разорвать прокачку"
  - "&#FF5555║  &#FF5555/buyer reload &7- перезагрузить конфиги плагина"
  - "&#FF5555╚═════════════════════════════════════════════════════╝"

Select:
  Select-1: "&x&3&9&9&F&1&7[✔] &fПродажа по &e1 шт."
  Select-3: "&x&3&9&9&F&1&7[✔] &fПродажа по &e3 шт."
  Select-4: "&x&3&9&9&F&1&7[✔] &fПродажа по &e4 шт."
  Select-6: "&x&3&9&9&F&1&7[✔] &fПродажа по &e6 шт."
  Select-8: "&x&3&9&9&F&1&7[✔] &fПродажа по &e8 шт."
  Select-16: "&x&3&9&9&F&1&7[✔] &fПродажа по &e16 шт."
  Select-24: "&x&3&9&9&F&1&7[✔] &fПродажа по &e24 шт."
  Select-64: "&x&3&9&9&F&1&7[✔] &fПродажа по &e64 шт."
  Select-all: "&x&3&9&9&F&1&7[✔] &fПродажа всех предметов"

Speculator:
  Update-Announcement:
    - "&x&4&5&E&F&3&3╔&x&4&5&E&F&3&3═ &x&E&E&B&E&3&B&lС&x&E&E&C&2&3&B&lп&x&E&E&C&6&3&C&lе&x&E&E&C&9&3&C&lк&x&E&E&C&D&3&C&lу&x&E&E&D&1&3&C&lл&x&E&E&D&5&3&D&lя&x&E&E&D&8&3&D&lн&x&E&E&D&C&3&D&lт &x&4&1&E&3&3&C═&x&4&0&D&F&3&F═&x&3&E&D&B&4&2═&x&3&D&D&7&4&5═&x&3&C&D&3&4&8═&x&3&A&C&F&4&B═&x&3&9&C&B&4&D═&x&3&7&C&7&5&0═&x&3&6&C&3&5&3═&x&3&5&B&F&5&6═&x&3&3&B&B&5&9═&x&3&2&B&7&5&C═&x&3&1&B&3&5&F═&x&2&F&A&F&6&2═&x&2&E&A&B&6&5╝"
    - "&a║  &fСписок «Горячих товаров» обновлен!"
    - "&a║  &fЗаработай первым на моих товарах,"
    - "&a║  &fвводи команду &a/buyer"
    - "&a║              &a[Открыть]"
    - "&x&4&5&E&F&3&3╚&x&4&5&E&F&3&3═&x&4&4&E&C&3&5═&x&4&3&E&9&3&7═&x&4&2&E&6&3&A═&x&4&1&E&3&3&C═&x&4&0&E&0&3&E═&x&3&F&D&D&4&0═&x&3&E&D&A&4&2═&x&3&D&D&7&4&4═&x&3&C&D&4&4&7═&x&3&B&D&1&4&9═&x&3&A&C&E&4&B═&x&3&9&C&C&4&D═&x&3&8&C&9&4&F═&x&3&7&C&6&5&1═&x&3&6&C&3&5&4═&x&3&5&C&0&5&6═&x&3&4&B&D&5&8═&x&3&3&B&A&5&A═&x&3&2&B&7&5&C═&x&3&1&B&4&5&E═&x&3&0&B&1&6&1═&x&2&F&A&E&6&3═&x&2&E&A&B&6&5╝"
  Sell-Success: "&x&3&9&9&F&1&7[✔] &fУспешная продажа &6{type} &e{amount} шт. &fза &a${price}"
  Limit-Reached: "&#FF0000[✘] Ошибка! &fВы исчерпали лимит на этот предмет!"
  No-Item: "&#FF0000[✘] Ошибка! &fНедостаточно предметов в инвентаре!"

Конфигурация главного меню:
Код:
type: CHEST
size: 45
title: '&#FF0000&l● &#FF6600&lВыберите секцию'

items:
  item_1:
    material: RED_STAINED_GLASS_PANE
    name: '&#FF0000F&#FF0500u&#FF0900n&#FF3D00T&#FF4000i&#FF4200m&#FF4500e&#FF3300.&#FF1A00m&#FF0000e'
    item_flags:
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
  item_2:
    material: ORANGE_STAINED_GLASS_PANE
    name: '&#FF5B00F&#FF5700u&#FF5200n&#FF1E00T&#FF1700i&#FF1100m&#FF0A00e&#FF3300.&#FF4700m&#FF5B00e'
    item_flags:
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
  item_3:
    material: ROTTEN_FLESH
    name: '&#FF0000[$]&#FF6600 Нежить'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_4:
    material: HEART_OF_THE_SEA
    name: '&#FF0000[$]&#FF6600 Драгоценности'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_5:
    material: COOKED_BEEF
    name: '&#FF0000[$]&#FF6600 Мясник'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_6:
    material: NETHER_STAR
    name: '&#FF0000[$]&#FF6600 Горячие товары'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_7:
    material: LAPIS_LAZULI
    name: '&#FF0000[$]&#FF6600 Шахтёр'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_8:
    material: CACTUS
    name: '&#FF0000[$]&#FF6600 Фермер'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS
  item_9:
    material: CARROT
    name: '&#FF0000[$]&#FF6600 Еда'
    lore:
      - ' &#FF6600➥ Нажмите&#FFFFE6, чтобы перейти'
    item_flags:
      - HIDE_PLACED_ON
      - HIDE_ENCHANTS
      - HIDE_ATTRIBUTES
      - HIDE_DESTROYS

animation:
  - tick: 1
    opcodes:
      - rm: 0
      - rm: 1
      - rm: 2
      - rm: 3
      - rm: 4
      - rm: 5
      - rm: 6
      - rm: 7
      - rm: 8
      - rm: 9
      - rm: 10
      - rm: 11
      - rm: 12
      - rm: 13
      - rm: 14
      - rm: 15
      - rm: 16
      - rm: 17
      - rm: 18
      - rm: 19
      - rm: 20
      - rm: 21
      - rm: 22
      - rm: 23
      - rm: 24
      - rm: 25
      - rm: 26
      - rm: 27
      - rm: 28
      - rm: 29
      - rm: 30
      - rm: 31
      - rm: 32
      - rm: 33
      - rm: 34
      - rm: 35
      - st: item_1 36
      - st: item_1 37
      - st: item_2 38
      - st: item_2 39
      - st: item_2 40
      - st: item_2 41
      - st: item_2 42
      - st: item_1 43
      - st: item_1 44
  - tick: 2
    opcodes:
      - sound: BLOCK_GLASS_PLACE
      - st: item_2 33
      - st: item_2 34
      - st: item_1 35
      - st: item_1 27
      - st: item_2 28
      - st: item_2 29
      - st: item_2 30
  - tick: 3
    opcodes:
      - sound: BLOCK_GLASS_PLACE
  - tick: 4
    opcodes:
      - st: item_1 18
      - st: item_2 19
      - st: item_2 20
      - st: item_2 24
      - st: item_2 25
      - st: item_1 26
  - tick: 5
    opcodes:
      - sound: BLOCK_GLASS_PLACE
      - st: item_2 16
      - st: item_1 17
      - st: item_1 9
      - st: item_2 10
      - st: item_2 11
      - st: item_2 14
      - st: item_2 15
  - tick: 6
    opcodes:
      - sound: BLOCK_GLASS_PLACE
      - st: item_1 0
      - st: item_1 1
      - st: item_2 2
      - st: item_2 3
      - st: item_2 4
      - st: item_2 5
      - st: item_2 6
      - st: item_1 7
      - st: item_1 8
  - tick: 8
    opcodes:
      - st: item_4 32
      - st: item_3 31
  - tick: 10
    opcodes:
      - st: item_5 21
      - st: item_6 22
      - st: item_7 23
  - tick: 11
    opcodes:
      - st: item_8 12
      - st: item_9 13
Также +- по такому же принципу будут создаваться остальные менюшки.

Автор

Klavshan
ВерхНиз