Перейти до змісту

EcoShop [1.31.0]

(0 відгуків)

1 зображення

EcoShop - плагін серверного магазину з усіма можливостями, які можна побажати. Підтримка кількох валют, підтримка предметів користувача, підтримка економіки предметів, одноразова купівля предметів, обмеження на купівлю предметів, сторінкові магазини, кілька магазинів, кілька варіантів купівлі - список можна продовжувати. Якщо ви коли-небудь хотіли отримати щось від плагіна для магазину, EcoShop має це.

Команди та права плагіна EcoShop:

/ecoshop reload - Перезавантажити плагін
Роздільна здатність: ecoshop.command.reload

/ecoshop resetbuys - Скидає кількість разів, яку гравець купив предмет
Роздільна здатність: ecoshop.command.resetbuys

Загальне використання: /ecoshop resetbuys <гравець> <ід>

/sell - Відкриває графічний інтерфейс продажу
Роздільна здатність: ecoshop.command.sell

/sell hand / all / handall - Продає предмети безпосередньо
Дозволи: ecoshop.command.sell.hand, ecoshop.command.sell.all, ecoshop.command.sell.handall

Інші команди та дозволи
У кожного магазину є своя команда, яку ви вказуєте в конфізі, і вони мають дозвіл ecoshop.open.<id>, наприклад, /shop матиме дозвіл ecoshop.open.shop.

Якщо ви хочете, щоб купівля/продаж предмета вимагала дозволу, вузлами дозволу будуть ecoshop.buy.<id> та ecoshop.sell.<id>. За замовчуванням цей дозвіл є у всіх гравців.

Приклад конфігурації магазину в EcoShop

EcoShop поставляється з прикладом конфігурації магазину, який все пояснює

# ID магазина - это имя файла .yml,
# например, donator.yml имеет ID donator
# Магазины можно размещать в любом месте в этой папке,
# включая подпапки, если вы хотите организовать конфигурации магазинов
# _example.yml не загружается.

title: Демо-Магазин # Заголовок GUI.
command: demoshop # Команда для открытия магазина.

forwards-arrow: # Стрелка для переключения между страницами. Если на последней странице, она не будет отображаться.
  item: arrow name:"&fСледующая страница"
  row: 6
  column: 6

backwards-arrow: # Стрелка для переключения между страницами. Если на первой странице, она не будет отображаться.
  item: arrow name:"&fПредыдущая страница"
  row: 6
  column: 4

buy-broadcasts: # Опции для оповещений о покупках
  enabled: true # Если покупки в этом магазине должны транслироваться на сервер, полезно для /buy меню.
  message: "&b&lМагазин Кристаллов&r &8»&r %player%&r&f купил &r%item%&r&fиз магазина &bМагазин Кристаллов ❖&f!" # Используйте %player%, %item%, и %amount%
  sound: # Звук оповещения, удалите этот раздел, если вы не хотите звука.
    sound: ui_toast_challenge_complete
    pitch: 1.5
    volume: 2

click-sound: # Звук, воспроизводимый при нажатии на значок в этом магазине, удалите этот раздел, если вы не хотите звука.
  sound: block_stone_button_click_on # Звук https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
  pitch: 1 # Высота тона (0.5 - 2)
  volume: 1

buy-sound: # Звук, воспроизводимый при покупке чего-то в этом магазине, удалите этот раздел, если вы не хотите звука.
  sound: entity_player_levelup
  pitch: 2
  volume: 1

sell-sound: # Звук, воспроизводимый при продаже чего-то в этом магазине, удалите этот раздел, если вы не хотите звука.
  sound: block_amethyst_block_place
  pitch: 1.5
  volume: 1

# Магазины могут работать двумя способами.

# Вы можете либо сделать магазин, содержащий список категорий, либо сделать магазин одной
# категорией, на которую вы мгновенно переходите (для магазинов с одной страницей, например, магазин яйца спауна босса)

# Если вы хотите магазин с одной страницей, используйте direct-category для связи его прямо с категорией
# direct-category: example_category

# Если вы хотите обычный магазин, содержащий несколько категорий, используйте эти опции здесь
rows: 3
pages: # Все страницы в GUI предпросмотра. Вы можете добавить столько страниц, сколько хотите.
  - page: 1
    mask: # Заполнительные предметы для украшения
      items: # Добавьте столько предметов, сколько хотите
        - gray_stained_glass_pane # Предмет 1
        - black_stained_glass_pane # Предмет 2
      pattern:
        - "222222222"
        - "211111112"
        - "211000112"
        - "211000112"
        - "211111112"
        - "222222222"
    categories: # Где разместить категории в GUI
      - id: example # ID категории
        row: 3 # Ряд
        column: 3 # Колонка
      - id: example_2
        row: 4
        column: 6

    # Пользовательские слоты GUI; см. здесь, как это сделать: https://plugins.auxilor.io/all-plugins/custom-gui-slots
    custom-slots: [ ]

Приклад налаштування категорії в EcoShop

EcoShop поставляється з прикладом конфігурації категорії, який все пояснює

# ID категории - это имя файла .yml,
# например, trails.yml имеет ID trails
# Категории можно размещать в любом месте в этой папке,
# включая подпапки, если вы хотите организовать конфигурации категорий
# _example.yml не загружается.

item: diamond_sword name:"&fПример Категории" # Предмет, отображаемый в магазине.
lore: [ ] # Лор предмета, отображаемого в магазине.
# permission: ecoshop.category.permission1 # (Необязательно) Разрешение, необходимое для доступа/использования категории.

# Опции для GUI категории.
gui:
  rows: 6 # Количество строк (1-6).
  title: "Демо Категория" # Заголовок GUI.

  # Опции навигации, скрыты, если на первой/последней странице.
  forwards-arrow:
    item: arrow name:"&fСледующая страница"
    row: 6
    column: 6
  backwards-arrow:
    item: arrow name:"&fПредыдущая страница"
    row: 6
    column: 4

  # Добавьте столько страниц, сколько хотите, добавив их в этот список
  pages:
    - page: 1
      mask:
        items: # Материал фона
          - gray_stained_glass_pane
          - black_stained_glass_pane
        pattern: # 0 для пустоты, 1 для первого элемента, 2 для второго элемента и так далее
          - "222222222"
          - "211111112"
          - "211111112"
          - "211111112"
          - "211111112"
          - "222222222"

      # Пользовательские слоты GUI; см. здесь, как это сделать: https://plugins.auxilor.io/all-plugins/custom-gui-slots
      custom-slots: [ ]

    - page: 2
      mask:
        items:
          - gray_stained_glass_pane
          - black_stained_glass_pane
        pattern:
          - "222222222"
          - "211111112"
          - "211111112"
          - "211111112"
          - "211111112"
          - "222222222"


items:
  - id: enchanted_diamond # ID предмета, не отображается игрокам.

    # Предмет для покупки/продажи. Должен иметь количество один, поэтому 'stone 16' не будет разрешено.
    # https://plugins.auxilor.io/all-plugins/the-item-lookup-system
    item: ecoitems:enchanted_diamond

    # (Необязательно) Пользовательское отображаемое имя, по умолчанию наследуется от предмета GUI.
    name: "&b&k!!&r <gradient:#2193b0>Зачарованный Алмаз</gradient:#6dd5ed>&r &b&k!!"

    # Опции для покупки предмета, см. здесь:
    # https://plugins.auxilor.io/all-plugins/prices
    buy:
      value: 500 - (%player_rank% * 25)
      type: coins
      display: "$%value%"

      amount: 8 # (Необязательно) Количество быстрой покупки / покупки по умолчанию. По умолчанию 1, если не указано.
      max-at-once: 16 # (Необязательно) Максимальное количество, которое можно купить одновременно. По умолчанию бесконечность, если не указано.

      buy-message: # (Необязательно) Введите сообщения для отправки игроку при покупке этого конкретного предмета. Все равно будет отправлено 'bought-item/bought-multiple' из lang.yml
        - "&6Спасибо за покупку этого конкретного предмета"

    # Опции для продажи предмета, см. здесь:
    # https://plugins.auxilor.io/all-plugins/prices
    sell:
      value: 100 + (%player_rank% * 25)
      type: coins
      display: "$%value%"

      require: "%player_rank% > 1" # (Необязательно) Это выражение должно быть истинным, чтобы можно было продать этот предмет.

      # Условия, которые должны быть выполнены для продажи этого предмета.
      # См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
      conditions: [ ]

      sell-command: # (Необязательно) Введите команды, которые должны выполняться при продаже игроком предметов. Вы можете использовать заполнители %player% и %amount%
        - "give %player% stone %amount%"
      sell-message: # (Необязательно) Введите сообщения для отправки игроку при продаже этого конкретного предмета. Все равно будет отправлено 'sold-item/sold-multiple' из lang.yml
        - "&6Спасибо за продажу этого конкретного предмета"
    gui:
      column: 4 # Как далеко слева направо (1-9).
      row: 3 # Как далеко вверх или вниз (1-6).
      page: 1 # Страница.

  - id: iron_rank

    commands: # Команды для выполнения. Вы можете использовать заполнители %player% и %amount%.
      - lp user %player% parent set iron

    buy:
      value: "%ecomc_iron_price%"
      type: crystals
      display: "&b%value% Кристаллы ❖"

      require: "%ecomc_iron_price% >= 0" # (Необязательно) Это выражение должно быть истинным, чтобы можно было купить предмет.

      limit: 1 # (Необязательно) Максимальное количество раз, которое каждый игрок может купить этот предмет, по умолчанию бесконечность.

    gui:
      display: # Этот предмет отображается в GUI. Если вы продаете предмет, это по умолчанию предмет сам по себе.
        item: diamond_chestplate
        lore:
          - "&fКупите &7&lЖЕЛЕЗО&r&f ранг, чтобы получить"
          - "&fследующие преимущества:"
          - " &8»&f &eПримерный Перк"
      column: 5 # Колонка.
      row: 3 # Ряд.
      page: 2 # Страница.

  - id: do_something_cool

    # Эффекты при покупке игроком предмета.
    # См. здесь: https://plugins.auxilor.io/effects/configuring-an-effect
    effects: []

    buy:
      value: 65
      type: crystals
      display: "&b%value% Кристаллы ❖"

      # Условия, которые должны быть выполнены для покупки этого предмета.
      # См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
      conditions: [ ]

    gui:
      display:
        item: nether_star
        lore:
          - "&fКупите меня, чтобы сделать что-то классное!"
      column: 6 # Колонка.
      row: 3 # Ряд.
      page: 2 # Страница.

  - id: valkyrie_egg

    item: ecobosses:valkyrie_spawn_egg

    buy:
      value: 76850
      type: coins
      display: "&a$%value%"

      max-at-once: 1 # Если вы хотите пропустить выбор количества в GUI, установите max-at-once на 1, чтобы щелчок мгновенно купил.

    # Вместо того чтобы предмет был доступен для покупки и продажи, вы можете иметь
    # два варианта покупки (Покупка - это щелчок левой кнопкой мыши, Альт-Покупка - щелчок правой кнопкой мыши).
    # limit / max-at-once и т. д. наследуются от вариантов покупки.
    alt-buy:
      value: 65
      type: crystals
      display: "&b%value% Кристаллы ❖"

      # Условия, которые должны быть выполнены для покупки этого предмета.
      # См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
      conditions: [ ]

    gui:
      display:
        lore: # Вы можете наследовать предмет и просто добавить свой собственный дополнительный лор для отображения дополнительной информации.
          - ""
          - "&fПримерный Лор"
          - ""
        bottom-lore: # Вы также можете добавить лор, который будет размещен под другим лором (например, цена, информация о быстрой покупке/продаже и т. д.)
          - ""
          - "&e&oЛевый клик, чтобы купить за деньги,"
          - "&e&oПравый клик, чтобы купить за &bКристаллы ❖&e&o!"
      column: 7 # Как далеко слева направо (1-9).
      row: 3 # Как далеко вверх или вниз (1-6).
      page: 1 # Страница.

      show-quick-buy-sell: false # (Необязательно) отключить текст быстрой покупки / продажи.

Як зробити один?

Простий предмет купівлі-продажу
Почнемо з найпростішого предмета – якщо ви створюєте стандартний магазин купівлі-продажу, то більшість ваших предметів виглядатимуть саме так:

id: cooked_mutton
item: cooked_mutton

buy:
  type: coins
  value: 20
  display: $%value%
  amount: 32

sell:
  type: coins
  value: 10
  display: $%value%

gui:
  column: 4
  row: 1
  page: 1

Давайте розберемо кожен розділ:

Спойлер

id : Це внутрішній ідентифікатор предмета. Гравці його не бачать, але важливо використовувати унікальний ID для кожного предмета у всіх магазинах.

item (предмет): Це є власне предмет, який ми продаємо. Він підтримує користувальницькі предмети, зачарування, назви користувача, суми, рефоржі і так далі - докладніше читайте тут.

buy (купити): Якщо ви хочете, щоб ваш предмет можна було купити, тут ви вказуєте ціну покупки. Докладніше про ціни читайте тут, їх важливо розуміти під час створення предметів.

buy.amount : Це необов'язкова функція, в якій ви вказуєте кількість предметів за замовчуванням для швидкого придбання, а також кількість предметів за замовчуванням при відкритті меню вибору кількості придбання. Ви, як і раніше, вказуєте значення лише одного предмета – це просто для того, щоб задати кількість покупок за замовчуванням.

sell (продати): Працює так само, як і покупка, тільки тепер це ціна продажу.

gui : Це налаштування того, як предмет відображатиметься у категорії. Рядок – зверху вниз, стовпець – зліва направо, а сторінки не вимагають пояснень.

Командні предмети в EcoShop

Іноді ви хочете виконати команду, коли гравець купує предмет замість того, щоб дати йому реальний предмет (або одночасно з ним). Зараз на серверах дуже поширене використання кількох валют і переміщення таких речей, як ранги, у внутрішньоігрові магазини, тому давайте подивимося, як це можна зробити за допомогою EcoShop.

Звичайно, ви не можете продати команду, тому вони призначені тільки для покупки.

id: iron_rank

command: # Я изменил commands: на command: потому что это не работает с "s"
  - lp user %player% parent set iron

buy:
  value: "%ecomc_iron_price%"
  type: crystals
  display: "&b%value% Кристаллы ❖"

  require: "%actions_iron_buy_is_met%"

  limit: 1

alt-buy:
  value: "%ecomc_iron_crystal_price%"
  type: crystals
  display: "&b%value% Кристаллы ❖"

  conditions: [ ]

gui:
  display:
    item: diamond_chestplate
    lore:
      - "&fКупите &7&lЖЕЛЕЗО&r&f ранг, чтобы получить"
      - "&fследующие преимущества:"
      - " &8»&f &eПримерный Перк"
    bottom-lore:
      - "&e&oЛевый клик, чтобы купить за деньги,"
      - "&e&oПравый клик, чтобы купить за &bКристаллы ❖&e&o!"
  column: 5 # Колонка.
  row: 3 # Ряд.
  page: 2 # Страница.

  show-quick-buy-sell: false
Спойлер

commands : Це команди, які будуть виконані, коли гравець купує предмет. Ви можете використовувати заповнювачі %player% та %amount%.

buy.value : Ви можете використовувати заповнювачі у значеннях! Дозволено будь-яке заповнення PlaceholderAPI. І це ще краще – ви можете також виконувати математичні операції. Наприклад, %player_y% * 100 - cos(%player_x%) теж буде цілком допустимим. Це, звичайно, досить дивна ціна, але це можливо.

buy.require : Це математичний вираз, який повинен бути виконаний, щоб дозволити купівлю цього предмета. Наприклад, ви можете використовувати %player_xp% >= 300.

buy.conditions : Умови, які потрібно виконати для покупки цього предмета. Прочитайте тут для отримання додаткової інформації!

buy.limit : Максимальна кількість разів, яку гравець може купити цей предмет.

alt-buy : Це другий варіант покупки, який можна використовувати, клацнувши правою кнопкою миші на предмет. Припустимо, у вас є подвійна валютна система, ви можете зробити, щоб клацання лівою кнопкою коштувало гроші, а клацання правою кнопкою коштувало кристали, або ви можете зробити, щоб клацання лівою кнопкою коштувало золоті зливки, а клацання правою кнопкою - смарагди.

gui.display : Це предмет, який відображається гравцям у магазині. У команд немає автоматичного відображення предмета, тому його потрібно вказати. Ви також можете вказати користувальницький предмет, якщо продаєте предмети, але це не обов'язково. Ви також можете необов'язково вказати лор та нижній лор, де нижній лор відображається під речами, такими як ціна покупки, швидкі опції покупки і т.д.

gui.show-quick-buy-sell : За замовчуванням швидкий лор для купівлі/продажу відображається на предметах. Якщо ви не захочете це для цього предмету, ви можете вимкнути це тут.

Предмети з ефектами в EcoShop

Замість використання тільки команд, EcoShop також має повний доступ до системи ефектів, так що ви можете запускати ефекти, коли гравець купує предмет, або навіть просто помістити самі ефекти в магазин.

Як і команди, вони не продаються.

id: my_effect_item

effects: [ ]

buy:
  value: 65
  type: crystals
  display: "&b%value% Кристаллы ❖"

gui:
  display:
    item: nether_star
    lore:
      - "&fКупите меня, чтобы сделать что-то крутое!"
  column: 6 # Колонка.
  row: 3 # Ряд.
  page: 2 # Страница.

  show-quick-buy-sell: false

 

User Feedback

Приєднуйтесь до обговорення

Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.

Гість
  • Не буде показано іншим користувачам
  • Додати відгук...